servicecomb-java-chassis
servicecomb-java-chassis copied to clipboard
服务启动时,有什么机制能控制先不注入流量,等服务配置加载初始化都完成后,再注入流量吗?
现在主要是在一种动态扩容场景,比如A调用B,现在需要增加一个B服务的实例B1,由于B1启动时,需要拉取很多配置信息,需要耗费一定的时长,若这个时候A来调用B1,则会出现请求调用失败,想看看ServiceComb有没有机制来避免这种问题,比如B1启动完成时,再通知服务中心A可以调用B1了。
可以考虑下扩展负载均衡策略。 或者使用灰度发布,升级前先做好引流。
请问指导文档里负载均衡章节的“根据实例属性进行路由转发”,是否可以完成上述功能?
服务提供者B默认的tag都是notReady,只有在B初始化完成后,B中的代码把自己的tag设置为Ready;
消费者配置只访问tag为Ready的B的实例。
如果可以实现,还有个疑问,下面文档中这句话如何理解“实例属性可以在microservice.yaml中指定,也可以通过服务中心的API进行修改”,在代码中需要如何设置tag的属性,还需要单独调用服务中的API接口吗?
可以监听微服务的启动事件,保证相关配置在B1实例注册事件之前拉取完成
请问指导文档里负载均衡章节的“根据实例属性进行路由转发”,是否可以完成上述功能? 服务提供者B默认的tag都是notReady,只有在B初始化完成后,B中的代码把自己的tag设置为Ready; 消费者配置只访问tag为Ready的B的实例。 如果可以实现,还有个疑问,下面文档中这句话如何理解“实例属性可以在microservice.yaml中指定,也可以通过服务中心的API进行修改”,在代码中需要如何设置tag的属性,还需要单独调用服务中的API接口吗?
可以调实例属性更新接口,在配置拉取完成后动态更新自身的实例属性