-
首先启动zk集群
zk搭建可查看以前博客 -
客户端程序
pom.xml<!-- SpringBoot 整合Zookeeper客户端 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
application.yml
# 8004 表示注册到zookeeper服务器的支付服务提供者端口号 server: port: 8004 spring: application: # 服务别名 name: cloud-provider-payment cloud: zookeeper: connect-string: centos3:2181,centos4:2181,centos5:2181
启动类
@SpringBootApplication //该注解用于向使用consul或者zookeeper作为注册中心时注册服务 @EnableDiscoveryClient public class PaymentApplication8004 { public static void main(String[] args) { SpringApplication.run(PaymentApplication8004.class,args); } }
测试类
@RestController @Slf4j public class PaymentController { @Value("${server.port}") private String serverPort; @GetMapping("/payment/zk") public String paymentTestZk(){ return "springcloud with zookeeper: "+serverPort+"\t"+ UUID.randomUUID().toString(); } }
启动服务
-
测试
-
查看zk注册信息
可以看到多了services节点
可以看到注册的cloud-provider-pyment服务。
该节点保存了微服务的基本信息
格式化一下json串
{
"name": "cloud-provider-payment",
"id": "358e6f11-1cbe-207c-b43c-58565a55f450f",
"address": "it-202251832.mshome.net",
"port": 8004,
"payload": {
"@class": "org.springframework.cloud.zookeeper.discovery.ZookeeperInstance",
"id": "cloud-provider-payment",
"name": "cloud-provider-payment",
"metadata": {
"instance_status": "UP"
}
},
"registrationTimeUTC": 1613913664773,
"serviceType": "DYNAMIC",
"uriSpec": {
"parts": [
{
"value": "scheme",
"variable": true
},
{
"value": "://",
"variable": false
},
{
"value": "address",
"variable": true
},
{
"value": ":",
"variable": false
},
{
"value": "port",
"variable": true
}
]
}
}