場景:在項目A構(gòu)成的一個集群中野来,其中的一臺機器通過dubbo的方式調(diào)用集群的dubbo接口
問題:發(fā)現(xiàn)發(fā)起調(diào)用的機器調(diào)用到的服務(wù)一直都是本身,沒有通過dubbo把請求負載到集群
解決:通過調(diào)試踪旷,在dubbo reference實例的代理類中曼氛,看到了invoke的一些信息豁辉,其中的地址顯示類似:injvm:127.0.0.1......,這里有兩個關(guān)鍵信息搪锣,一個是injvm秋忙,可以用來百度一下彩掐,第二是本地ip127.0.0.1构舟,說明沒有獲取到機器的內(nèi)網(wǎng)ip,直接從本地走了; 最后通過網(wǎng)上的說明堵幽,和dubbo的配置提示狗超,加入了injvm="false"的參數(shù),保證調(diào)用負載到集群內(nèi)的一臺上
配置如下:
<dubbo:reference id="apiInvoker" interface="cn.xxx.dubbo.ApiRemoterInvoker"
retries="0"
injvm="false"
registry="dubboRegistry"
connections="20"
check="false"
timeout="2000"/>