Python知識(shí)分享網(wǎng) - 專(zhuān)業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
深入理解Spring與Dubbo整合原理與源碼分析:從啟動(dòng)類(lèi)配置到注解解析 PDF 下載
發(fā)布于:2024-02-07 12:30:46
(假如點(diǎn)擊沒(méi)反應(yīng),多刷新兩次就OK!)

深入理解Spring與Dubbo整合原理與源碼分析:從啟動(dòng)類(lèi)配置到注解解析 PDF 下載  圖1

 

 

資料內(nèi)容:

服務(wù)導(dǎo)出?概原理(?試時(shí)可以這么答)

服務(wù)導(dǎo)出的??為ServiceBean中的export()?法,當(dāng)Spring啟動(dòng)完之后,通過(guò)接收Spring的
ContextRefreshedEvent事件來(lái)觸發(fā)export()?法的執(zhí)?。
?個(gè)ServiceBean對(duì)象就表示?個(gè)Dubbo服務(wù),ServiceBean對(duì)象中的參數(shù)就表示服務(wù)的參數(shù),?如
timeout,該對(duì)象的參數(shù)值來(lái)?@Service注解中所定義的。

 

服務(wù)導(dǎo)出主要得做兩件事情:
1. 根據(jù)服務(wù)的參數(shù)信息,啟動(dòng)對(duì)應(yīng)的?絡(luò)服務(wù)器(netty、tomcat、jetty等),?來(lái)接收?絡(luò)請(qǐng)求
2. 將服務(wù)的信息注冊(cè)到注冊(cè)中?

 

但是在做這兩件事情之前得先把服務(wù)的參數(shù)確定好,因?yàn)?個(gè)Dubbo服務(wù)的參數(shù),除開(kāi)可以在@Service注
解中去配置,還會(huì)繼承Dubbo服務(wù)所屬應(yīng)?(Application)上的配置,還可以在配置中?或JVM環(huán)境變量
中去配置某個(gè)服務(wù)的參數(shù),所以?先要做的是確定好當(dāng)前服務(wù)最終的(優(yōu)先級(jí)最?)的參數(shù)值。
確定好服務(wù)參數(shù)之后,就根據(jù)所配置的協(xié)議啟動(dòng)對(duì)應(yīng)的?絡(luò)服務(wù)器。在啟動(dòng)?絡(luò)服務(wù)器時(shí),并且在?絡(luò)服
務(wù)器接收請(qǐng)求的過(guò)程中,都可以從服務(wù)參數(shù)中獲取信息,?如最?連接數(shù),線程數(shù),socket超時(shí)時(shí)間等
等。

 

啟動(dòng)完?絡(luò)服務(wù)器之后,就將服務(wù)信息注冊(cè)到注冊(cè)中?。同時(shí)還有向注冊(cè)中?注冊(cè)監(jiān)聽(tīng)器,監(jiān)聽(tīng)Dubbo的
中的動(dòng)態(tài)配置信息變更。

 

服務(wù)概念的演化

1. DemoService接?表示?個(gè)服務(wù),此時(shí)的服務(wù)表示服務(wù)定義
2. DemoServiceImpl表示DemoService服務(wù)的具體實(shí)現(xiàn),此時(shí)的服務(wù)表示服務(wù)的具體實(shí)現(xiàn)
3. DemoService+group+version表示?個(gè)服務(wù),此時(shí)的服務(wù)增加了分組和版本概念
4. http://192.168.1.112:80/com.tuling.DemoService表示?個(gè)服務(wù),此時(shí)的服務(wù)增加了機(jī)器IP和Port,
表示遠(yuǎn)程機(jī)器可以訪問(wèn)這個(gè)URL來(lái)使?com.tuling.DemoService這個(gè)服務(wù)
5. http://192.168.1.112:80/com.tuling.DemoService?
timeout=3000&version=1.0.1&application=dubbo-demo-provider-application表示?個(gè)服務(wù),
此時(shí)的服務(wù)是擁有參數(shù)的,?如超時(shí)時(shí)間、版本號(hào)、所屬應(yīng)?
在dubbo中就是?的最后?種?式來(lái)表示服務(wù)的。
服務(wù)導(dǎo)出要做的?件事情:
1. 確定服務(wù)的參數(shù)
2. 確定服務(wù)?持的協(xié)議
3. 構(gòu)造服務(wù)最終的URL
4. 將服務(wù)URL注冊(cè)到注冊(cè)中?去
5. 根據(jù)服務(wù)?持的不同協(xié)議,啟動(dòng)不同的Server,?來(lái)接收和處理請(qǐng)求
6. 因?yàn)镈ubbo?持動(dòng)態(tài)配置服務(wù)參數(shù),所以服務(wù)導(dǎo)出時(shí)還需要綁定?個(gè)監(jiān)聽(tīng)器Listener來(lái)監(jiān)聽(tīng)服務(wù)的參數(shù)
是否有修改,如果發(fā)現(xiàn)有修改,則需要重新進(jìn)?導(dǎo)出