对Eureka、Zookeeper、Consul的学习总结
Eureka(AP范畴)
我第一次接触Eureka还是在springboot整合Eureka的时候,那是我第一次接触微服务…哈哈,不闲聊
首先要说的是Eureka的配置,如下yml文件所示
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服务的实例名称
client:
#false表示不向注册中心注册自己
register-with-eureka: false
#false表示自己端就是注册中心,职责是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
#设置与Eureka server交互的地址查询服务和注册服务都需要依赖这个地址
# defaultZone: http://eureka7002.com:7002/eureka/ #集群版 指向其他eureka
defaultZone: http://eureka7001.com:7001/eureka/ #单机版 单机就是自己
#eureka自我保护相关的配置
# server:
# #关闭自我保护机制,保证如果有不可用的服务时,此服务可以被及时剔除
# enable-self-preservation: false
# eviction-interval-timer-in-ms: 3000
其中Eureka的自我保护机制相对于另外两个注册中心来说可谓是“心底善良”,当Eureka没有收到来自某一个服务的“心跳”时,此时它并不会马上把这个服务剔除掉,而是等待!注意:Eureka默认是开启了自我保护机制的。
Zookeeper–(CP范畴)
# 8004表示注册到zookeeper服务器的支付服务提供者端口号
server:
port: 8004
spring:
application:
name: cloud-provider-payment #服务注册的别名
cloud:
zookeeper:
connect-string: ***.***.***.***:2181
对于 Zookeeper的自我保护机制,它相当绝情,只要没有收到来自某一服务的“心跳”,马上就会把这个服务剔除,并且在Zookeeper中注册的服务是临时的节点。
Consul–(CP范畴)
server:
port: 8006
spring:
application:
name: consul-provider-payment
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${spring.application.name}
Consul和Zookeeper一样“绝情”,也是只要没有收到服务的“心跳”,立刻会把此服务剔除
最后
此文章只是简单记录自己的学习!!!
服务注册中心大同小异,可参照以下示例