第四章 服务治理

  服务化的关键是服务治理。

  服务治理主要包括服务发现、负载均衡、限流、熔断、超时、重试、服务追踪

  4.1 服务发现

    如果服务少,可以通过硬编码或配置文件提供服务地址。但是面对大量服务实例和频繁的上线部署,服务之间如果想知道彼此的服务地址和运行状态,这时候就需要服务发现组件来实现。

    4.1.1 服务发现概述

      使用一个注册中心来记录分布式系统中全部服务信息,以便让其他服务能快速找到这些已经注册的服务。要尽量做到高可用。

    服务发现模块需要有服务注册、服务查找、服务健康检查和服务变更通知等关键功能。

      可以通过服务名称来查找和使用服务,而不需要提供网络地址和端口号。

      DNS可以说是最早的服务发现实例。

      微服务更新、发布频繁,并且常根据负载情况进行弹性伸缩,因此微服务IP地址变化是常态。

      服务发现基本机制:

扫描二维码关注公众号,回复: 7185746 查看本文章
  •  服务提供者在服务启动时,将服务名称、IP地址、访问端口以及其他服务的元数据信息注册到注册中心
  •  注册中心与服务提供者无法维持心跳探测时会将服务从注册中心剔除。
  •  服务消费者从注册中心获取服务提供者最新信息时,可以使用定期拉取事件通知两种方式。

    CAP定理

     在一个分布式计算机系统中,只能满足一致性(Consistency),可用性(Availability)、和分区容错性(Partition tolerance),中的两个,这就是CAP定理。

              分区容错性: 服务期间的通信即使在一定时间内无法保持畅通也不会影响系统继续运行。分布式系统中,分区容错性是必须的。

    对于分布式系统:AP和CP之间抉择;

    业界提供的用于服务发现的注册中心,本质上都满足AP或CP系统。

    高可用:

      为了保证注册中心的可用性,要多节点部署,而且还需要自愈和调整的能力。注册中心需要具备判断集群内节点健康状况的能力,可以将访问超时节点剔除,恢复的节点重新加入。

    4.1.2 Zookeeper

      一个高可用且具备严格顺序访问控制能力的分布式协调系统,它是一个分布式数据一致性的解决方案。

      

    4.1.3 Erueka

  4.2 负载均衡

    4.2.1 服务端负载均衡

    4.2.2 客户端负载均衡

  4.3 限流

    4.3.1 限流算法

    4.3.2 限流实现方案

    4.3.3 限流的维度与粒度

  4.4 熔断

    4.4.1 概述

    4.4.2 熔断器模式

    4.4.3 Hystrix

  

猜你喜欢

转载自www.cnblogs.com/liufei1983/p/11470081.html