语雀源文链接:[pojo123的语雀知识笔记]

注册中心Zookeeper
Zookeeper是一个分布式协调工具,可以实现注册中心功能
和创建80001一样,创建8004的module,在module中仿照8001一样进行
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId
<dependency>
#服务别名,注册zookeeper到注册中心名称
spring:
application:
name: cloud-provider-payment
cloud:
zookeeper:
connect-string: 服务地址:2181 #zookeeper服务的地址和端口
这个时候会发现报以下错误,这是因为在引入Zookeeper整合依赖的时候会默认携带一个Zookeeper3.5.3Bate版本,与服务器上的Zookeeper版本不一致,所以这个时候就需要将其进行移除,同时将冲突的slf4j依赖进行清除;然后再引入对应版本的Zookeeper依赖;

所以更改后的pom文件如下;
<!--spingcloud整合zookeeper客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<!-- 先排除自带的zookeeper3.5.3beta版本-->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
运行8004服务,可以将其注册到Zookeeper的服务中
临时性,高可用,数据一致性
仿照8004进行新建
@Configuration
public class ApplicationContextCOnfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
@RestController
@Slf4j
public class ZKController {
public static final String INVOKE_URL="http://cloud-provider-payment";
@Resource
private RestTemplate restTemplate;
@GetMapping(value = "/consumer/payment/zk")
public String paymentINfo(){
String result=restTemplate.getForObject(INVOKE_URL+"/payment/zk",String.class);
return result;
}
}