Closed 2lingnil closed 4 years ago
现在问题是如何使用编程方式在控制相关服务中提供接口
这句话不是很明白,是指动态关闭接口?比如A有foo,bar两个接口,想把foo关掉或停止服务?那可以用Wrapper。Wrapper可以在FooHandler之前执行,伺机下放请求到Handler即可。
动态扩展/关闭服务A的节点
这块比较偏运维层面的了,扩展的话只能是让运维新发布服务,关闭则可以让服务侦听Broker事件,让调度器服务广播要下线的节点,广播的消息包含要下线的节点ip或元数据(micro.Metadata)等信息,当节点侦听到的消息,解析消息后发现包含自己的ip或元数据,那就自己调用Shutdown接口。
获取所有在线服务的信息
获取所有服务可以使用Registry.ListServices(eg. service.Options().Registry.ListServices() )
方法获取同一注册中心的go-micro服务。
@printfcoder
现在问题是如何使用编程方式在控制相关服务中提供接口
这句话原本要表达的意思是:后端会提供一个接口给前端,前端通过调用该接口,关闭某个服务,或者个服务添加节点。