创建module【cloud-consumerzk-order80】
改pm.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>cloud2020</artifactId><groupId>com.sgy.cloud2020</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloud-consumerzk-order80</artifactId><dependencies><dependency><groupId>com.sgy.cloud2020</groupId><artifactId>cloud-consumer</artifactId><version>${project.version}</version></dependency><!--springcloud整合zookeeper--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zookeeper-discovery</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency></dependencies></project>
改主启动类
/**
* Created by AaronShen on 2020/5/27
*/
@SpringBootApplication
// 服务发现注解
@EnableDiscoveryClient
public class OrderZkMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderMain80.class,args);
}
}
改yml
server:
port: 80
spring:
cloud:
zookeeper:
connect-string: 192.168.200.10:2181
application:
name: cloud-consumer-order
controller
创建RestTemplate
/**
* Created by AaronShen on 2020/5/27
*/
@Configuration
public class ApplicationContextBean {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}
能导致服务调用失败
你必须添加@LoadBalanced注解,否则,使用RestTemplate调用服务会失败
创建controller
/**
* Created by AaronShen on 2020/5/27
*/
@RestController
public class OrderController {
private final static String PATMENT_URL = "http://cloud-payment-server";
@Resource
RestTemplate restTemplate;
@GetMapping("/consumer/payment/zk")
public Object order() {
return restTemplate.getForObject(PATMENT_URL + "/zk",Object.class);
}
}
测试
启动订单服务
查看zk客户端服务注册情况
可以清晰的看到服务已经注册进zookeeper中了
[zk: localhost:2181(CONNECTED) 25] ls /services
[cloud-consumer-order, cloud-payment-server]
浏览器访问订单服务

注意点:
- 你必须为
RestTemplate添加@LoadBalanced注解,否则调用失败
