1、服务发现---------Netfix Eureka(替代品:nacos,zookeeper,consul)

2、负载均衡---------Netflix Ribbon(替代品:SpringCloudLoadbalancer)

3、熔断降级---------Netfix Hystrix(替代品:Alibaba Sentinel,Resilience4J)

4、服务网关---------Netfix Zuul(替代品:getWay)

5、配置中心---------SpringCloud Config(替代品:nacos config,consul)

注册中心?

微服务架构中注册中心可以说是服务关系的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务都会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。

注册中心主要提供两个重要功能:服务注册、服务发现。

负载均衡?

负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。

  1. 当集群里的1台或者多台服务器down的时候,剩余的没有down的服务器可以保证服务的继续使用。
  2. 使用了更多的机器保证了机器的良性使用,不会由于某一高峰时刻导致系统cpu急剧上升。

负载均衡有好几种实现策略,常见的有:

  1. 随机 (Random)
  2. 轮询 (RoundRobin)
  3. 一致性哈希 (ConsistentHash)
  4. 哈希 (Hash)
  5. 加权(Weighted)

熔断降级? 

 当微服务系统的一个服务出现故障时,故障会沿着服务的调用链路在系统中疯狂蔓延,最终导致整个微服务系统的瘫痪,这就是“雪崩效应”。为了防止此类事件的发生,微服务架构引入了“熔断器”的一系列服务容错和保护机制。

在微服务系统中,Hystrix 能够帮助我们实现以下目标:

  • 保护线程资源:防止单个服务的故障耗尽系统中的所有线程资源。
  • 快速失败机制:当某个服务发生了故障,不让服务调用方一直等待,而是直接返回请求失败。
  • 提供降级(FallBack)方案:在请求失败后,提供一个设计好的降级方案,通常是一个兜底方法,当请求失败后即调用该方法。
  • 防止故障扩散:使用熔断机制,防止故障扩散到其他服务。
  • 监控功能:提供熔断器故障监控组件 Hystrix Dashboard,随时监控熔断器的状态。

 服务网关?

Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。

Route(路由):网关的基本构建,它由一个ID,一个目标URL,一组断言和一组过滤器定义。如果断言为真,则路由匹配。

Predicate(断言):输入类型是一个ServerWebExchange。可以使用它来匹配来自HTTP请求的任何内容,如Headers或参数。

过滤器(filter):GateWay中的filter分为两种类型,分别是GaterWay Filter和Global Filter。过滤器Filter将会对请求和响应进行修改处理。

Pridicate使用规则:

1、通过时间匹配(predicates: - After=2018-01-20T06:06:06+08:00[Asia/Shanghai])

2、通过Cookie匹配(predicates: - Cookie=ityouknow, kee.e)

3、通过Host匹配(predicates: - Host=**.ityouknow)

4、通过请求方式匹配(predicates: - Method=GET )

5、通过请求路径匹配(predicates: - Path=/foo/{segment})

6、通过请求参数匹配(predicates: - Query=smile)

7、通过请求IP地址匹配(predicates: - RemoteAddr=192.168.1.1/24 )

8、组合使用

 配置中心?

Spring Cloud Config 为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。

config动态刷新,解决每次配置更新都要重启服务才能生效问题。

更多推荐

SpringCloud 五大核心组件