consul注册中心如何自动剔除下线服务

摘要:
背景:消费者注册中心不会立即删除离线服务,但会在很长一段时间后将其删除,这将导致许多问题。例如,服务a已经脱机,但仍在注册表中注册,这样其他服务就可以访问服务处理思想:我们可以侦听春季关闭事件,然后从侦听方法中删除脱机服务:注册表已经有两个服务,第二个是我在本地启动的服务。我们如何消除它:@ComponentpublicclassServiceCloseUn

背景:consul注册中心,对已经下线的服务不会立刻剔除,过了很久才会剔除,这样会导致很多问题,例如a服务明明已经下线,但还在注册中心注册,这样其他服务可能就会访问到该服务

处理思路:我们可以监听spring的关闭事件,然后在该监听方法中剔除下线的服务即可:

consul注册中心如何自动剔除下线服务第1张

 注册中心已经有2个服务,第二个是我本地启动的服务,那么我们如何剔除它呢:

@Component
public class ServiceCloseUnRegisterService {
    @Autowired(required = false)
    private ConsulServiceRegistry consulServiceRegistry;
    @Autowired
    private ConsulRegistration reg;

    @EventListener(ContextClosedEvent.class)
    public void doUnRegister(ContextClosedEvent contextClosedEvent){
        System.out.println("这是注册对象。。。。。。。。。。。。。。。"+consulServiceRegistry.getClass());
        if(null!=consulServiceRegistry){
            consulServiceRegistry.deregister(reg);
        }

    }
}

现在停掉服务:

consul注册中心如何自动剔除下线服务第2张

 consul注册中心如何自动剔除下线服务第3张

 控制台打印了日志,证明方法被调用到:

consul注册中心如何自动剔除下线服务第4张

此时注册中心已经没该服务了

免责声明:文章转载自《consul注册中心如何自动剔除下线服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android平台下OpenCV移植与使用---基于C/C++cocos creator主程入门教程(一)—— 初识creator下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

consul 微服务管理--分布式与单点故障

微服务管理--分布式与单点故障 上节课我们提到了服务的注册于发现机制,可以引入一个服务注册发现组件来实现对服务的管理,完成服务注册,信息查询,存储配置等功能。虽然引入了服务注册发现组件解决了就问题,但是会引入新问题。 Consul环境配置 1、将下载的consul_1.5.1_darwin_amd64.zip进行解压,解压后得到可执行文件consul。...

prometheus使用四(alertmanager&grafana告警及服务发现)

一.prometheus告警 prometheus有了监控和展示后,我们可以看到各种指标,但没有告警的话还是不方便。 (1)alertmanager告警   1.下载安装 下载地址:https://prometheus.io/download/ tar -xvf alertmanager-0.20.0.linux-amd64.tar.gz alertnat...

使用 Consul + Docker + Registrator + Consul-template 搭建可伸缩服务发现平台

背景介绍 Docker 的出现,改变了软件的交付方式,使得开发、测试、运维都能在一个完全统一的环境中进行。在服务容器化的网络中,需要添加服务发现功能。每个服务可能对应多个示例以容器运行在多个机器上,并且提供自动注册和失败检测机制。目前服务发现已经有很多成熟的解决方案,例如 Spring Cloud中的 Eureka 注册中心,Hystrix 断路器,zuu...

【原】docker部署单节点consul

docker下部署单节点的consul,最重要的是在run consul时,配置-bootstrap-expect=1 docker run --name consul1 -d -p 5902:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 10.109.30.246:5901/daily_...

.NetCore快速上手Consul,留给自己一点思考的空间

互联网热潮下,“微服务”技术架构成为了一种高大上的技术,其顾名思义就是将传统的大的业务服务拆分成独立的小服务,当拆分的服务慢慢多起来的时候,我们会发现服务地址很难管理,传统的方式一般会通过配置文件或者数据库存储,这种手动的维护的方式显然不够灵活,如果某个服务挂了,系统得不到及时的通知,只能等维护人员处理。这个时候如果有个中间件来做服务发现的话,显然会显得很...

.Net Core 3.1简单搭建微服务

学如逆水行舟,不进则退!最近发现微服务真的是大势所趋,停留在公司所用框架里已经严重满足不了未来的项目需要了,所以抽空了解了一下微服务,并进行了代码落地。 虽然项目简单,但过程中确实也学到了不少东西。 写在前面:先看下项目总体目录以及拓扑图,其中包括2个服务(几乎一样),一个网关,一个mvc项目。我的服务器是用虚拟机搭建的,环境是CentOS 7。本片文...