04-Zookeeper
本笔记来源于:尚硅谷SpringCloud框架开发教程(SpringCloudAlibaba微服务分布式架构丨Spring Cloud)
b站视频
文章来自:
https://github.com/OT-mt/cloud2020/tree/master/springcloud-2%E5%B0%9A%E7%A1%85%E8%B0%B7%E5%91%A8%E9%98%B3-2020
脑图
配置虚拟机和zookeeper
- 虚拟机终端输入ifconfig查看 ens33 下的端口号
- 查看主机与虚拟机之间通信是否畅通
- 虚拟机端口号:ifconfig查看 ens33 下的端口号
- 主机端口号:网络连接下的 VMnet8 的端口号
- 使用虚拟机ping主机,使用主机ping虚拟机确保都可以ping通
- 新建项目
- pom
1
2
3
4<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
- pom
- 解压zookeeper
tar -zxvf zookeeper-3.4.10.tar.gz
- 启动 zookeeper
==注意此时应该修改conf里的zoo_sample.cfg名字为zoo.cfg==
[root@localhost ~]# cd /usr/local/zookeeper/zookeeper-3.4.14/bin
[root@localhost bin]# ./zkServer.sh start - 启用端口
[root@localhost bin]# ./zkCli.sh
Connecting to localhost:2181新建项目
pom文件
==注意:== - 排除zookeeper-discovery中自带的 zookeeper,同时引入与linux相同版本的 zookeeper
- 排除引入 zookeeper 的日志,因为日志会会冲突
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59<dependencies>
<!--引入自己的公共api-->
<dependency>
<groupId>com.wxh.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</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>
<!--热部署-->
<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>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<!-- 排除自身的zookeeper -->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加zookeeper,与linux上的版本一致 -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
yml 文件
1 |
|
linux测试
1 |
|
能看到服务名即为配置成功
测试2
- http://localhost:8004/payment/zk
可以看到信息 - linux
1
2
3
4
5
6
7
8
9# 获取服务名
[zk: localhost:2181(CONNECTED) 0] ls /services
[cloud-provider-payment]
# 获取流水号
[zk: localhost:2181(CONNECTED) 1] ls /services/cloud-provider-payment
[efc76371-522d-4d5d-8f56-f8fe4deb7a47]
# 获取详细信息
[zk: localhost:2181(CONNECTED) 2] get /services/cloud-provider-payment/efc76371-522d-4d5d-8f56-f8fe4deb7a47
{"name":"cloud-provider-payment","id":"efc76371-522d-4d5d-8f56-f8fe4deb7a47","address":"WINDOWS-N0GUAG7","port":8004,"sslPort":null,"payload":{"@class":"org.springframework.cloud.zookeeper.discovery.ZookeeperInstance","id":"application-1","name":"cloud-provider-payment","metadata":{}},"registrationTimeUTC":1590232919360,"serviceType":"DYNAMIC","uriSpec":{"parts":[{"value":"scheme","variable":true},{"value":"://","variable":false},{"value":"address","variable":true},{"value":":","variable":false},{"value":"port","variable":true}]}}服务节点是临时还是持久
关闭8004后在linux终端中,一段时间后失去连接再开启8004,再次查看流水号可以发现流水号跟之前的不一样 ,所以服务节点是临时的,在关闭服务后完全删除。1
2
3
4
5
6
7
8
9[zk: localhost:2181(CONNECTED) 18] ls /services/cloud-provider-payment
[efc76371-522d-4d5d-8f56-f8fe4deb7a47]
[zk: localhost:2181(CONNECTED) 19] ls /services/cloud-provider-payment
[efc76371-522d-4d5d-8f56-f8fe4deb7a47]
[zk: localhost:2181(CONNECTED) 20] ls /services/cloud-provider-payment
[efc76371-522d-4d5d-8f56-f8fe4deb7a47]
[zk: localhost:2181(CONNECTED) 21] ls /services/cloud-provider-payment
[]
[zk: localhost:2181(CONNECTED) 22]订单服务入住zookeeper
- 新建订单 moudle
- 该pom
- 建yml
1
2
3
4
5
6
7
8server:
port: 80
spring:
application:
name: cloud-consumerzk-order80
cloud:
zookeeper:
connect-string: 192.168.150.66:2181 - 写主类
- 配置类生成 RestTemplate
- Controller 调用 8004
- linux 输入,查看节点是否注册上
1
2[zk: localhost:2181(CONNECTED) 1] ls /services
[cloud-provider-payment, cloud-consumerzk-order80] - 网址登陆查看
http://localhost:8004/payment/zk
http://localhost/consumer/payment/zk
存在问题
zookeeper集群?????????
04-Zookeeper
http://yuanql.top/2023/06/27/13_SpringCloud/springcloud-2尚硅谷周阳-2020/04-Zookeeper/