zookeeper地址:https://cloud.spring.io/spring-cloud-static/spring-cloud-zookeeper/2.2.1.RELEASE/reference/html/
自行搭建
zookeeper
搭建-服务端
1、模块名 cloud-provider-payment8004
2、pml.xml (web、actuator 未列出)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--zookeeper 版本冲突 但是日志 会参数冲突 因此需要排除此依赖-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.8</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
3、yml 配置文件
server:
port: 8004
spring:
application:
name: cloud-provider-payment
cloud:
zookeeper:
#服务名注册到 zookeeper 注册中心
connect-string: 66.88.88.169:2181
4、主启动
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8004 {
public static void main(String[] args){
SpringApplication.run(PaymentMain8004.class,args) ;
}
}
@RestController
public class PaymentController {
@Value("${server.port}")
private String serverPort ;
@RequestMapping("/payment/zk")
public String paymentzk(){
return "zookeeper : " + serverPort + "\t" + UUID.randomUUID().toString() ;
}
}
5、测试
搭建-消费端
1、cloud-consumerzk-order80
2、pml.xml(同服务端)
3、yml 配置文件
server:
port: 80
spring:
application:
name: cloud-consumer-order
cloud:
zookeeper:
connect-string: 66.88.88.169:2181
4、主启动
@SpringBootApplication
@EnableDiscoveryClient
public class OrderZkMain80 {
public static void main(String[] args){
SpringApplication.run(OrderZkMain80.class,args) ;
}
}
@RestController
public class OrderController {
@Autowired
private RestTemplate restTemplate;
@Value("${server.port}")
private String serverPort;
private static final String INVOKE_URL = "http://cloud-provider-payment";
@RequestMapping("/consumer/payment/zk")
public String paymentInfo() {
String result = restTemplate.getForObject(INVOKE_URL + "/payment/zk", String.class);
return result;
}
}
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced // 其支持负载均衡
public RestTemplate getRestTemplate(){
return new RestTemplate() ;
}
}
5、测试
总结:
zookeeper: 采用临时节点 , cp ,数据一致、分区容错