1. 经典文档

1、什么是服务治理? - call back : 经典
2、服务治理脑图 - 统揽全局

2. 服务治理的三大门派

Eureka Consul nacos
一致性 弱一致性(AP) 弱一致性(AP) AP/CP
性能
网络协议 http http、dns http、dns、udp
应用广度 目前主流 目前非主流 稳中有升,尚待观察
consul性能慢原因:它是基于raft协议leader选举,正因为需要选举leader,在选举的过程中服务是不可用的

3. eureka初识

3.1 eureka的服务流程

  1. eureka分为:服务端/注册端(Eureka Server/registry)和客户端(Eureka Client)
  2. Eureka Server/Registry 是供服务注册的服务器,所有的客户端都会注册到服务端上
  3. Eureka Client 同来简化与服务器的交互,作为轮训负载均衡器,并提供服务的故障切换支持(所以eureak是客户端的发现机制)
  4. Eureka Server 作为服务注册的服务器,它作为注册中心
  5. 而系统中的其它服务呢,使用的 Eureka Client 连接到 Eureka Server,并维持心跳链接,这样就能监控系统中各个微服务是否正常运行

    3.2 eureka的服务调用流程

  • eureka client、eureka consumer,他俩都是客户端,工作的流程是
  • 它们都将自己注册到server上,并提供自己的ip和port
  • 然后client调用consumer需要找到他的port和ip发起请求远程调用

    3.3 优秀的参考文章

  • 注册中心的基本逻辑 - 等待戈多 —> region zone url

  • 服务注册知多少?- 完美文档
  • 解读注册中心UI界面 - 不好记忆 常回来看看

    3.4 注册中心页面详解

  • Uptime:注册中心从启动到运行至今经过的时间

  • Lease expiration enabled:是否启用租约过期。false代表着开启
    • 例如“假设服务自保处于关闭状态,a服务的租约过期,没有及时进行服务续约,注册中心可以利用服务剔除,把服务下线掉”
  • Renews threshold:每分钟最少的服务续约数,例如“后面的值是3,每分钟最少3个服务和我续约”
  • Renews (last min):过去一分钟,也就是最后一分钟的续约数量
  • DS Replicas:注册中心高可用的时候,显示其它注册中心的信息
  • Instances currently registered with Eureka:当前注册到该注册中心的实例

    4. 注册中心的核心保障

    4.1 服务注册

  • 客户端注册到注册中心后会提供给注册中心哪些信息呢?

    • 提供的服务是多少呀 - 接口地址
    • Ip + port
    • 服务状态,通常完成注册之后的状态是up
  • 客户端在等待服务端入陆续注册的时候默默做的动作
    • 服务端会定时的向客户端发送请求,如果没有的到响应(心跳监测),如果长时间不回复我,那么服务端会将他们从注册中心提出(服务剔除)
    • 注册信息同步:多个注册中心分别接受不同的客户端注册,那么他们就抽空做客户端的分享,让大家同时用于所有的注册客户端
  • 茫茫网络世界,客户端如何找到注册中心呢?
  • EnableDiscoveryClient & EnableEurekaClient 的区别?

    • 因为Eureka支持多种注册中心
    • EnableDiscoveryClient注解在使用任何Eureka支持的注册中心时都可以使用,是一个通用的注解
    • 而EnableEurekaClient注解只有在使用Eureka作为注册中心时才可以使用,是Eureka注册中心的专用注解,在使用其他注册中心的时候不管用.
    • 所以,在使用Eureka作为注册中心的时候,推荐使用EnableEurekaClient注解,在使用其他注册中心的时候,使用EnableDiscoveryClient注解
    • EnableDiscoveryClient是spring cloud封装的标准服务发现接口,EnableEurekaClient是netflix封装的接口,如果以后要替换底层服务发现组件的话,强烈建议使用EnableDiscoveryClient,这样你的代码就和底层组件无关了。

      4.2 服务发现

      4.2.1 服务端发现与客户端发现

      Tips:注意查看Ribbon章节的,服务端注册均衡和客户端负载均衡(两者十分相似,可以理解为一样的)
  • 客户端- eureka

    • eureka是基于客户端的服务发现,服务调用者,从注册中心获取可用服务列表,客户端再通过负载均衡确认服务提供者具体是哪一个
  • 服务端 - nginx
    • 客户端会转发到一个中间代理层,他决定负载均衡的策略,并且发起调用
  • 核心参考本文章:https://class.imooc.com/lesson/1239#mid=29696

    4.2.2 eureka的客户端发现

    image.png
    作为服务调用方,我在这里选择对应的服务,说明客户端有服务列表的信息

    4.3 心跳检测

    4.3.1 参考文章

  • 心跳监测与服务剔除:https://class.imooc.com/lesson/1239#mid=29697

  • 服务续约:https://class.imooc.com/lesson/1239#mid=29698

    4.4 服务续约

    4.5 服务剔除

    4.6 服务自保

    4.7 服务下线

    4.8 注册中心高可用