eureka服务注册后客户端服务发现过慢怎么办?
第一步:先了解服务注册的流程
服务发现的流程:
1、服务注册到server端的服务注册列表
服务额提供者作为client端发送rest请求,将自己服务的元数据信息注册到注册中心,server是一个双层的map结构存储,第一次层key是服务名,第二层key是具体服务的实例名
2、立即同步到readWrite缓存中
3、Server端线程定时同步数据到readOnly缓存
4、客户端定时拉取readOnly缓存中的信息
如果readOnly为空,就到readWrite缓存中寻找,readWrite为空就到服务注册列表拉取
第二步:针对性优化
服务注册后发现过慢怎么办?
分析原因:影响发现速度的两个地方
1、readWrite缓存到readOnly缓存的同步时间,调整eureka的server端配置参数
对应的配置参数,#只读缓存更新频率,单位:毫秒,默认是30s,我们线上使用的是3s钟
response-cache-update-interval-ms: 3000
2、客户端拉取readOnly缓存的时间间隔,默认是30s,可以根据需要调整client端拉取缓存时间,我们线上是使用的10s
eureka.client.registry-fetch-interval-seconds=30