首先下载并启动本地zookeeper
1 服务提供者
1.1 maven依赖
由于我本机装的zk是3.4.6版本,排除了springcloud中带的高版本
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<exclusions>
<exclusion>
<artifactId>zookeeper</artifactId>
<groupId>org.apache.zookeeper</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
<exclusions>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
1.2 配置主启动类
@EnableDiscoveryClient
@SpringBootApplication
public class ZkServerApplication {
public static void main(String[] args) {
SpringApplication.run(ZkServerApplication.class, args);
}
}
![点击并拖拽以移动 wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==](https://img-blog.csdnimg.cn/2022010702252531384.gif)
1.3 配置controller
@RestController
public class ServerController {
@GetMapping("/server/hello")
public String hello(String name) {
return "hello," + name;
}
}
![点击并拖拽以移动 wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==](https://img-blog.csdnimg.cn/2022010702252531384.gif)
1.4 配置文件
server:
port: 8003
spring:
application:
name: zk-server
cloud:
zookeeper:
connect-string: 127.0.0.1:2181
2 服务消费者
maven依赖和主启动类同上
2.1 配置controller
@Configuration
public class BeansConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
@RestController
@RequestMapping("/consumer")
public class ConsumerController {
@Autowired
private RestTemplate restTemplate;
private String url = "http://zk-server";
@GetMapping("/hello/{name}")
public String getPayment(@PathVariable("name") String name) {
return restTemplate.getForObject(url + "/server/hello?name=" + name, String.class);
}
}
2.2 配置文件
server:
port: 8090
spring:
application:
name: zk-consumer
cloud:
zookeeper:
connect-string: 127.0.0.1:2181
3 启动测试
启动zk,连接客户端
get /services/zk-server/d6ed7634-5df3-48aa-8821-61ec0826e4d5
{
"name": "zk-server",
"id": "d6ed7634-5df3-48aa-8821-61ec0826e4d5",
"address": "LAPTOP-7KJFACUD",
"port": 8003,
"sslPort": null,
"payload": {
"@class": "org.springframework.cloud.zookeeper.discovery.ZookeeperInstance",
"id": "application-1",
"name": "zk-server",
"metadata": {}
},
"registrationTimeUTC": 1604815319563,
"serviceType": "DYNAMIC",
"uriSpec": {
"parts": [{
"value": "scheme",
"variable": true
}, {
"value": "://",
"variable": false
}, {
"value": "address",
"variable": true
}, {
"value": ":",
"variable": false
}, {
"value": "port",
"variable": true
}]
}
}
访问:http://localhost:8090/consumer/hello/xiaoming