您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
03 訂閱轉換服務地址未注冊請求失敗(在TCP/IP網絡體系結構中,DNS服務工作于哪一層)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-08 11:40:58【】4人已围观
简介ot;/></bbo:method></bbo:service><beanid="registryService"class="買粉絲
</bbo:service>
<bean id="registryService"class="買粉絲.alibaba.bbo.registry.simple.SimpleRegistryService" />
上面是暴露注冊中心的bbo服務配置,
定義了注冊中心服務的端口號
發布RegistryService服務, registry屬性是”N/A”代表不能獲取注冊中心,注冊中心服務的發布也是一個普通的bbo服務的發布,如果沒有配置這個屬性它也會尋找注冊中心,去通過注冊中心發布,因為自己本身就是注冊中心,直接對外發布服務,外部通過ip:port直接使用。
服務發布定義了回調接口, 這里定義了subscribe的第二個入參類暴露的回調服務供注冊中心回調,用來當注冊的服務狀態變更時反向推送到客戶端。
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,同時將Ov
很赞哦!(84)
相关文章
- 01 上海外國語大學國際本科學費一年多少錢(去美國留學讀本科,一年費用需要多少?)
- 01 中國國際貿易博覽會召開時間和地點(我國對外開放的三大展會包括什么)
- 01 中國國際經濟貿易仲裁委員會華南分會仲裁解決(買賣合同雙方約定:如有爭議,由中國國際經濟貿易仲裁委員會仲裁解決。)
- 01 中國國際貿易單一窗口標準版具有幾大功能(中國國際貿易單一窗口怎么保存賬號和密碼)
- 01 上海外國語大學出國留學人員培訓部TUFC留學預科項目網(什么是TUFC留學預科)
- 01 上海外國語大學博士招生目錄2023年(上海外國語大學2023年投檔線)
- 01 中國國投國際貿易廣州有限公司怎么樣(在湖南供電所的農電工工資怎么樣?)
- 01 上海外國語大學博士招生專業2023(上海外國語大學2023年投檔線)
- 01 上海外國語大學國際交流學院老師(上海外國語大學走出過哪些名人?)
- 01 上海外國語大學多少分錄取2022(2022年上海外國語大學外交部招生人數多少)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片
职业:程序员,设计师
现居:黑龙江省牡丹江宁安市
工作室:小组
Email:[email protected]
热门文章
站长推荐
01 中國國際貿易促進委員會河南省委員會待遇如何(中國國際貿易促進委員會河南省委員會普通科員的工資待遇如何?)
01 上海外國語大學復試名單公布(上海外國語大學研究生錄取名單)
01 中國國際服務貿易交易會2022(2022年中國國際服務貿易交易會各大展區正式開放,有哪些亮點值得關注?)
01 上海外國語大學國際商務專碩2023(上海外國語大學國際商務專碩怎么樣申請博士)
01 上海外國語大學哪個校區好看(上海外國語大學在哪個校區?)
01 上海外國語大學商學院分數線(上海外國語大學歷年錄取分數線)
01 中國國投國際貿易南京有限公司倉庫(誰能詳細告訴我2011年2.6~2.15的國際和國內新聞內容)
01 上海外國語大學國際部在哪個校區(上海外國語大學有幾個校區及校區地址 哪個校區最好)