Spring Cloud 系列

服务注册

提供服务的注册与查询功能

Eureka

保证cap中的ap,即可用性。
服务注册相对要快,因为不需要等注册信息replicate到其他节点,也不保证注册信息是否replicate成功
当数据出现不一致时,虽然A, B上的注册信息不完全相同,但每个Eureka节点依然能够正常对外提供服务,这会出现查询服务信息时如果请求A查不到,但请求B就能查到。如此保证了可用性但牺牲了一致性

Consule

保证cap中的cp,即强一致性。
服务注册相比Eureka会稍慢一些。因为Consul的raft协议要求必须过半数的节点都写入成功才认为注册成功
Leader挂掉时,重新选举期间整个consul不可用。保证了强一致性但牺牲了可用性。

网关 - Api Gateway

介绍

网关:路由分发和过滤

  • 作为代理,如nginx一般转发请求到后端服务
  • 配置服务注册中心,根据服务名自动转发
  • 统一请求入口,进行公共处理,如:
    • 身份认证
    • 日志记录
    • 配合限流库:hystrix,熔断限流降级依赖隔离等
    • 配合负载均衡库:ribbon,流量负载均衡

zuul

路由转发

与服务注册中心配置时不需要配置

zuul:
    routes:
        bms-biz:
            path: /api/bms/biz/**
            sensitiveHeaders: Content-Length
            url: http://bms-biz.dsg.cfpamf.com

过滤

preFilter  # 转发前拦截处理
routeFilter # 实际路由
postFilter  # 转发后拦截处理

spring cloud gateway

同上

网络相关

feign

http调用客户端,通过注解调用接口
本质是 ribbon + hystrix

ribbon

负载均衡,重试

ribbon:
  ReadTimeout: 50000
  ConnectTimeout: 50000
  MaxAutoRetries: 0
  MaxAutoRetriesNextServer: 1

Hystrix

[hIst'rIks](嗨斯捶克斯)

客户端容错保护,特性有服务降级、服务熔断、请求缓存、请求合并、依赖隔离

断路器

@HystrixCommand(fallbackMethod = "processHystrix_Get")

达到一定条件时,不再执行原方法,而改为执行 fallback 方法

配置中心

spring cloud config

提供配置信息


发布于 2020/06/15 浏览