1. 程式人生 > >Dubbo在XML中各配置標籤屬性含義

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