5.1 对刚才的 eureka-server 修改配置文件
5.1.1 server-1
server:
port: 8761 #为什么是 8761,其他端口就报错
spring:
application:
name: eureka-server #服务名称
eureka:
client:
fetch-registry: true #是否拉取服务列表
register-with-eureka: true #是否注册自己(集群需要注册自己和拉取服务)
service-url:
defaultZone: http://localhost:8762/eureka/,http://localhost:8763/eureka/
server:
eviction-interval-timer-in-ms: 90000 #清除无效节点的评率(毫秒)
instance:
lease-expiration-duration-in-seconds: 90 #server 在等待下一个客户端发送的心跳
时间,若在指定时间不能收到客户端心跳,则剔除此实例并且禁止流量
5.1.2 server-2
server:
port: 8762
spring:
application:
name: eureka-server #服务名称
eureka:
client:
fetch-registry: true #是否拉取服务列表
register-with-eureka: true #是否注册自己(集群需要注册自己和拉取服务)
service-url:
defaultZone: http://localhost:8761/eureka/,http://localhost:8763/eureka/
server:
eviction-interval-timer-in-ms: 90000 #清除无效节点的评率(毫秒)
instance:
lease-expiration-duration-in-seconds: 90 #server 在等待下一个客户端发送的心跳
时间,若在指定时间不能收到客户端心跳,则剔除此实例并且禁止流量
5.1.3 server-3
server:
port: 8763
spring:
application:
name: eureka-server #服务名称
eureka:
client:
fetch-registry: true #是否拉取服务列表
register-with-eureka: true #是否注册自己(集群需要注册自己和拉取服务)
service-url:
defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
server:
eviction-interval-timer-in-ms: 90000 #清除无效节点的评率(毫秒)
instance:
lease-expiration-duration-in-seconds: 90 #server 在等待下一个客户端发送的心跳
时间,若在指定时间不能收到客户端心跳,则剔除此实例并且禁止流量
5.1.4 测试访问查看
发现并没有出现集群信息,只是同一个服务 server 启动了多台 没有数据交互 不是真正意义上的集群
原因是因为:
http://localhost:8761/eureka/,http://localhost:8762/eureka/ 这样写,eureka 认为只有一个机器,就是 localhost
所以这里面不能写成一样,修改 hosts 文件: C:\Windows\System32\drivers\etc
如果你修改了 hosts 文件 发现没有生效 记得在 cmd 里面刷新一下 ipconfig /flushdns
5.1.5 重新修改配置文件
5.1.6测试查看集群信息
5.1.7最终优化配置文件
5.1.8最终的集群信息
5.2集群的使用
5.2.1改造 eureka-client-a的配置文件
5.2.3宕机一台 server
Eureka server的集群里面,没有主机和从机的概念,节点都是对等的,只有集群里面有一个集群存活,就能保证服务的可用性。(主机(写)从(读))只要有一台存活,服务就能注册和调用
了解一下一个分布式数据一致性协议 Paxos raft
zk是 Paxos
eureka没有分布式数据一致性的机制节点都是相同的
nacos raft
在有主从模式的集群中一般都要遵循这样的协议才可以稳定对外提供服务