服务发现
调研结果
- eureka 已不维护,排除
- nacos,consul 都提供了丰富的功能。
- nacos 健康检查是provider 心跳;consul 是服务端做心跳。
- 都提供了dns, http api 的发现功能
- 都有详细metrix监控能力
- nacos 有命名空间,consul 开源版本不支持
- 都可以做鉴权
- 运维成本:都存在一定运维成本。
- nacos, consul 都提供了 配置管理功能。
- nacos watch 回调方式,使用的主动请求
- core-dns 无需入侵代码。其他均有代码入侵
- core-dns 不支持集群外的服务发现,其他服务支持
- core-dns 对细粒度的心跳检测做的不太好。(比如针对某个接口的POST操作等)
- 个人建议
- 在K8S集群内部做服务发现,不建议引入其他服务发现的依赖,使用core-dns即可
- 如果需要做集群外部的服务依赖,或者有特殊的心跳检查,建议使用nacos。
微服务重的服务发现模式
下图是微服务下的各类模式。其中,服务发现仅是各系统间沟通的一种模式。