文章目录
SpringCloud 集成 zookeeper 学习代码地址支付微服务注册zookeeper订单服务微服务注册到zookeeperzookeeper查看服务信息其他链接
SpringCloud 集成 zookeeper 学习
代码地址
https://gitee.com/xueruiquan0613/cloud2020
支付微服务注册zookeeper
创建支付微服务 - cloud-provider-payment8004pom.xml
<dependencies>
<dependency>
<groupId>org.huiyuanai
</groupId>
<artifactId>cloud-api-common
</artifactId>
<version>${project.version}
</version>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-web
</artifactId>
</dependency>
<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>
<dependency>
<groupId>org.apache.zookeeper
</groupId>
<artifactId>zookeeper
</artifactId>
<version>3.4.9
</version>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-devtools
</artifactId>
<scope>runtime
</scope>
<optional>true
</optional>
</dependency>
<dependency>
<groupId>org.projectlombok
</groupId>
<artifactId>lombok
</artifactId>
<optional>true
</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-test
</artifactId>
<scope>test
</scope>
</dependency>
</dependencies>
application.yml
server:
port: 8004
spring:
application:
name: cloud
-provider
-payment
cloud:
zookeeper:
connect-string: 122.51.223.62
:2181
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8004 {
public static void main(String
[] args
) {
SpringApplication
.run(PaymentMain8004
.class, args
);
System
.out
.println("PaymentMain8004 启动成功, 。:.゚ヽ(。◕‿◕。)ノ゚.:。+゚");
}
}
服务接口
@RestController
@Slf4j
public class PaymentController {
@Value("${server.port}")
private String serverPort
;
@RequestMapping(value
= "/payment/zk")
public String
paymentzk(){
return "springcloud with zookeeper:" + serverPort
+ "\t" + UUID
.randomUUID().toString();
}
}
订单服务微服务注册到zookeeper
创建订单微服务 - cloud-consumerzk-order80pom.xml
<dependencies>
<dependency>
<groupId>org.huiyuanai
</groupId>
<artifactId>cloud-api-common
</artifactId>
<version>${project.version}
</version>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-web
</artifactId>
</dependency>
<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>
<dependency>
<groupId>org.apache.zookeeper
</groupId>
<artifactId>zookeeper
</artifactId>
<version>3.4.9
</version>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-devtools
</artifactId>
<scope>runtime
</scope>
<optional>true
</optional>
</dependency>
<dependency>
<groupId>org.projectlombok
</groupId>
<artifactId>lombok
</artifactId>
<optional>true
</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-test
</artifactId>
<scope>test
</scope>
</dependency>
</dependencies>
application.yml
server:
port: 80
spring:
application:
name: cloud
-consumer
-order
cloud:
zookeeper:
connect-string: 122.51.223.62
:2181
主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class OrderZkMain80 {
public static void main(String
[] args
) {
SpringApplication
.run(OrderZkMain80
.class,args
);
System
.out
.println("OrderZkMain80 启动成功, 。:.゚ヽ(。◕‿◕。)ノ゚.:。+゚");
}
}
RestTemplate & 负载均衡 配置
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate
getRestTemplate(){
return new RestTemplate();
}
}
订单接口
@RestController
public class OrderZkController {
private static final String INVOKE_URL
= "http://cloud-provider-payment";
@Autowired
private RestTemplate restTemplete
;
@RequestMapping(value
= "/consumer/payment/zk")
public String
paymentInfo(){
String result
= restTemplete
.getForObject(INVOKE_URL
+ "/payment/zk", String
.class);
return result
;
}
}
zookeeper查看服务信息
启动zookeeper服务,进入客户端
./zkServer.sh start
./zkCli.sh
查看命令 — ls
[zk: localhost:2181
(CONNECTED
) 0
] ls /
默认只有一个zookeeper节点,services是注册到zookeeper下的服务
注册到zookeeper下的服务
获取节点数据和更新信息 — get
cZxid :创建节点的id ctime : 节点的创建时间 mZxid :修改节点的id mtime :修改节点的时间 pZxid :子节点的id cversion : 子节点的版本 dataVersion : 当前节点数据的版本 aclVersion :权限的版本 ephemeralOwner :判断是否是临时节点 dataLength : 数据的长度 numChildren :子节点的数量
其他链接
Eureka Consul zookeeper 三个注册中心异同:https://blog.csdn.net/qq_37040886/article/details/106844386SpringCloud 整合 Eureka 学习:https://blog.csdn.net/qq_37040886/article/details/107014433SpringCloud 整合 Consul 学习:https://blog.csdn.net/qq_37040886/article/details/106844216