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