日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dubbo+zookeeper与提供者、消费者之间端口通信问题(No provider available for the service)

發布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dubbo+zookeeper与提供者、消费者之间端口通信问题(No provider available for the service) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、異常信息分析

Failed to check the status of the service com.sihai.service.ItemService. No provider available for the service com.sihai.service.ItemService from the url zookeeper://192.168.131.133:2181/com.alibaba.dubbo.registry.RegistryService?application=sihai-manager-web&dubbo=2.5.3&interface=com.sihai.service.ItemService&methods=getItemById&pid=18216&revision=0.0.1-SNAPSHOT&side=consumer&timestamp=1519567537377 to the consumer 192.168.131.1 use dubbo version 2.5.3at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:420)at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:300)at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:138)at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:65)at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1585)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)at javax.servlet.GenericServlet.init(GenericServlet.java:160)at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)at java.util.concurrent.FutureTask.run(FutureTask.java:262)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:745)

異常分析:

上面的異常,Caused by的前半部分有的說bean創建失敗,有的說屬性自動裝配失敗,但后半部分都比較統一,都是:No provider available for the service ……,服務沒有可以使用的提供者,完整意思就是:對于消費者(consumer-ip)而言,在zookeeper注冊中心(zookeeper-url)沒有可用的提供者(No provider available for the service com.test.rpc.OrgRPC),消費者訪問提供者的時候失敗了;

因為消費者沒有變,變化的是向注冊中心注冊的提供者由開發服務器變更為測試服務器,同時由于之前處理過因為【No route to host】引起的異常,所以想到可能是提供者端口不通造成的,然后從消費者服務器telnet 提供者ip 20880端口,果然如此。

網上解決辦法整合:

1、將提供者服務器的20880端口開放給消費者服務器ip,重新啟動消費者服務器,正常啟動。
2、可能是你沒有在spring-service的配置文件中沒有提供服務。
3、dubbo配置的時候需要一個注冊中心 這個注冊中心主要起的作用為服務做配置 每當一個服務生產者去注冊服務時候 會把這個生產者的ip跟端口號丟上去注冊中心 而服務的消費方就會從注冊中心拿到服務的ip跟端口號 放在本地文件中 底層調用netty訪問服務
昨天跟同事一塊調程序 他開服務生產者 我開服務調用者 后邊就出Failed to check the status of the service . No provider available for the service 這個問題 然后就去dubboadmin上邊看 服務正常啟動 但是服務提供者的ip是192.168.83.1 是同事搞虛擬機的時候弄虛擬網卡的地址 所以我這邊消費方拿到他的虛擬網卡ip才訪問不到服務 于是乎 禁用虛擬網卡 問題解決

**我的解決方法:**主要的報錯信息No provider available for the service com.sihai.service.ItemService from the url zookeeper://192.168.131.133:2181/com.alibaba.dubbo.registry.RegistryService?application=sihai-manager-web&dubbo=2.5.3&interface=com.sihai.service.ItemService&methods=getItemById&pid=18216&revision=0.0.1-SNAPSHOT&side=consumer&timestamp=1519567537377 to the consumer 192.168.131.1 use dubbo version 2.5.3這個問題的報錯是沒有服務的提供者,因為我的項目是service層給controller層提供服務,所以service
層是服務的提供者,因為報錯是沒有服務的提供者,所以問題就在service的dubbo的服務有沒有正常的提供,最后發現自己的spring的web.xml的文件忘記加入加載spring容器的配置了,導致不能正常的發布服務!所以下次出現問題的時候,多看看異常信息,這個問題導致我花了幾個小時,結果網上的解答都沒有解決我的問題,最后還是自己看報錯解決了!

##二、dubbo+zookeeper與提供者provider、消費者consumer之間通信過程

先說一下整個系統框架的基本構造:

  • zookeeper作為注冊中心,使用單獨服務器,占用2181端口

  • dubbo-admin作為監控中心,與zookeeper使用相同服務器,tomcat部署占用8080端口

  • provider作為提供者,使用單獨服務器,tomcat部署占用8080端口,使用dubbo協議開放20880端口

  • consumer作為消費者,使用單獨服務器,tomcat部署占用8080端口

再看上面的異常,雖然解決了,是不是有人和我一樣有一些問題想不通:

  • provider服務器端口是8080,為什么telnet測試以及解決方案中開放的端口卻是20880?

  • 要說dubbo協議開放了20880端口,那8080端口應該也開放啊?

  • zookeeper、provider、consumer之間端口開放和屏蔽情況到底是怎么回事?

帶著這些問題,進行了相關的驗證,最終得出如下結論,先看圖,再解釋:

##1)、用dubbo協議在20880端口暴露服務

在提供者的dubbo配置文件中,一般都配置了<dubbo:protocol name="dubbo" port="20880"/>,表明用dubbo協議在20880端口暴露服務,當然如果你不配置,dubbo默認使用20880端口暴露服務,所有消費者都是通過20880端口進行,對于消費者而言,提供者服務器8080端口是透明的,也就是說提供者服務器端口號可以任意改變,服務也不會有任何影響,消費者無需關心。

所以上面的異常解決辦法是開放20880端口給消費者,而不是8080端口給消費者。

從監控中心可以看到如圖:

除了在指定端口上暴露服務之外,還可以在指定ip上暴露服務,配置如下:

<dubbo:protocol name="dubbo" host="10.1.22.2" port="20880" />

##2)、端口開放情況

zookeeper作為注冊中心,provider注冊服務、consumer訂閱服務、dubbo-admin監控服務,所以zookeeper注冊中心的2181端口需要向provider、consumer、dubbo-admin開放;

一般情況下,dubbo-admin監控中心與zookeeper注冊中心部署在相同的服務器上,zookeeper可以不考慮端口開放給dubbo-admin的情況;

consumer訂閱服務,即拿到了provider在20880端口暴露的服務,當consumer請求服務時,直接從consumer跳到provider,而不是consumer到zookeeper再到provider,所以provider的20880無需開放給zookeeper;

同理,provider響應服務時,也是直接從provider到consumer,而不是provider到zookeeper再到consumer,所以consumer的8080無需開放給zookeeper;

zookeeper注冊中心是完全被動的。

##三、總結一下:

  • zookeeper的2181開放給provider、consumer、dubbo-admin

  • provider的20880開放給所有consumer,但8080服務器端口可以完全屏蔽

  • consumer的8080開放給所有provider

  • dubbo-admin的8080開放給管理員用戶,便于通過瀏覽器監控注冊中心服務的情況

  • 總結:注冊中心只負責服務注冊和目錄發布,安全授權,實際的服務訪問仍然是兩個組件之間的點對點連接完成,這種方式下整個架構下獲取更高的性能,同時服務管理平臺也不容易成為大并發服務訪問下的單點瓶頸

**注意:**當出現錯誤時,還是多看看后臺的異常信息,說不定就解決了,可以省去很多不必要的麻煩,浪費了很多時間!

參考:http://blog.csdn.net/javaloveiphone/article/details/52290292

點個贊,看一看,好習慣!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收錄,這是我花了 3 個月總結的一線大廠 Java 面試總結,本人已拿大廠 offer。
另外,原創文章首發在我的個人博客:blog.ouyangsihai.cn,歡迎訪問。

最后,再分享我歷時三個月總結的 Java 面試 + Java 后端技術學習指南,這是本人這幾年及春招的總結,已經拿到了大廠 offer,整理成了一本電子書,拿去不謝,目錄如下:

現在免費分享大家,在下面我的公眾號 程序員的技術圈子 回復 面試 即可獲取。

有收獲?希望老鐵們來個三連擊,給更多的人看到這篇文章

1、老鐵們,關注我的原創微信公眾號「程序員的技術圈子」,專注于 Java、數據結構和算法、微服務、中間件等技術分享,保證你看完有所收獲。

2、給俺點個贊唄,可以讓更多的人看到這篇文章,順便激勵下我繼續寫作,嘻嘻。

3、另外,原創文章首發在我的個人博客:blog.ouyangsihai.cn,歡迎訪問。

點贊是對我最大的鼓勵
↓↓↓↓↓↓

總結

以上是生活随笔為你收集整理的dubbo+zookeeper与提供者、消费者之间端口通信问题(No provider available for the service)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品少妇v888av | xxxx日本免费| 中国极品少妇xxxx | 少妇第一次交换又紧又爽 | 日本亚洲在线 | 国产精品高潮呻吟视频 | 艳妇乳肉豪妇荡乳av无码福利 | 国产又爽又黄游戏 | 国产精品传媒一区二区 | 黑人精品一区二区三区 | 国产成人精品白浆久久69 | 成人国产毛片 | 久草国产精品 | 欧美激情成人在线 | 黄色在线免费观看视频 | 天天操天天插天天射 | 日韩av三级在线观看 | 欧美涩涩视频 | 国产美女一级视频 | 97在线观看免费视频 | 奶罩不戴乳罩邻居hd播放 | 金鱼妻日剧免费观看完整版全集 | 男同激情视频 | 老女人黄色片 | 五月天婷婷伊人 | 九色视频在线观看 | 污视频在线观看网址 | 希岛婚前侵犯中文字幕在线 | 欧美日韩一区二区中文字幕 | av免费影院 | 国产无码精品在线观看 | 色婷婷在线观看视频 | 免费观看黄色av | 日本理论片 | 男女午夜影院 | 欧美一级夜夜爽 | 少妇高潮一区二区三区99欧美 | 99婷婷 | 久久最新网址 | 无码人妻精品一区二区三区9厂 | 亚洲男人天堂 | 日本高清视频一区二区三区 | 青青草视频免费 | 日韩在线黄色 | 亚洲免费区 | 欧美三级久久 | 午夜av导航 | 亚洲精品国产精品国自产在线 | 国产免费黄色小视频 | 日本精品在线看 | 成人久久精品人妻一区二区三区 | 天天天色 | 麻豆传媒在线看 | 国产视频二区三区 | 国产 xxxx | 华人永久免费 | 香蕉视频97 | 亚欧日韩 | 五月天色站 | 亚洲女人初尝黑人巨大 | 色呦呦在线免费观看 | 精品成人一区二区三区 | 免费观看成年人网站 | a级片在线免费观看 | 国产乱真实合集 | 一区二区三区中文字幕在线观看 | 中文在线免费观看 | 色多多入口 | 蜜桃视频久久一区免费观看入口 | 不卡一区在线观看 | 99久久久无码国产精品免费麻豆 | 啪啪av导航 | 亚洲精品久久久久久国产精华液 | 亚洲一区二区三区四区在线播放 | 日日夜夜天天干 | 中文字幕第八页 | 色偷偷av男人的天堂 | 国产深夜福利在线 | 丰满岳跪趴高撅肥臀尤物在线观看 | 国产精品zjzjzj在线观看 | 自拍偷拍导航 | 求欧美精品网址 | 免费午夜网站 | 欧美在线观看a | 日韩高清不卡在线 | 91一二区 | 成人免费观看cn | 美女视频一区二区三区 | 东北少妇av| 日本成人免费 | 久久嗨 | 成人免费毛片嘿嘿连载 | 91深夜视频 | 国产91精品一区二区麻豆亚洲 | 午夜手机福利 | 小情侣高清国产在线播放 | 成年人激情视频 | 精品亚洲国产成人av制服丝袜 | 福利小视频在线观看 |