Dubbo在XML中各配置標籤屬性含義
前言:
Dubbo是一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。
其核心部分包含:
1. 遠端通訊: 提供對多種基於長連線的NIO框架抽象封裝,包括多種執行緒模型,序列化,以及“請求-響應”模式的資訊交換方式。
2. 叢集容錯: 提供基於介面方法的透明遠端過程呼叫,包括多協議支援,以及軟負載均衡,失敗容錯,地址路由,動態配置等叢集支援。
3. 自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查詢服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。
其主要特性包含:
(1) 連通性:
-
註冊中心負責服務地址的註冊與查詢,相當於目錄服務,服務提供者和消費者只在啟動時與註冊中心互動,註冊中心不轉發請求,壓力較小
-
監控中心負責統計各服務呼叫次數,呼叫時間等,統計先在記憶體彙總後每分鐘一次傳送到監控中心伺服器,並以報表展示
-
服務提供者向註冊中心註冊其提供的服務,並彙報呼叫時間到監控中心,此時間不包含網路開銷
-
服務消費者向註冊中心獲取服務提供者地址列表,並根據負載演算法直接呼叫提供者,同時彙報呼叫時間到監控中心,此時間包含網路開銷
-
註冊中心,服務提供者,服務消費者三者之間均為長連線,監控中心除外
-
註冊中心通過長連線感知服務提供者的存在,服務提供者宕機,註冊中心將立即推送事件通知消費者
-
註冊中心和監控中心全部宕機,不影響已執行的提供者和消費者,消費者在本地快取了提供者列表
-
註冊中心和監控中心都是可選的,服務消費者可以直連服務提供者
(2) 健狀性:
-
監控中心宕掉不影響使用,只是丟失部分取樣資料
-
資料庫宕掉後,註冊中心仍能通過快取提供服務列表查詢,但不能註冊新服務
-
註冊中心對等叢集,任意一臺宕掉後,將自動切換到另一臺
-
註冊中心全部宕掉後,服務提供者和服務消費者仍能通過本地快取通訊
-
服務提供者無狀態,任意一臺宕掉後,不影響使用
-
服務提供者全部宕掉後,服務消費者應用將無法使用,並無限次重連等待服務提供者恢復
(3) 伸縮性:
-
註冊中心為對等叢集,可動態增加機器部署例項,所有客戶端將自動發現新的註冊中心
-
服務提供者無狀態,可動態增加機器部署例項,註冊中心將推送新的服務提供者資訊給消費者
想要使用一個服務框架,首先得對它的基礎內容做一定的瞭解,下面我們來了解一下dubbo在XML配置檔案中各標籤以及配置屬性的含義
<dubbo:application/> 應用配置資訊,不管是提供者還是消費者。XML解析所對應的bean為com.alibaba.dubbo.config.ApplicationConfig
可配置的屬性有:
標籤 |
屬性名稱 |
對應URL引數 |
型別 |
在此標籤中是否必填 |
預設值 |
此標籤具有什麼作用 |
對應的屬性名稱配置描述 |
兼 容 性( 供 參 考) |
name |
application |
string |
必填 |
服務治理 |
當前應用名稱,用於註冊中心計算應用間依賴關係,注意:消費者和提供者應用名不要一樣,此引數不是匹配條件,你當前專案叫什麼名字就填什麼,和提供者消費者角色無關,比如:kylin應用呼叫了morgan應用的服務,則kylin專案配成kylin,morgan專案配成morgan,可能kylin也提供其它服務給別人使用,但kylin專案永遠配成kylin,這樣註冊中心將顯示kylin依賴於morgan |
1.0.16以上版本 |
||
organization |
organization |
string |
可選 |
服務治理 |
組織名稱(BU或部門),用於註冊中心區分服務來源,此配置項建議不要使用autoconfig,直接寫死在配置中,比如china,intl,itu,crm,asc,dw,aliexpress等 |
2.0.0以上版本 |
||
organization |
organization |
string |
可選 |
服務治理 |
用於服務分層對應的架構。如,intl、china。不同的架構使用不同的分層。 |
2.0.7以上版本 |
||
environment |
environment |
string |
可選 |
服務治理 |
應用環境,如:develop/test/product,不同環境使用不同的預設值,以及作為只用於開發測試功能的限制條件 |
2.0.0以上版本 |
||
owner |
owner |
string |
可選 |
服務治理 |
應用負責人,用於服務治理,請填寫負責人公司郵箱字首 |
2.0.5以上版本 |
<dubbo:registry/>註冊中心配置資訊,可以配置多個,遞增配置條目即可。XML解析對應的bean為com.alibaba.dubbo.config.RegistryConfig
可配置的屬性有:
標籤 |
屬性名稱 |
對應URL引數 |
型別 |
在此標籤中是否必填 |
缺 省 值 |
此標籤具有什麼作用 |
對應的屬性名稱配置描述 |
兼 容 性( 供 參
考) |
id |
string |
可選 |
配置關聯 |
註冊中心引用BeanId,可以在<dubbo:service registry="">或<dubbo:reference registry="">中引用此ID |
1.0.16以上版本 |
|||
protocol |
<protocol> |
string |
可選 |
dubbo |
服務發現 |
注同中心地址協議,支援dubbo, http, local三種協議,分別表示,dubbo地址,http地址,本地註冊中心 |
2.0.0以上版本 |
|
port |
<port> |
int |
可選 |
9090 |
服務發現 |
註冊中心預設埠,當address沒有帶埠時使用此埠做為預設值 |
2.0.0以上版本 |
|
username |
<username> |
string |
可選 |
服務治理 |
登入註冊中心使用者名稱,如果註冊中心不需要驗證可不填 |
2.0.0以上版本 |
||
password |
<password> |
string |
可選 |
服務治理 |
登入註冊中心密碼,如果註冊中心不需要驗證可不填 |
2.0.0以上版本 |
||
transport |
registry. transporter |
string |
可選 |
netty |
效能調優 |
網路傳輸方式,可選mina,netty |
2.0.0以上版本 |
|
timeout |
registry.timeout |
int |
可選 |
5000 |
效能調優 |
註冊中心請求超時時間(毫秒) |
2.0.0以上版本 |
|
file |
registry.file |
string |
可選 |
服務治理 |
使用檔案快取註冊中心地址列表及服務提供者列表,應用重啟時將基於此檔案恢復,注意:兩個註冊中心不能使用同一檔案儲存 |
2.0.0以上版本 |
||
wait |
registry.wait |
int |
可選 |
0 |
效能調優 |
停止時等待通知完成時間(毫秒) |
2.0.0以上版本 |
|
check |
check |
boolean |
可選 |
true |
服務治理 |
註冊中心不存在時,是否報錯 |
2.0.0以上版本 |
|
register |
register |
boolean |
可選 |
true |
服務治理 |
是否向此註冊中心註冊服務,如果設為false,將只訂閱,不註冊 |
2.0.5以上版本 |
|
subscribe |
subscribe |
boolean |
可選 |
true |
服務治理 |
是否向此註冊中心訂閱服務,如果設為false,將只註冊,不訂閱 |
2.0.5以上版本 |
|
dynamic |
dynamic |
boolean |
可選 |
true |
服務治理 |
服務是否動態註冊,如果設為false,註冊後將顯示後disable狀態,需人工啟用,並且服務提供者停止時,也不會自動取消冊,需人工禁用。 |
2.0.5以上版本 |
<dubbo:protocol/>服務提供者所暴露的協議配置資訊,可配置多個此標籤,需要在<dubbo:service>中通過protocol屬性指定使用的協議。 XML解析對應的bean為com.alibaba.dubbo.config.ProtocolConfig
可配置的屬性有:
標籤 |
屬性 |
對應URL引數 |
型別 |
是否必填 |
預設值 |
作用 |
描述 |
相容性 |
id |
string |
可選 |
dubbo |
配置關聯 |
協議BeanId, proivder=""> 中引用此ID |
2.0.5以上版本 |
||
name |
<protocol> |
string |
必填 |
dubbo |
效能調優 |
協議名稱 |
2.0.5以上版本 |
|
port |
<port> |
int |
可選 |
dubbo協議預設埠為20880, rmi協議預設埠為1099, http和hessian協議預設埠為80 |
服務發現 |
服務埠 |
2.0.5以上版本 |
|
host |
<host> |
string |
可選 |
自動查詢本機IP |
服務發現 |
-服務主機名, 多網絡卡選擇 或指定VIP及 域名時使用, 為空則自動 查詢本機IP, -建議不要配置, 讓Dubbo 自動獲取本機IP |
2.0.5以上版本 |
|
threadpool |
threadpool |
string |
可選 |
fixed |
效能調優 |
執行緒池型別, 可選: fixed/cached |
2.0.5以上版本 |
|
threads |
threads |
int |
可選 |
100 |
效能調優 |
服務執行緒池 大小(固定大小) |
2.0.5以上版本 |
|
iothreads |
threads |
int |
可選 |
cpu個數+1 |
效能調優 |
io執行緒池大小 (固定大小) |
2.0.5以上版本 |
|
accepts |
accepts |
int |
可選 |
0 |
效能調優 |
服務提供方最 大可接受連線數 |
2.0.5以上版本 |
|
payload |
payload |
int |
可選 |
88388608(=8M) |
效能調優 |
請求及響應數 據包大小限制, 單位:位元組 |
2.0.5以上版本 |
|
codec |
codec |
string |
可選 |
dubbo |
效能調優 |
協議編碼方式 |
2.0.5以上版本 |
|
serialization |
serialization |
string |