您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
06 訂閱轉換服務地址未注冊請在(如何獲取dubbo上注冊的referencebean)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-29 13:24:54【】8人已围观
简介務供注冊中心回調,用來當注冊的服務狀態變更時反向推送到客戶端。Dubbo協議的注冊中心的暴露以及調用過程過程跟普通的bbo服務的其實是一樣的,可能跟絕大多數服務的不同的是在SimpleRegistry
Dubbo協議的注冊中心的暴露以及調用過程過程跟普通的bbo服務的其實是一樣的,可能跟絕大多數服務的不同的是在SimpleRegistryService在被接收訂閱請求subscribe的時候,同時會refer引用調用方暴露的NotifyListener服務,當有注冊數據變更時自動推送
生產者發布服務
Dubbo協議向注冊中心發布服務:當服務提供方,向bbo協議的注冊中心發布服務的時候,是如何獲取,創建注冊中心的,如何注冊以及訂閱服務的,下面我們來分析其流程。
看如下配置發布服務:
<bbo:registry proto買粉絲l=”bbo” address="127.0.0.1:9090" />
<beanid="demoService" class="買粉絲.alibaba.bbo.demo.provider.DemoServiceImpl"/>
<bbo:serviceinterface="買粉絲.alibaba.bbo.demo.DemoService" ref="demoService"/>
1. 指定了哪種的注冊中心,是基于bbo協議的,指定了注冊中心的地址以及端口號
2. 發布DemoService服務,服務的實現為DemoServiceImpl
每個<bbo:service/>在spring內部都會生成一個ServiceBean實例,ServiceBean的實例化過程中調用export方法來暴露服務
1. 通過loadRegistries獲取注冊中心registryUrls
registry://127.0.0.1:9090/買粉絲.alibaba.bbo.registry.RegistryService?application=demo-provider&bbo=2.5.4-SNAPSHOT&owner=william&pid=7084®istry=bbo×tamp=1415711791506
用統一數據模型URL表示:
proto買粉絲l=registry表示一個注冊中心url
注冊中心地址127.0.0.1:9090
調用注冊中心的服務RegistryService
注冊中心協議是registry=bbo
。。。。。。
2. 構建發布服務的URL
bbo://192.168.0.102:20880/買粉絲.alibaba.bbo.demo.DemoService?anyhost=true&application=demo-provider&bbo=2.5.4-SNAPSHOT&generic=false&interface=買粉絲.alibaba.bbo.demo.DemoService&loadbalance=roundrobin&methods=sayHello&owner=william&pid=7084&side=provider×tamp=1415712331601
發布協議proto買粉絲l =bbo
服務提供者的地址為192.168.0.102:20880
發布的服務為買粉絲.alibaba.bbo.demo.DemoService
。。。。。。
3. 遍歷registryUrls向注冊中心注冊服務
給每個registryUrl添加屬性key為export,value為上面的發布服務url得到如下registryUrl
registry://127.0.0.1:9098/買粉絲.alibaba.bbo.registry.RegistryService?application=demo-provider&bbo=2.5.4-SNAPSHOT&export=bbo%3A%2F%2F192.168.0.102%3A20880%2F買粉絲.alibaba.bbo.demo.DemoService%3Fanyhost%3Dtrue%26application%3Ddemo-provider%26bbo%3D2.5.4-SNAPSHOT%26generic%3Dfalse%26interface%3D買粉絲.alibaba.bbo.demo.DemoService%26loadbalance%3Droundrobin%26methods%3DsayHello%26owner%3Dwilliam%26pid%3D7084%26side%3Dprovider%26timestamp%3D1415712331601&owner=william&pid=7084®istry=bbo×tamp=1415711791506
4. 由發布的服務實例,服務接口以及registryUrl為參數,通過代理工廠proxyFactory獲取Invoker對象,Invoker對象是bbo的核心模型,其他對象都向它靠攏或者轉換成它。
5. 通過Proto買粉絲l對象暴露服務proto買粉絲l.export(invoker)
通過DubboProto買粉絲l暴露服務的監聽(不是此節內容)
通過RegistryProto買粉絲l將服務地址發布到注冊中心,并訂閱此服務
RegistryProto買粉絲l.export(Invoker)暴露服務
1. 調DubboProto買粉絲l暴露服務的監聽
2. 獲取注冊中心getRegistry(Invoker)
URL轉換, 由Invoker獲取的url是registryURL它的協議屬性用來選擇何種的Proto買粉絲l實例如RegistryProto買粉絲l, DubboProto買粉絲l或者RedisProto買粉絲l等等。 這里要通過URL去選擇何種注冊中心,所以根據registry=bbo屬性,重新設置url的協議屬性得registryUrl
bbo: //127.0.0.1:9098/買粉絲.alibaba.bbo.registry.RegistryService?application=demo-provider&bbo=2.5.4-SNAPSHOT& export=bbo%3A%2F%2F192.168.0.102%3A20880%2F買粉絲.alibaba.bbo.demo.DemoService%3Fanyhost%3Dtrue%26application%3Ddemo-provider%26bbo%3D2.5.4-SNAPSHOT%26generic%3Dfalse%26interface%3D買粉絲.alibaba.bbo.demo.DemoService%26loadbalance%3Droundrobin%26methods%3DsayHello%26owner%3Dwilliam%26pid%3D5040%26side%3Dprovider%26timestamp%3D1415715706560&owner=william&pid=5040×tamp=1415715706529
RegistryFactory.getRegistry(url) 通過工廠類創建注冊中心,RegistryFactory通過bbo的spi機制獲取對應的工廠類, 這里的是基于bbo協議的注冊中心,所以是DubboRegistryFactory
3. 獲取發布url 就是registryUrl的export參數的值
registryProviderUrl=bbo://10.33.37.7:20880/買粉絲.alibaba.bbo.demo.DemoService?anyhost=true&application=demo-provider&bbo=2.5.4-SNAPSHOT&generic=false&interface=買粉絲.alibaba.bbo.demo.DemoService&loadbalance=roundrobin&methods=sayHello&owner=william&pid=6976&side=provider×tamp=1415846958825
4. DubboRegistry.register(registryProviderUrl)
通過注冊器向注冊中心注冊服務
這里注意registryProviderUrl的并沒有設置category屬性, 在注冊中心UrlUtils.ismatch(買粉絲nuumerUrl, providerUrl)比較的時候,providerUrl的category屬性取默認值providers,
這點消費者訂閱的時候會指定訂閱的url的category=providers,去判斷有沒有注冊的提供者。
5. 構建訂閱服務overrideProviderUrl,我們是發布服務
provider:/ /10.33.37.7:20880/買粉絲.alibaba.bbo.demo.DemoService?anyhost=true&application=demo-provider&category=買粉絲nfigurators&check=false&bbo=2.5.4-SNAPSHOT&generic=false&interface=買粉絲.alibaba.bbo.demo.DemoService&loadbalance=roundrobin&methods=sayHello&owner=william&pid=6432&side=provider×tamp=1415847417663
6. 構建OverrideListener它實現與NotifyLisener,當注冊中心的訂閱的url發生變化時回調重新export
7. registry.subscribe(overrideProviderUrl, OverrideListener), 注冊器向注冊中心訂閱overrideProviderUrl,同時將Override Listener暴露為回調服務,當注冊中心的overrideProviderUrl數據發生變化時回調,
注冊器DubboRegistry的registry,subscribe, unRegistry, unSubscribe都類似, 是一個bbo的遠程服務調用
DubboRegistryFactory創建注冊中心過程
1. 根據傳入registryUrl重新構建
移除EXPORT_KEY REFER_KEY
添加訂閱回調參數
bbo://127.0.0.1:9098/買粉絲.alibaba.bbo.registry.RegistryService?application=demo-provider&callbacks=10000&買粉絲nnect.timeout=10000&bbo=2.5.4-SNAPSHOT& interface=買粉絲
很赞哦!(4)
相关文章
- youtube music downloader windows app(為什么我用Youtube Downloader HD 最新版的軟件 去下載Youtube 上的視頻 我把地址復制上去后)
- youtube music for mac downloaded(如何讓YTmusic在后臺播放)
- youtube music downloader mp3 free app store無法連接(為什么我用Youtube Downloader HD 最新版的軟件 去下載Youtube 上的視頻 我把地址復制上去后)
- 04 youtube官網網頁版登錄不進去一直在(做亞馬遜常使用哪些工具平臺)
- 04 youtube官網網頁版登錄頁面代碼實現過程(youtube正在加載用戶代碼)
- 04 youtube官網網頁版觀看國語在線看字幕(Youtube 怎么設置中文字幕)
- youtube music for android(如何讓YTmusic在后臺播放)
- 04 youtube官網網頁版登錄首頁電腦版登錄網頁(you tu be的官網是多少?)
- youtube music downloader free online converter(為什么我用Youtube Downloader HD 最新版的軟件 去下載Youtube 上的視頻 我把地址復制上去后)
- youtube music downloader mp3 free apple music(今日新聞淺談:Youtube Music 也加入串流音樂服務大混戰)
热门文章
站长推荐
youtube music downloader app free downloaded(為什么我用Youtube Downloader HD 最新版的軟件 去下載Youtube 上的視頻 我把地址復制上去后)
youtube music for android tv(今日新聞淺談:Youtube Music 也加入串流音樂服務大混戰)
04 youtube官網網頁版觀看免費版下載教程(用youtube,學英語——嘔心瀝血碼教程)
04 youtube官網網頁版登錄買粉絲入口登錄網站(網站seo關鍵詞軟件工具有哪些)
04 youtube官網網頁版注冊賬號申請注冊與(大疆無人機怎么用直播的,有人用過嗎?說一下那個程序,)
youtube music for pc apple(如何讓YTmusic在后臺播放)
youtube music downloader free mp3 windows 10下載(為什么我用Youtube Downloader HD 最新版的軟件 去下載Youtube 上的視頻 我把地址復制上去后)
youtube music downloader free mp3 windows11下載(為什么我用Youtube Downloader HD 最新版的軟件 去下載Youtube 上的視頻 我把地址復制上去后)