Spring Boot Dubbo applications.properties 配置清單
本文提綱
一、前言
二、applications.properties 配置清單
三、@Service 服務(wù)提供者常用配置
四、@Reference 服務(wù)消費(fèi)者常用配置
五、小結(jié)
運(yùn)行環(huán)境:JDK 7 或 8、Maven 3.0+
技術(shù)棧:SpringBoot 1.5+、、Dubbo 2.5+
一、前言
在泥瓦匠出的《Springboot 整合 Dubbo/ZooKeeper 詳解 SOA 案例》和《如何在 Spring Boot 使用 Dubbo Activate 擴(kuò)展點(diǎn)》兩篇文章后,很多人跟我聊 Spring Boot 整合 Dubbo 的細(xì)節(jié)問題。當(dāng)然最多的是配置問題,比如
Q:如果一個(gè)程序既提供服務(wù)又是消費(fèi)者怎么配置 scan package?
A(群友周波): 就是 com.xxx.provider 生產(chǎn)者,com.xxx.consumer 消費(fèi)者,那么 scan package 就設(shè)置到 com.xxx
Q:如何設(shè)置消費(fèi)者調(diào)用生產(chǎn)者的超時(shí)時(shí)間?
A:目前不能通過(guò) application.properties 定義。@Reference timeout
Q:consumer 怎么配置接入多個(gè) provider?
A:@Reference 可以指定不同的 register。register (注冊(cè)中心 like provider container)里面可以對(duì)應(yīng)多個(gè) provider
Q: @Service(version = "1.0.0") 這個(gè) 1.0.0 可以從 application.properties 配置文件中讀取嗎?可以區(qū)分不同的環(huán)境,可以統(tǒng)一升級(jí)管理
A:占時(shí)還沒有解決... 但是應(yīng)用環(huán)境,如:dev/test/run 可以使用下面的配置
spring.dubbo.application.environment
這里 Spring Boot 整合 Dubbo 的項(xiàng)目依賴了 spring-boot-starter-dubbo 工程,該項(xiàng)目地址是https://github.com/teaey/spring-boot-starter-dubbo。
二、applications.properties 配置清單
根據(jù) starter 工程源碼,可以看出 application.properties 對(duì)應(yīng)的 Dubbo 配置類 DubboProperties 。包括了掃描路徑、應(yīng)用配置類、注冊(cè)中心配置類和服務(wù)協(xié)議類。
具體常用配置下:
掃描包路徑:指的是 Dubbo 服務(wù)注解的服務(wù)包路徑
- ## Dubbo 配置
 - # 掃描包路徑
 - spring.dubbo.scan=org.spring.springboot.dubbo
 
應(yīng)用配置類:關(guān)于 Dubbo 應(yīng)用級(jí)別的配置
- ## Dubbo 應(yīng)用配置
 - // 應(yīng)用名稱
 - spring.dubbo.application.name=xxx
 - // 模塊版本
 - spring.dubbo.application.version=xxx
 - // 應(yīng)用負(fù)責(zé)人
 - spring.dubbo.application.owner=xxx
 - // 組織名(BU或部門)
 - spring.dubbo.application.organization=xxx
 - // 分層
 - spring.dubbo.application.architecture=xxx
 - // 環(huán)境,如:dev/test/run
 - spring.dubbo.application.environment=xxx
 - // Java代碼編譯器
 - spring.dubbo.application.compiler=xxx
 - // 日志輸出方式
 - spring.dubbo.application.logger=xxx
 - // 注冊(cè)中心 0
 - spring.dubbo.application.registries[0].address=zookeeper://127.0.0.1:2181=xxx
 - // 注冊(cè)中心 1
 - spring.dubbo.application.registries[1].address=zookeeper://127.0.0.1:2181=xxx
 - // 服務(wù)監(jiān)控
 - spring.dubbo.application.monitor.address=xxx
 
這里注意多個(gè)注冊(cè)中心的配置方式。下面介紹單個(gè)注冊(cè)中心的配置方式。
注冊(cè)中心配置類:常用 ZooKeeper 作為注冊(cè)中心進(jìn)行服務(wù)注冊(cè)。
- # Dubbo 注冊(cè)中心配置類
 - // 注冊(cè)中心地址
 - spring.dubbo.application.registries.address=xxx
 - // 注冊(cè)中心登錄用戶名
 - spring.dubbo.application.registries.username=xxx
 - // 注冊(cè)中心登錄密碼
 - spring.dubbo.application.registries.password=xxx
 - // 注冊(cè)中心缺省端口
 - spring.dubbo.application.registries.port=xxx
 - // 注冊(cè)中心協(xié)議
 - spring.dubbo.application.registries.protocol=xxx
 - // 客戶端實(shí)現(xiàn)
 - spring.dubbo.application.registries.transporter=xxx
 - spring.dubbo.application.registries.server=xxx
 - spring.dubbo.application.registries.client=xxx
 - spring.dubbo.application.registries.cluster=xxx
 - spring.dubbo.application.registries.group=xxx
 - spring.dubbo.application.registries.version=xxx
 - // 注冊(cè)中心請(qǐng)求超時(shí)時(shí)間(毫秒)
 - spring.dubbo.application.registries.timeout=xxx
 - // 注冊(cè)中心會(huì)話超時(shí)時(shí)間(毫秒)
 - spring.dubbo.application.registries.session=xxx
 - // 動(dòng)態(tài)注冊(cè)中心列表存儲(chǔ)文件
 - spring.dubbo.application.registries.file=xxx
 - // 停止時(shí)等候完成通知時(shí)間
 - spring.dubbo.application.registries.wait=xxx
 - // 啟動(dòng)時(shí)檢查注冊(cè)中心是否存在
 - spring.dubbo.application.registries.check=xxx
 - // 在該注冊(cè)中心上注冊(cè)是動(dòng)態(tài)的還是靜態(tài)的服務(wù)
 - spring.dubbo.application.registries.dynamic=xxx
 - // 在該注冊(cè)中心上服務(wù)是否暴露
 - spring.dubbo.application.registries.register=xxx
 - // 在該注冊(cè)中心上服務(wù)是否引用
 - spring.dubbo.application.registries.subscribe=xxx
 
服務(wù)協(xié)議配置類:
- ## Dubbo 服務(wù)協(xié)議配置
 - // 服務(wù)協(xié)議
 - spring.dubbo.application.protocol.name=xxx
 - // 服務(wù)IP地址(多網(wǎng)卡時(shí)使用)
 - spring.dubbo.application.protocol.host=xxx
 - // 服務(wù)端口
 - spring.dubbo.application.protocol.port=xxx
 - // 上下文路徑
 - spring.dubbo.application.protocol.contextpath=xxx
 - // 線程池類型
 - spring.dubbo.application.protocol.threadpool=xxx
 - // 線程池大小(固定大小)
 - spring.dubbo.application.protocol.threads=xxx
 - // IO線程池大小(固定大小)
 - spring.dubbo.application.protocol.iothreads=xxx
 - // 線程池隊(duì)列大小
 - spring.dubbo.application.protocol.queues=xxx
 - // 最大接收連接數(shù)
 - spring.dubbo.application.protocol.accepts=xxx
 - // 協(xié)議編碼
 - spring.dubbo.application.protocol.codec=xxx
 - // 序列化方式
 - spring.dubbo.application.protocol.serialization=xxx
 - // 字符集
 - spring.dubbo.application.protocol.charset=xxx
 - // 最大請(qǐng)求數(shù)據(jù)長(zhǎng)度
 - spring.dubbo.application.protocol.payload=xxx
 - // 緩存區(qū)大小
 - spring.dubbo.application.protocol.buffer=xxx
 - // 心跳間隔
 - spring.dubbo.application.protocol.heartbeat=xxx
 - // 訪問日志
 - spring.dubbo.application.protocol.accesslog=xxx
 - // 網(wǎng)絡(luò)傳輸方式
 - spring.dubbo.application.protocol.transporter=xxx
 - // 信息交換方式
 - spring.dubbo.application.protocol.exchanger=xxx
 - // 信息線程模型派發(fā)方式
 - spring.dubbo.application.protocol.dispatcher=xxx
 - // 對(duì)稱網(wǎng)絡(luò)組網(wǎng)方式
 - spring.dubbo.application.protocol.networker=xxx
 - // 服務(wù)器端實(shí)現(xiàn)
 - spring.dubbo.application.protocol.server=xxx
 - // 客戶端實(shí)現(xiàn)
 - spring.dubbo.application.protocol.client=xxx
 - // 支持的telnet命令,多個(gè)命令用逗號(hào)分隔
 - spring.dubbo.application.protocol.telnet=xxx
 - // 命令行提示符
 - spring.dubbo.application.protocol.prompt=xxx
 - // status檢查
 - spring.dubbo.application.protocol.status=xxx
 - // 是否注冊(cè)
 - spring.dubbo.application.protocol.status=xxx
 
三、@Service 服務(wù)提供者常用配置
常用 @Service 配置的如下
- version 版本
 - group 分組
 - provider 提供者
 - protocol 服務(wù)協(xié)議
 - monitor 服務(wù)監(jiān)控
 - registry 服務(wù)注冊(cè)
 - …
 
四、@Reference 服務(wù)消費(fèi)者常用配置
常用 @Reference 配置的如下
- version 版本
 - group 分組
 - timeout 消費(fèi)者調(diào)用提供者的超時(shí)時(shí)間
 - consumer 服務(wù)消費(fèi)者
 - monitor 服務(wù)監(jiān)控
 - registry 服務(wù)注冊(cè)
 
五、小結(jié)
主要介紹了 Spring Boot Dubbo 整合中的細(xì)節(jié)問題大集合。
【本文為51CTO專欄作者“李強(qiáng)強(qiáng)”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)51CTO聯(lián)系作者獲取授權(quán)】
















 
 
 













 
 
 
 