dubbo學習筆記---dubbo開發實戰
dubbo學習筆記—dubbo開發實戰
1.介面協定—api模組
2.dubbo的配置介紹
- 註解: 基於註解可以快速的將程式配置,無需多餘的配置資訊,包含提供者和消費者。但是這種方
式有一個弊端,有些時候配置資訊並不是特別好找,無法快速定位。 - XML: 一般這種方式我們會和Spring做結合,相關的Service和Reference均使用Spring整合後的。
通過這樣的方式可以很方便的通過幾個檔案進行管理整個叢集配置。可以快速定位也可以快速更
改。 - 基於程式碼方式: 基於程式碼方式的對上述配置進行配置。這個使用的比較少,這種方式更適用於自己
公司對其框架與Dubbo做深度整合時才會使用。
3.dubbo的管理控制檯
- 主要包含:服務管理 、 路由規則、動態配置、服務降級、訪問控制、權重調整、負載均衡等管理功能
- 如我們在開發時,需要知道Zookeeper註冊中心都註冊了哪些服務,有哪些消費者來消費這些服務。我們可以通過部署一個管理中心來實現。
- 其實管理中心就是一個web應用,原來是war(2.6版本以前)包需要部署到tomcat即可。現在是jar包可以直接通過java命令執行。
4.dubbo的配置說明:每個配置項都對應一個類
4-1.dubbo:application
對應 org.apache.dubbo.config.ApplicationConfig, 代表當前應用的資訊
name
: 當前應用程式的名稱,在dubbo-admin中我們也可以看到,這個代表這個應用名稱。我們在真正時是時也會根據這個引數來進行聚合應用請求。owner
: 當前應用程式的負責人,可以通過這個負責人找到其相關的應用列表,用於快速定位到責任人。qosEnable
: 是否啟動QoS 預設trueqosPort
: 啟動QoS繫結的埠 預設22222qosAcceptForeignIp
: 是否允許遠端訪問 預設是false
4-2.dubbo:registry
org.apache.dubbo.config.RegistryConfig, 代表該模組所使用的註冊中心。一個模組中的服務可以將其註冊到多個註冊中心上,也可以註冊到一個上。後面再service和reference也會引入這個註冊中心。
id
: 噹噹前服務中provider或者consumer中存在多個註冊中心時,則使用需要增加該配置。在一
些公司,會通過業務線的不同選擇不同的註冊中心,所以一般都會配置該值。address
: 當前註冊中心的訪問地址。protocol
: 當前註冊中心所使用的協議是什麼。也可以直接在 address 中寫入,比如使用zookeeper
,就可以寫成zookeeper://xx.xx.xx.xx:2181
timeout
: 當與註冊中心不再同一個機房時,大多會把該引數延長。
4-3.dubbo:protocol
org.apache.dubbo.config.ProtocolConfig, 指定服務在進行資料傳輸所使用的協議。
id
: 在大公司,可能因為各個部門技術棧不同,所以可能會選擇使用不同的協議進行互動。這裡
在多個協議使用時,需要指定。name
: 指定協議名稱。預設使用 dubbo 。連結
:http://dubbo.apache.org/zh-cn/docs/user/perf-test.html
4-4.dubbo:service
org.apache.dubbo.config.ServiceConfig, 用於指定當前需要對外暴露的服務資訊。和 dubbo:reference 大致相同。
interface
: 指定當前需要進行對外暴露的介面是什麼。ref
: 具體實現物件的引用,一般我們在生產級別都是使用Spring去進行Bean託管的,所以這裡面一般也指的是Spring
中的BeanId
。version
: 對外暴露的版本號。不同的版本號,消費者在消費的時候只會根據固定的版本號進行消費。
4-5.dubbo:reference
org.apache.dubbo.config.ReferenceConfig, 消費者的配置,這裡只做簡單說明。
id
: 指定該Bean在註冊到Spring中的id。interface
: 服務介面名version
: 指定當前服務版本,與服務提供者的版本一致。registry
: 指定所具體使用的註冊中心地址。這裡面也就是使用上面在 dubbo:registry 中所宣告的id。
4-6.dubbo:method
org.apache.dubbo.config.MethodConfig, 用於在制定的 dubbo:service 或者 dubbo:reference 中的更具體一個層級,指定具體方法級別在進行RPC操作時候的配置,可以理解為對這上面層級中的配置針對於具體方法的特殊處理。
name
: 指定方法名稱,用於對這個方法名稱的RPC呼叫進行特殊配置。async
: 是否非同步 預設false
5.dubbo:service和dubbo:reference詳解
這兩個在dubbo中是我們最為常用的部分,其中有一些我們必然會接觸到的屬性。並且這裡會講到一些設定上的使用方案。
mock
: 用於在方法呼叫出現錯誤時,當做服務降級來統一對外返回結果,後面我們也會對這個方法做更多的介紹。timeout
: 用於指定當前方法或者介面中所有方法的超時時間。我們一般都會根據提供者的時長來具體規定。比如我們在進行第三方服務依賴時可能會對介面的時長做放寬,防止第三方服務不穩定導致服務受損。check
: 用於在啟動時,檢查生產者是否有該服務。我們一般都會將這個值設定為false,不讓其進行檢查。因為如果出現模組之間迴圈引用的話,那麼則可能會出現相互依賴,都進行check的話,那麼這兩個服務永遠也啟動不起來。retries
: 用於指定當前服務在執行時出現錯誤或者超時時的重試機制。- 注意提供者是否有冪等,否則可能出現資料一致性問題
- 注意提供者是否有類似快取機制,如出現大面積錯誤時,可能因為不停重試導致雪崩
executes
: 用於在提供者做配置,來確保最大的並行度。- 可能導致叢集功能無法充分利用或者堵塞
- 但是也可以啟動部分對應用的保護功能
- 可以不做配置,結合後面的熔斷限流使用
相關文章
- Dubbo學習筆記筆記
- Dubbo 學習筆記筆記
- Dubbo 學習筆記(五) 開發環境常用技巧筆記開發環境
- Dubbo學習筆記(二) Dubbo 控制後臺的安裝筆記
- Dubbo學習筆記(一) 入門筆記
- Spring boot + Zookeeper + Dubbo學習筆記Springboot筆記
- Dubbo筆記(一)筆記
- dubbo學習
- Dubbo | Dubbo快速上手筆記 - 環境與配置筆記
- Dubbo學習筆記(一)基本概念與簡單使用筆記
- dubbo專案實戰
- 聊聊Dubbo - Dubbo可擴充套件機制實戰套件
- dubbo實戰之四:管理控制檯dubbo-admin
- Dubbo學習筆記(三) RPC核心原理和執行緒模型筆記RPC執行緒模型
- Dubbo學習筆記(四)叢集容錯與負載均衡筆記負載
- dubbo-go 實戰(一)Go
- SpringBoot-13 Dubbo實戰Spring Boot
- Dubbo框架學習總結框架
- dubbo框架設計學習框架
- Dubbo官網實戰使用技巧
- 《Python3 網路爬蟲開發實戰》—學習筆記Python爬蟲筆記
- DDD實戰課(實戰篇)--學習筆記筆記
- Spring Cloud Alibaba實戰(八) - Dubbo + NacosSpringCloud
- 《Netty實戰》-學習筆記1Netty筆記
- 開課啦 dubbo-go 微服務升級實戰Go微服務
- zookeeper學習04 zookeeper收尾+dubbo前瞻
- Dubbo 開篇
- Dubbo使用Apollo作為配置中心實戰
- Dubbo原始碼學習之-通過原始碼看看dubbo對netty的使用原始碼Netty
- 《Flask Web開發:基於Python的Web應用開發實戰》學習筆記(二)FlaskWebPython筆記
- Android 開發學習筆記Android筆記
- Dubbo 入門系列之基於 Dubbo API 開發微服務應用API微服務
- SpringCloud Alibaba實戰(12:引入Dubbo實現RPC呼叫)SpringGCCloudRPC
- Dubbo原始碼學習之-SPI介紹原始碼
- Dubbo原始碼學習--Rmi協議(八)原始碼協議
- Dubbo 2.7.1 踩坑記
- go實戰web入門學習筆記GoWeb筆記
- 實測Tengine開源的Dubbo功能