Zookeeper
一.zookeeper的搭建
参考文章: https://editor.csdn.net/md/?articleId=106782730
二.使用zookeeper作为配置中心
1.生产者
-
1.建module
略 -
2.改pom
<!-- 引入zookeeper依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<!--排除zk3.5.3,这一步看情况,是否需要修改zookeeper的版本-->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加zk 3.4.14版本,这一步看情况,是否需要修改zookeeper的版本-->
<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
</dependency>
- 3.写yml
server:
port: 8003
spring:
application:
name: cloud-provider-payment #服务名
cloud:
zookeeper: #zookeeper的配置相关信息
connect-string: 118.190.58.27:2181,118.190.58.27:2182,118.190.58.27:2183 #zookeeper的节点
- 4.主启动
@EnableDiscoveryClient //以后除了eureka,其他的注册中心,统一使用这个注解.
@SpringBootApplication //springboot的主启动类
@EnableDiscoveryClient //以后除了eureka,其他的包括zookeeper,consul.nacos都是用这个注解连接注册中心
public class PaymentMain8003 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8003.class,args);
}
}
2.消费者
-
1.建module
略 -
2.改pom
同生产者 -
3.写yml
同生产者,除了spring.application.name不同,其他zookeeper连接都相同. -
4.主启动
同生产者 -
5.业务类
zookeeper的调用方式和Eureka的一模一样,所以没什么好说的.
5.1 向spring容器中注入RestTemplate对象
@Configuration
public class ApplicationContextConfig {
/**
* 注入一个rest风格调用主体类
* @return
*/
@Bean
//负载均衡策略,使用集群策略,如果调用的服务,有多个服务提供者,则这个注解不能少,少了就会报错(因为计算机不知道调用哪个具体的服务实例)
//这是ribbon的负责均衡注解,因为eureka已经集成了ribbon,所以就可以直接用此注解
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
5.2 业务代码发起远程调用
@RestController
public class OrderZKController {
@Autowired
private RestTemplate restTemplate;
//调用的微服务地址
private static final String SERVICE_NAME = "http://cloud-provider-payment";
@GetMapping("/payment/zk")
public String payment(){
String res = restTemplate.getForObject(SERVICE_NAME + "/payment/zk", String.class);
return res;
}
}
3.验证zookeeper作为注册中心
(1)启动上面的生产者和消费者.
(2)登陆zookeeper客户端
(3) 查看节点情况
(4) 查看服务下的服务实例的节点信息
这里可以证明微服务注册到zookeeper的临时节点.
(5) 我们再停止服务,查看zookeeper的节点变化
以上证明,zookeeper作为微服务的注册中心,使用的临时节点