SpringCloud的底层架构原理
2021-08-30 11:13:46 1 举报
登录查看完整内容
SpringCloud的底层架构原理
作者其他创作
大纲/内容
provider A2192.168.22.100:8080
请求调用失败
请求调用
服务注册
每30秒发送心跳跳
线程
ReadOnly192.168.22.100:8080
注册表192.168.22.100:8080192.168.22.101:8080
ReadWrite192.168.22.100:8080
立即同步
定时检查与ReadOnely是否一致不一致就同步
Eureka注册与发现
provider A1192.168.22.101:8080
Consumer A服务注册表192.168.22.100:8080
1.prividerA1 providerA2 都往注册中心注册。并记录相应的ip port2.注册中心这边会有一个线程每个30秒去检查服务是否有心跳,是否存活。3.到注册中心后,会立即同步到ReadWrite。ReadWrite会每个30秒去同步到ReadOnly。4.消费者这边会每个30秒去拉取注册中心里面的ReadOnly 注册数据。5.消费者拉取正常的provider后,进行相应的调用。注意设计ReadWrite 和 ReadOnly 两层缓存?这么做的好处在于,优化并发读写的冲突。如果服务进行注册的时候,同时有服务来读去注册表信息,就会存在频繁的读写加锁的操作,写的时候就不能读,导致性能下降,所以我们需要避免大量的读写都去操作一个表。那么有了这两层,其实大部分的读操作都会走 ReadOnly 缓存。只需要定时把 ReadWrite 缓存中的数据写入到 ReadOnly 就好了。
定时30秒去检查
定时同步30秒
服务发现每30秒拉取
0 条评论
回复 删除
下一页