Dubbo無(wú)法訪問(wèn)遠(yuǎn)程Zookeeper已注冊(cè)服務(wù)的問(wèn)題解決方案
背景
使用Dubbo的時(shí)候發(fā)現(xiàn)當(dāng)Zookeeper、Dubbo-admin、生產(chǎn)者和消費(fèi)者都在內(nèi)網(wǎng)中的時(shí)候,生產(chǎn)者的生產(chǎn)和消費(fèi)是沒(méi)有問(wèn)題的,但是當(dāng)它Zookeeper、生產(chǎn)者放到遠(yuǎn)程服務(wù)器上,然后消費(fèi)者在訪問(wèn)消費(fèi)就出現(xiàn)了無(wú)法找到找到服務(wù)的問(wèn)題。
內(nèi)網(wǎng)環(huán)境使用情況

上述的圖是在同一個(gè)內(nèi)網(wǎng)中,使用的代碼如下:
1、生產(chǎn)者配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="Jhd_Security" owner="allen.xu" organization="MyJhd"/>
<dubbo:registry address="zookeeper://172.16.61.101:2181" timeout="500000" group="JhdGroup" id="myjhd_id"/>
<!-- 暴露出去的接口-->
<bean id="dubboDemoFacade" class="com.dubbo.demo.facade.impl.DubboDemoFacade"/>
<dubbo:service
ref="dubboDemoFacade"
interface="com.dubbo.demo.facade.IDubboDemoFacade"
version="1.0.0"
cluster="failfast"
executes="10"
timeout="500000"
registry="myjhd_id">
</dubbo:service>
</beans>
2、消費(fèi)者配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="consumer-of-sayHello-app" owner="allen.xu" organization="MyJhd"/>
<dubbo:registry address="zookeeper://172.16.61.101:2181" timeout="500000" group="JhdGroup" id="myjhd_id"/>
<dubbo:reference id="dubboDemoFacade"
interface="com.dubbo.demo.facade.IDubboDemoFacade"
version="1.0.0"
cluster="failfast"
timeout="500000"
registry="myjhd_id"/>
</beans>
3、演示效果


可以看到生產(chǎn)者和消費(fèi)者的ip是一樣的,既是在本地上是可以運(yùn)行的。
多網(wǎng)環(huán)境使用情況

如果根據(jù)相關(guān)的Zookeeper修改上述中的IP地址,其他不用修改的情況下,使用上邊的代碼,則會(huì)出現(xiàn)生產(chǎn)者可以注冊(cè)到注冊(cè)中心,但是消費(fèi)者無(wú)法消費(fèi)到該服務(wù)。
在Dubbo-admin上可以看到生產(chǎn)者信息,但是消費(fèi)者確無(wú)法使用該服務(wù),這是因?yàn)榉阑饓Φ膯?wèn)題。

可以看到上邊的端口是20880,這是dubbo默認(rèn)的,消費(fèi)者在消費(fèi)該服務(wù)的時(shí)候也會(huì)通過(guò)該端口去使用服務(wù),因此修改防火墻名單。
在 /etc/sysconfig/iptables中添加下邊內(nèi)容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20880 -j ACCEPT
表示開(kāi)啟20880端口

然后:service iptables restart 重啟防火墻即可。
另外的一種方式是:我們可以指定生產(chǎn)者消費(fèi)者的端口,可以通過(guò)
<dubbo:protocol name="dubbo" port="8889"/>
這樣的話,同樣開(kāi)啟8889端口即可。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
springboot使用redis對(duì)單個(gè)對(duì)象進(jìn)行自動(dòng)緩存更新刪除的實(shí)現(xiàn)
本文主要介紹了springboot使用redis對(duì)單個(gè)對(duì)象進(jìn)行自動(dòng)緩存更新刪除的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
解決Swagger2返回map復(fù)雜結(jié)構(gòu)不能解析的問(wèn)題
這篇文章主要介紹了解決Swagger2返回map復(fù)雜結(jié)構(gòu)不能解析的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
java連接Oracle數(shù)據(jù)庫(kù)的方法解析
本文主要對(duì)java連接Oracle數(shù)據(jù)庫(kù)方法進(jìn)行步驟解析,具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12
springcloud + mybatis + seate集成示例
本文主要介紹了springcloud + mybatis + seate集成示例,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
解決idea web項(xiàng)目中out目錄更新不同步問(wèn)題
這篇文章給大家介紹了idea web項(xiàng)目中out(maven中是target)目錄更新不同步,導(dǎo)致訪問(wèn)404的問(wèn)題,本文給大家分享解決方法,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-09-09
SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式實(shí)例
最近在項(xiàng)目開(kāi)發(fā)中,需要為一個(gè)使用MySQL數(shù)據(jù)庫(kù)的SpringBoot項(xiàng)目,新添加一個(gè)PLSQL數(shù)據(jù)庫(kù)數(shù)據(jù)源,下面這篇文章主要給大家介紹了關(guān)于SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式,需要的朋友可以參考下2022-04-04
Quartz實(shí)現(xiàn)JAVA定時(shí)任務(wù)的動(dòng)態(tài)配置的方法
這篇文章主要介紹了Quartz實(shí)現(xiàn)JAVA定時(shí)任務(wù)的動(dòng)態(tài)配置的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07

