微服务的升级(微服务之一)

服务注册中心:Eureka、Zookeeper、Consul  新的:Nacos

服务调用(1):Ribbon   新的:LoadBalancer

服务调用(2): Feign       新的:OpenFeign

服务降级:Hystrix       新的:resilience4j(国外),  sentienl(国内)

服务网关:Zuul           新的:gateway

服务配置:Config       新的:Nacos

服务总线:Bus            新的:Nacos

Eureka的通信机制使用了http的rest接口实现,这也是eureka与其它注册工具的不同的一个关键点,由于http的平台无关性,Eureka  Server 使用java来实现的,但是Eureka 在注册函数的时候,先调用publishEvent函数,将该新服务注册的事件传播出去,然后调用com.netflix.eureka.registry.AbstractInstanceRegistry父类中的注册实现,将Instanceinfo中的元数据信息存储在一个ConcurrentHashMap对象中。注册中心存储了两层的Map结构,第一层的key存储服务名:InstanceInfo中的appName属性,第二层的key存储实例名:InstanceInfo中的instanceId属性

Eureka Server  在运行期间,会统计心跳的失败比例在15分钟之内是否低于85%,如果出现低于的情况,Eureka Server 会将当前的实例注册信息保护起来,让这些实例不会过期,尽可能保护这些注册信息。

Eureka的事件列表:

  • EurekaInstanceCanceledEvent: 服务下线事件
  • EurekaInstanceRegisteredEvent: 服务注册事件
  • EurekaInstanceRenewedEvent: 服务续约事件
  • EurekaRegistryAvailableEvent: eureka注册中心启动事件
  • EurekaServerStartedEvent: eureka server启动时间

1.构建高可用的服务注册中心集群时,我们可以为参数的vaule值配置多个注册中心的地址(通过逗号进行分割)如:eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/

Eureka(AP原则)

 服务注册  、服务续约、 获取注册列表信息 、 服务下线  、服务剔除

Eureka 客户端每隔30秒发送一次心跳续约,通过心跳续约告知Eureka Server 该Eureka客户端仍然存在,没有出现问题。正常情况下,如果Eureka Server 在90秒后没有收到Eureka客户端的续约,它将实例从注册列表中删除(Eureka的这种定时任务是通过JDK自带的Timer实现的)

Eureka Server 采用的是Peer   to  Peer 对等通信。这是一种去中心化的架构,没有master/slave区分,每一个peer都是对等的。在这种架构中,节点通过彼此相互注册来提高可用性,每一个节点需要添加一个或者多个有效的serviceUrl来指向其它节点。每个节点都被视为其它节点的副本。

@EnableDiscoveryClient   是通用的注册服务发现

@EnableEurekaClient  是专门为Eureka使用的

欢迎关注公众号:北漂之路之程序人生(技术博客)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值