1003
技術社區[雲棲]
Spring Boot Dubbo applications.properties 配置清單
摘要: 原創出處 www.bysocket.com 「泥瓦匠BYSocket 」歡迎轉載,保留摘要,謝謝!
『 與其糾結,不如行動學習。Innovate ,And out execute ! 』
本文提綱
一、前言
二、applications.properties 配置清單
三、@Service 服務提供者常用配置
四、@Reference 服務消費者常用配置
五、小結
?
運行環境:JDK 7 或 8、Maven 3.0+
技術棧:SpringBoot 1.5+、、Dubbo 2.5+
一、前言
在泥瓦匠出的
Springboot 整合 Dubbo/ZooKeeper 詳解 SOA 案例
Spring Boot 中如何使用 Dubbo Activate 擴展點
兩篇文章後,很多人跟我聊 Spring Boot 整合 Dubbo 的細節問題。當然最多的是配置問題,比如
Q:如果一個程序既提供服務又是消費者怎麼配置 scan package?
A(群友周波): 就是 com.xxx.provider 生產者,com.xxx.consumer 消費者,那麼 scan package 就設置到 com.xxx
?
Q:如何設置消費者調用生產者的超時時間?
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 配置文件中讀取嗎?可以區分不同的環境,可以統一升級管理
A:占時還沒有解決… 但是應用環境,如:dev/test/run 可以使用下麵的配置,在 application.properties 定義
spring.dubbo.application.environment
Spring Boot 整合 Dubbo 的項目依賴了 spring-boot-starter-dubbo 工程,該項目地址是 https://github.com/teaey/spring-boot-starter-dubbo。 感謝作者~
二、applications.properties 配置清單
根據 starter 工程源碼,可以看出 application.properties 對應的 Dubbo 配置類 DubboProperties 。
1
2
3
4
5
6
7
8
9
10
11
|
@ConfigurationProperties (prefix = "spring.dubbo" )
public class DubboProperties {
?
???? private String scan;
?
???? private ApplicationConfig application;
?
???? private RegistryConfig registry;
?
???? private ProtocolConfig protocol;
} |
包括了掃描路徑、應用配置類、注冊中心配置類和服務協議類
?
所以具體常用配置下
掃描包路徑:指的是 Dubbo 服務注解的服務包路徑
1
2
3
|
## Dubbo 配置 # 掃描包路徑 spring.dubbo.scan=org.spring.springboot.dubbo |
?
應用配置類:關於 Dubbo 應用級別的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
## 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 ?
# 環境,如: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
?
# 服務監控 spring.dubbo.application.monitor.address=xxx |
這裏注意多個注冊中心的配置方式。下麵介紹單個注冊中心的配置方式。
?
注冊中心配置類:常用 ZooKeeper 作為注冊中心進行服務注冊。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
## 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 ?
# 注冊中心協議 spring.dubbo.application.registries.protocol=xxx ?
# 客戶端實現 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 ?
# 動態注冊中心列表存儲文件 spring.dubbo.application.registries. file =xxx
?
# 停止時等候完成通知時間 spring.dubbo.application.registries.wait=xxx ?
# 啟動時檢查注冊中心是否存在 spring.dubbo.application.registries.check=xxx ?
# 在該注冊中心上注冊是動態的還是靜態的服務 spring.dubbo.application.registries.dynamic=xxx ?
# 在該注冊中心上服務是否暴露 spring.dubbo.application.registries.register=xxx ?
# 在該注冊中心上服務是否引用 spring.dubbo.application.registries.subscribe=xxx |
?
服務協議配置類:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
## Dubbo 服務協議配置 ?
?
# 服務協議 spring.dubbo.application.protocol.name=xxx ?
# 服務IP地址(多網卡時使用) 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 ?
# 最大接收連接數 spring.dubbo.application.protocol.accepts=xxx ?
# 協議編碼 spring.dubbo.application.protocol.codec=xxx ?
# 序列化方式 spring.dubbo.application.protocol.serialization=xxx ?
# 字符集 spring.dubbo.application.protocol.charset=xxx ?
# 最大請求數據長度 spring.dubbo.application.protocol.payload=xxx ?
# 緩存區大小 spring.dubbo.application.protocol.buffer=xxx ?
# 心跳間隔 spring.dubbo.application.protocol.heartbeat=xxx ?
# 訪問日誌 spring.dubbo.application.protocol.accesslog=xxx ?
# 網絡傳輸方式 spring.dubbo.application.protocol.transporter=xxx ?
# 信息交換方式 spring.dubbo.application.protocol.exchanger=xxx ?
# 信息線程模型派發方式 spring.dubbo.application.protocol.dispatcher=xxx ?
# 對稱網絡組網方式 spring.dubbo.application.protocol.networker=xxx ?
# 服務器端實現 spring.dubbo.application.protocol.server=xxx ?
# 客戶端實現 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 配置的如下
1
2
3
4
5
6
7
|
version 版本 group 分組 provider 提供者 protocol 服務協議 monitor 服務監控 registry 服務注冊 … |
?
四、@Reference 服務消費者常用配置
常用 @Reference 配置的如下
1
2
3
4
5
6
|
version 版本 group 分組 timeout 消費者調用提供者的超時時間 consumer 服務消費者 monitor 服務監控 registry 服務注冊 |
?
五、小結
主要介紹了 Spring Boot Dubbo 整合中的細節問題大集合。
推薦:《Springboot 整合 Dubbo/ZooKeeper 詳解 SOA 案例》
?
歡迎掃一掃我的公眾號關注 ― 及時得到博客訂閱哦!
― https://www.bysocket.com/ ―
― https://github.com/JeffLi1993 ―
最後更新:2017-05-09 17:01:23