SpringCloud
2021-12-07 15:00:18 0 举报
Springcloud
作者其他创作
大纲/内容
发起远程调用
网关
routing filter
api层由多个能力层微服务组合而成,对外提供服务
Zuul GateWay
更新时间
eureka客户端销毁
Web 服务B
链路追踪
定时发送心跳到server端,维持租约
释放锁
服务提供者
接受服务心跳
返回
服务注册中心集群/Eureka
不存在
服务注册
读取和server的交互配置信息
注册中心
能力层
Eureka
移动设备B
是否有租约
去server端拉取注册信息,并缓存到本地
是
post filter
熔断降级
peer拉取信息
三个定时任务
API路由网关/zuul
Eureka关键类: 1: EurekaClientAutoConfiguration 2: RibbonEureksAutoConfiguration 3: EurekaDiscoveryClientConfiguration 4: DiscoveryClient服务发现核心接口:DiscoveryClient负责了与EurekaServer交互的逻辑绿色:全量拉取黄色:增量拉取
配置中心
Zuul过滤器执行流程
否
创建新的租约
Eureka Feign Ribbon Hystrix Zuul Sleuth Zipkin config-server
Pre filter
Hystrix
获取注册列表get registry
Nginx
扔掉
判断最后更新时间
查看springboot与spring'cloud对应版本https://start.spring.io/actuator/info
Web 服务C
客户端
启动后
健康检查
更新时间戳
Eureka服务端
移动设备A
服务消费者
微服务A
AbstractInstanceRegistry (自我保护机制不允许剔除服务) evict()方法剔除
注册到自己的注册表中
服务客户端
eureka客户端启动
监控自身变化,有变动再去注册
Eureka不满足CAP理论中的CZookeeper不满足A
下线 cancel
微服务B
eureka客户端运行
存在
注册 register
在注册表中差instanceinfo
从注册表中移除
移动设备C
读取自身的配置信息,封装
查询租约
获取注册列表 get registry
续约 renew
设置下线时间
unknow
小
服务熔断Hystrix
服务调用
获取服务列表
false不管
从server端拉取注册表信息,并更新本地缓存
服务发现
统计每分钟续约次数,用于自我保护
查找
大
自我保护模式的出发条件当每分钟的心跳数小于n时触发保护模式当前注册的实例数*2*续租百分比(配置文件中可以设置)=n服务端自我保护机制打开
负载均衡RibbonFeign
获取读锁
启动的时候完成
取消续约
SpringCloud
下线失败
注册到我的服务有变动时,通过replicateToPeers方法同步到其他节点PeerAwareInstanceRegistry类
服务注册与发现服务调用服务熔断负载均衡服务降级服务消息队列配置中心管理服务网关服务监控全链路追踪自动化构建部署服务定时任务调度
服务剔除
集群同步
Admin
http请求
服务下线
判断租约是否存在
Web 服务A
设置上线时间
Eureka客户端
把server端自己的租约销毁
为了计算租约的有效性
服务监控/Admin
添加下线记录客户端重新拉取的时候会不再选择该服务
接受服务注册
0 条评论
回复 删除
下一页