SpringCloud 通過(guò) tomcat war 包形式啟動(dòng), 無(wú)法注冊(cè) consul 服務(wù)問(wèn)題

記一次開(kāi)發(fā)過(guò)程中遇到的 consultomcat中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();
        }
    }
}

參考鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容