記一次開(kāi)發(fā)過(guò)程中遇到的 consul 和 tomcat中war包 啟動(dòng)聯(lián)合坑
在本地開(kāi)發(fā)環(huán)境中使用 springboot 內(nèi)置容器啟動(dòng)服務(wù)注冊(cè)項(xiàng)目, 可以正常注冊(cè)到consul服務(wù)
因?yàn)槭且粋€(gè)新項(xiàng)目, 測(cè)試環(huán)境還在搭建, 所以就通過(guò) Alibaba Cloud 將war包發(fā)布至我的云服務(wù)器來(lái)和前端聯(lián)調(diào)接口
問(wèn)題就出現(xiàn)了??????
在使用服務(wù)調(diào)用者進(jìn)行調(diào)用 consul服務(wù) 時(shí), 提示找不到注冊(cè)的服務(wù), 經(jīng)過(guò)排查, 是因?yàn)榉?wù)提供者就沒(méi)有注冊(cè)上
解決方式
properties:
server.port=your-port-here
spring.cloud.consul.discovery.port=${server.port}
Listener:
@Configuration
@ConditionalOnConsulEnabled
@ConditionalOnMissingBean(type= "org.springframework.cloud.consul.discovery.ConsulLifecycle")
@AutoConfigureAfter(ConsulAutoServiceRegistrationAutoConfiguration.class)
public class MyConsulListener implements ApplicationContextAware {
@Autowired(required=false)
private ConsulAutoServiceRegistration registration;
public void setApplicationContext(ApplicationContext context) throws BeansException {
if (registration != null){
registration.start();
}
}
}