分享

微服务架构组件详解(8大核心组件)

 邸彦强 2023-05-13 发布于河北
文章图片1

微服务架构组件主要是:服务的发现、注册、路由、熔断、降级、分布式配置等,下面我分别详解@mikechen

1.服务注册

注册系统中所有服务的地方,所有的服务都会注册在这里,如下图所示:

文章图片2

关系调用说明:

  • 服务生产者启动时,向服务注册中心注册自己提供的服务;
  • 服务消费者启动时,在服务注册中心订阅自己所需要的服务;
  • 消费者从提供者中调用服务;

2.服务注册

首先服务注册与发现是来自于微服务架构的产物。

服务注册指的是将自身服务信息注册到注册中心,服务信息包括:服务所在主机IP、服务的端口号Port、暴露服务协议等信息。

如下图所示:

文章图片3

Service B 把自己注册到注册中心,这就叫 服务注册。

当下用于服务注册的工具非常多ZooKeeper,Consul,Etcd, 还有Netflix家的Eureka 等等。

不论使用那种工具,服务注册一定是要确保高可用的,否则重则的是所有的服务都没法调用,轻则新的服务不能上线。

3.服务发现

服务发现即通过注册中心,获取到注册到其中的服务实例的信息,通过这些信息去请求它们提供的服务。

如下图所示:

文章图片4

ServiceA去注册中心获取服务实例的信息,这就是服务发现。

4.负载均衡

当多个服务提供者时,可以根据负载均衡算法,比如:如简单轮询、随机连接等,自动地选择需要调用的服务地址。

例如:Spring Cloud 微服务架构中的Ribbon,客户端会有一个服务器地址列表,在发送请求前通过负载均衡算法选择一个服务器,然后进行访问,在客户端就进行负载均衡算法分配。

如下图所示:

文章图片5

总共有七种负载均衡策略可供选择,可以根据自己的业务场景进行选择:

  1. 轮询RoundRobinRule:这也是Ribbon默认的策略
  2. 随机RandomRule;
  3. 响应时间权重ResponseTimeWeightedRule:为每个服务设置权重,响应时间越短,权重越大;
  4. 最少并发数策略BestAvailableRule;
  5. 重试策略RetryRule;
  6. 可用性敏感策略AvailabilityFilteringRule;
  7. 区域性敏感策略ZoneAvoidanceRule;

5.服务熔断

服务熔断其实可以理解为类似于电表的保险丝,一旦某个时刻电压过载,那么保险丝就熔断了。

服务熔断的实现,大体流程如下图所示:

文章图片6

对于熔断机制的实现,设计了三种状态:

1.熔断关闭状态(Closed)

服务没有故障时,熔断器所处的状态,对调用方的调用不做任何限制。

2.熔断开启状态(Open)

在固定时间窗口内,比如:默认10秒,接口调用出错比率达到一个阈值,会进入熔断开启状态,进入熔断状态后,后续对该服务接口的调用不再经过网络。

3.半熔断状态(Half-Open)

在进入熔断开启状态一段时间之后,比如:Hystrix默认5秒,熔断器会进入半熔断状态。

6.服务网关

服务网关也称为API网关,是服务调用的唯一入口。

例如,在微服务架构中,Zuul是Spring Cloud中的微服务网关,是为微服务架构中的服务提供了统一的访问入口。

文章图片7

Gateway服务网关主要功能,如下图所示:

文章图片8

例如包含上图中的Gateway功能:

  1. 服务路由;
  2. 安全认证;
  3. 流量控制;
  4. 日志监控;
  5. 熔断保护等功能。

7.服务跟踪

随着微服务架构的流行,服务按照不同的维度进行拆分,在复杂的微服务架构系统中,会形成一个复杂的分布式服务调用链路,如下图所示:

文章图片9

面对复杂的调用链路就带来一系列问题:

  • 如何快速发现问题?
  • 如何判断故障影响范围?
  • 如何梳理服务依赖以及依赖的合理性?
  • 如何分析链路性能问题以及实时容量规划?

而链路追踪的出现正是为了解决这种问题,它可以在复杂的服务调用中定位问题。

例如:Spring Cloud Sleuth链路追踪 是 Spring Cloud的链路追踪组件,实现了分布式跟踪解决方案。

8.分布式配置中心

将本地化的配置信息,比如:properties、yml等配置信息,注册到配置中心,实现程序包在开发、测试、生产环境的无差别性方便程序迁移。

以上

更多分布式架构系列、阿里架构师进阶系列,请查看以下文章:

阿里架构师进阶从0到1全部合集(建议收藏)

文章图片10

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多