微服务系列1 - Spring Cloud 之 Consul 与 Consul 服务剔除

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bitree1/article/details/83270624

1.简介

Consul有多个组件,但总体而言,它是基础架构中的一款服务发现和配置的工具。 它提供了几个关键功能:

(1)服务发现:Consul client 可以提供服务,例如api或mysql,也可以使用Consul client来发现指定服务的提供者。 使用DNS或HTTP,应用程序可以轻松找到他们所依赖的服务。

(2)健康检查:Consul client 可以提供任何数量的健康检查,或者与给定的服务(“Web服务器是否返回200 OK”),或与本地节点(“内存利用率是否低于90%”)相关联。 可以使用此信息来监控集群运行状况,服务发现组件使用此信息将流量从有问题的主机中移除出去。

(3)KV Store:应用程序可以使用Consul的分层键/值存储,包括动态配置,功能标记,协调,leader选举等等。 简单的HTTP API使其易于使用。

(4)多数据中心:Consul支持多个数据中心。 这意味着Consul的用户不必担心构建额外的抽象层以扩展到多个区域。

 Consul旨在对DevOps社区和应用程序开发人员友好,使其成为现代化,弹性基础架构的完美选择。

2.优点

consul由GO语言开发,是专门用来做服务发现的,具有服务注册、服务必现、服务检测、UI管理、命令管理、API管理、数据存储等;且spring在此基础上做了封装,优先采用;

3.踩坑点

1)背景:使用springcloud项目久了,就发现了consul作为注册中心的一大缺点,不利于使用,踩了不少坑,注册中心内的服务许手动删除,不然历史注册的已停止服务的错误节点就影响使用,比如如下情况:

开启springboot项目老是有个僵尸在,把所有java程序都关了还存在,可是压根都没起服务,更加没设置过那种端口

还比如现在明明起了一个服务第一个,却有好几个服务在线,都是我的ip

进过深入研究发现 ----注册中心内的服务许手动删除

2)手动删除方法:

      删除无效服务:

      http://ip:8500/v1/agent/service/deregister/服务名称

      sic-user-9003 这种为服务名称

     删除无效节点:

     http://ip:8500/v1/agent/force-leave/节点名

     4b36b27317a0 这种为节点名(也就是容器id)

截图如下:


将不定期更新资源,欢迎持续关注

想获得更多的学习知识请关注微信公众号:西北码农或扫下方二维码

猜你喜欢

转载自blog.csdn.net/bitree1/article/details/83270624