本文共 590 字,大约阅读时间需要 1 分钟。
要在程序中控制服务的上下线可以用下面方式
@Autowiredprivate ConsulAutoServiceRegistration consulAutoServiceRegistration;public static Boolean STATUS = Boolean.TRUE;@GetMapping("/switch")public Boolean switchStatus(){ STATUS = !STATUS; if (STATUS) { consulAutoServiceRegistration.start(); }else{ consulAutoServiceRegistration.stop(); } return STATUS;}
ConsulAutoServiceRegistration consulAutoServiceRegistration;
ConsulAutoServiceRegistration
的stop()
进行服务下线,调用start()
进行服务的上线。注意服务下线后Consul确实能够快速的发现该服务确实下线,但是对于其他消费该服务的服务来说不会立刻觉察到,要过一段时间才可以。可能是由于 ribbon的缓存机制。
[1].
转载地址:http://xcqof.baihongyu.com/