新入職此公司, 發現公司使用的框架原來是傳說中的分布式的(原諒我以前在傳統公司工作,並遠離浪潮久矣), 使用過程中發現各服務之間使用 dubbo 進行通信. 特地總結下遇見的坑,為以后總結經驗. 歡迎大家指正.
1. com.alibaba.dubbo.rpc.RpcException: Forbid consumer 172.88.1.6 access service com.xxxx.open.trade.api.ElemeOpenTradeService from registry 192.168.101.24:2181 use dubbo version 2.5.3, Please check registry access list (whitelist/blacklist).
網上查了下, 遇見此類問題 , 總的來說就是一句話 服務端的接口 不讓訪問了,
原因1' 接口長時間無人訪問, 自動掛掉了, 個人沒遇見過,猜想是與服務端的配置有關系
2' 權限不匹配. 接口發布過程中 服務端定義了group="groupVIP", version="1.0" 等等屬性字段, 相應客戶端配置也需要定義group="groupVIP", version="1.0" --同服務端一致. 我就是因為group定義不匹配導致調用失敗 .
附上dubbo使用配置信息
服務端配置:
<dubbo:consumer check="false"/> <!-- 提供方應用信息,用於計算依賴關系 --> <dubbo:application name="open-api"/> <!-- 使用zookeeper注冊中心暴露服務地址 --> <!-- 到這里調用 --> <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" id="zookeeperClient"/> <!-- 用dubbo協議在33000端口暴露服務 --> <dubbo:protocol name="dubbo" port="33000" dispather="all" threadpool="cached" threads="5000" /> <!-- 聲明需要暴露的服務接口 --> <dubbo:service interface="com.wangshuyu.open.trade.api.OpenTradeService" ref="jdOpenTradeService" group="vip" version="1.0" registry="zookeeperClient" owner="wangsy" />
客戶端配置
<dubbo:reference id="skuShopStockService" interface="com.wangshuyu.product.service.api.SkuShopStockService" check="false" version="1.0" url="" registry="zookeeperClient" protocol="dubbo" timeout="15000"/>
