当前位置: > 教程攻略 > 正文

Consul,consult

Consul为基础设施提供服务发现和服务配置,它集成了服务发现、健康检查、Key/Value存储、多数据中心等工具,而且很多都是开箱即用的。安装了此程序的客户端可发送api或者mysql服务请求,并通过它找寻提供指定服务的其他客户端。

软件特点

与Kubernetes集成和扩大。

逾越任何运转时的服务网格

动态负载平衡

平安的多云服务网络

服务发现与正常检阅

供给一个厉害的生态系统

问题申明

consul作为注册中间和eureka的机制各种。

当微服务启动后起首向注册中间发注册要求,这点二者同样。以后在保护可用服务列表时,采取的是自动向微服务发正常检阅的接口(也能够设置成微服务自动向软件发心跳,可是我看完官网和各种文章都没说清晰详细怎样弄)。若是微服务正常前往,那末就以为服务正常。eureka是期待微服务自动向eureka发心跳,eureka收到心跳后,就给这个服务续约,以为服务是正常的。

恰是由于这点差别就发生了大问题!

场景一:软件和微服务间的网络不稳定,断开了几分钟。

在此环境下,软件向微服务发的正常检阅要求发欠亨,以为微服务挂了,就从服务列内外剔除他。

当网络恢复后,注重,已剔除的服务,软件是不会自动再发正常检阅的。那末服务列内外没有他,

也就不正常了。网关的转发都是需求获得可用服务列表,才干做转发的!

此刻候,你想让微服务注册上软件就只能重启微服务了。这在出产情况意味着甚么就不消多说了吧。

是否是很坑?

场景二:软件由于某种环境需求重启。(多是软件也需求投产,或其他缘由,总之就是需求重启软件)

这个场景和下面的近似。当软件重启后,之前已注册下去的,状况正常的服务,软件遗忘了。

由于他重启了,他不记得宿世的服务列表。

所以这类环境下,也需求重启我们的微服务,才干使状况正常。

综上,由于软件的正常检阅机制是软件自动发,跟eureka各种才致使这类问题。

问题很清晰了,要怎样处理呢?

我查了良多材料,除软件可以用ttl的技巧,让微服务自动发心跳来续约外,仿佛没有想成的方案。

可是这个ttl的方案,官网没细心说,网上的文章也是一大抄,没人说的大白。

我颠末研讨后,发现软件供给了很多多少rest接口。可以经由接口注册,刊出,查询等。

那末我们便可以模仿eureka的技巧,自动查软件的服务列表,近似心跳。

若是没查到,或发欠亨(软件挂了)那末久起头发注册的接口,把本身注册上去。

不断的发,直至成功。

软件测评

此程序可以进行自动配置,查询service情况渲染配置文件,当环境中新增主机或出现发送故障时,它还会动态更新相关的配置文件。它能够对主机集群的健康状态进行监视,有效避免服务发现组件向不健康的主机发送流量。

上文就是小编为您带来的Consul了,更多精彩软件请多多关注软件爱好者

热门阅读

最新文章