概述
在实际进行微服务架构开发过程中,经常会遇到一个服务实例上线后需要很长一段时间才能够被其他服务调用者获取和使用,并不能在微服务一上线就立即被获取到,这是Eureka的机制造成的。在Eureak服务治理环境下,一个微服务上线有三处缓存处理和一处延迟处理,经过这些处理后才能够被服务消费方获取到并使用,它们分别是:
1,Eureka服务器对服务注册列表进行缓存,默认时间为30秒。所以即使一个服务实例刚刚注册成功,它也可能不会立即在/eureka/apps端点的结果中出现。
2,Eureka客户端(服务消费方)对注册的服务信息进行缓存,默认时间为30秒,也就是说客户端决定刷新本地缓存并发现其他新注册的实例可能需要30秒。
3,Ribbon负载均衡会从Eureka客户端获取服务列表,并将负载均衡后的结果缓存30秒,所以对于Eureka客户端新同步过来的服务节点,可能也会需要30秒之后才能被负载均衡使用。
4,服务实例(Eureka客户端)在启动时(不是启动完成),不是立即向Eureka服务器注册,而是在一个延迟时间(默认为40秒)之后才向Eureka服务器注册。
综上几个因素,一个新的服务实例,即使能够很快启动的实例,也不能马上被Eureka服务器发现,其他服务消费者需要一段时间,最长可能需要2分钟以上,才能够被发现和使用。
引用:《spring cloud 微服务架构开发实践》
最后
以上就是积极画板为你收集整理的eureke注册一个服务实例需要的时间的全部内容,希望文章能够帮你解决eureke注册一个服务实例需要的时间所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复