您的位置:起点软件下载电脑软件应用软件Consul v1.7.13

Consul v1.7.13Consul v1.7.13

软件大小:26.0MB

用户评分:

软件类型:国产软件

运行环境:Win All

软件语言:简体中文

软件分类:应用软件

更新时间:2021-04-21 14:12:00

授权方式:免费软件

插件情况:无 插 件

服务网络解决 连接授权

Consul是一款服务器网络问题解决方案,安装软件自动化网络配置,安全运行连接,多个集群合并到一个服务网格中。支持服务到服务的连接授权,并且加密,方便管理!

Consul特点

与Kubernetes集成和扩展。

跨越任何运行时的服务网格

动态负载均衡

安全的多云服务网络

服务发现与健康检查

提供一个强大的生态系统

Consul

Consul问题说明

consul作为注册中心和eureka的机制不同。

当微服务启动后首先向注册中心发注册请求,这点两者一致。之后consul在维护可用服务列表时,采用的是主动向微服务发健康检查的接口(也可以配置成微服务主动向consul发心跳,但是我看完官网和各类文章都没说清楚具体怎么搞)。如果微服务正常返回,那么就认为服务正常。eureka是等待微服务主动向eureka发心跳,eureka收到心跳后,就给这个服务续约,认为服务是正常的。

正是因为这点差异就产生了大问题!

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

在此情况下,consul向微服务发的健康检查请求发不通,认为微服务挂了,就从服务列表里剔除他。

当网络恢复后,注意,已经剔除的服务,consul是不会主动再发健康检查的。那么服务列表里没有他,

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

这时候,你想让微服务注册上consul就只能重启微服务了。这在生产环境意味着什么就不用多说了吧。

是不是很坑?

场景二:consul因为某种情况需要重启。(可能是consul也需要投产,或者其他原因,总之就是需要重启consul)

这个场景和上面的类似。当consul重启后,之前已经注册上来的,状态正常的服务,consul忘记了。

因为他重启了,他不记得前世的服务列表。

所以这种情况下,也需要重启我们的微服务,才能使状态正常。

综上,因为consul的健康检查机制是consul主动发,跟eureka不同才导致这种问题。

问题很清楚了,要怎么解决呢?

我查了很多资料,除了consul可以用ttl的方式,让微服务主动发心跳来续约外,好像没有想成的方案。

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

我经过研究后,发现consul提供了好多rest接口。可以通过接口注册,注销,查询等。

那么我们就可以仿照eureka的方式,主动查consul的服务列表,类似心跳。

如果没查到,或者发不通(consul挂了)那么久开始发注册的接口,把自己注册上去。

不停的发,直至成功。

Consul测评

Consul一站式问题解决,轻松小巧的软件!

精品软件

用户评论

(您的评论需要经过审核才能显示)0人参与,0条评论
140

最新评论

还没有评论,快来抢沙发吧!