Eureka 服务注册中心

关于服务注册中⼼
    本质上是为了解耦服务提供者和服务消费者
    对于任何⼀个微服务,原则上都应存在或者⽀持多个提供者,这是由微服务的 分布式属性决定的
服务注册中⼼⼀般原理
    分布式微服务架构中, 服务注册中⼼⽤于存储服务提供者地址信息、服务发布相关 的属性信息,消费者通过 主动查询和被动通知的⽅式获取服务提供者的地址信息, ⽽不再需要通过硬编码⽅式得到提供者的地址信息。消费者只需要知道当前系统发 布了那些服务,⽽不需要知道服务具体存在于什么位置,这就是透明化路由。
  • 服务提供者启动
  • 服务提供者将相关服务信息主动注册到注册中⼼
  • 服务消费者获取服务注册信息 :
          pull模式:服务消费者可以主动拉取可⽤的服务提供者清单
          push模式:服务消费者订阅服务(当服务提供者有变化时,注册中⼼也会主动推送 更新后的服务清单给消费者
  • 服务消费者直接调⽤服务提供者
另外,注册中⼼也需要完成服务提供者的健康监控,当发现服务提供者失效时需要 及时剔除
主流服务中⼼对⽐
Zookeeper
    Zookeeper它是⼀个分布式服务框架,是Apache Hadoop 的⼀个⼦项⽬,它主 要是⽤来解决分布式应  ⽤中经常遇到的⼀些数据管理问题,如:统⼀命名服 务、状态同步服务、集群管理、分布式应⽤配置项的管理等。
简单来说 zookeeper本质=存储+监听通知
    znode
        Zookeeper ⽤来做服务注册中⼼, 主要是因为它具有节点变更通知功能,只要 客户端监听相关服务节点,服务节点的所有变更,都能及时的通知到监听客户 端,这样作为调⽤⽅只要使⽤ Zookeeper 的客户端就能实现服务节点的订阅和 变更通知功能了,⾮常⽅便。另外,                Zookeeper 可⽤性也可以,因为 只要半数 以上的选举节点存活,整个集群就是可⽤的
Eureka
    由Netflix开源,并被Pivatal集成到SpringCloud体系中,它是基于 RestfulAPI ⻛格开发的服务注册与发现组件
Consul
    Consul是由HashiCorp基于Go语⾔开发的⽀持多数据中⼼分布式⾼可⽤的服务 发布和注册服务软件,  采⽤Raft算法保证服务的⼀致性,且⽀持健康检查。
Nacos
    Nacos是⼀个更易于构建云原⽣应⽤的动态服务发现、配置管理和服务管理平 台。简单来说 Nacos 就是  注册中⼼ + 配置中⼼的组合,帮助我们解决微服务开 发必会涉及到的服务注册  与发现,服务配置,服务管理等问题。 Nacos 是 Spring Cloud Alibaba 核⼼组件之⼀,负责服务注册与发现,还有配置。
组件名
开发语言
CAP
对外暴露接口
Eureka
Java
AP(自我保护机制,保证可用)
HTTP
Consul
Go
CP
HTTP/DNS
Zookeeper
Java
CP
客户端
Nacos
Java
支持AP/CP切换
HTTP
P:分区容错性(⼀定的要满⾜的)
C:数据⼀致性
A:⾼可⽤
注意:CAP不可能同时满⾜三个,要么是AP,要么是CP
服务注册中⼼组件 Eureka
    Eureka 交互流程及原理
        官⽹描述的⼀个架构图
Eureka 包含两个组件: Eureka Server 和 Eureka Client,Eureka Client是⼀个 Java客户端,⽤于简化与Eureka Server的交互;Eureka Server提供服务发现的 能⼒,各个微服务启动时,会通过Eureka Client向Eureka Server 进⾏注册⾃⼰ 的信息(例如⽹络信息),Eureka Server会存储该服务的信息;
  • 图中us-east-1c、us-east-1d,us-east-1e代表不同的区也就是不同的机房
  • 图中每⼀个Eureka Server都是⼀个集群。
  • 图中Application Service作为服务提供者向Eureka Server中注册服务,
  • Eureka Server接受到注册事件会在集群和分区中进⾏数据同步,Application  Client作为消费端(服务消费者)可以从Eureka Server中获取到服务注册信 息,进⾏服务调⽤。
  • 微服务启动后,会周期性地向Eureka Server发送⼼跳(默认周期为30秒) 以续约⾃⼰的信息
  • Eureka Server在⼀定时间内没有接收到某个微服务节点的⼼跳,Eureka Server将会注销该微服务节点(默认90秒)
  • 每个Eureka Server同时也是Eureka Client,多个Eureka Server之间通过复 制的⽅式完成服务注册列表的同步
  • Eureka Client会缓存Eureka Server中的信息。即使所有的Eureka Server节 点都宕掉,服务消费者依然可以使⽤缓存中的信息找到服务提供者
Eureka通过⼼跳检测、健康检查和客户端缓存等机制,提⾼系统的灵活性、可 伸缩性和可⽤性。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值