Dubbo-go 内置了基于 triple 协议的健康检查服务,帮助用户管理和监测服务健康状态,可在此查看 完整示例源码。
instance
启动后会自动向框架中注册健康检查服务 grpc.health.v1.Health
,用于记录并对外暴露每个triple服务的健康状态。grpc.health.v1.Health
,方法为 check
。启动 dubbo-go-samples/healthcheck/go-server 中的服务,通过下方客户端即可查看 greet.GreetService
的状态。
启动后会有以下输出
启动 dubbo-go-samples/healthcheck/go-server 中的服务,发起下方http请求即可查看 greet.GreetService
的状态:
将会有以下输出
值得注意的是,当前框架中尚未建立完整的服务状态管理机制,dubbo-go 框架会将所有加载的服务设置为 SERVING
状态,但尚没有 NOT SERVING
设置机制(在满足某个特定条件的情况下将服务状态设置为 NOT SERVING)。
如果有需要,用户可通过扩展 dubbo-go 框架的方式,提供完整的服务状态管理能力,这样就可以查询到实时更新的服务状态,并根据服务状态进行流量转发。
部分参考资料: