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 案例

 

歡迎掃一掃我的公衆號關注 — 及時得到博客訂閱哦!
— http://www.bysocket.com/ —
— https://github.com/JeffLi1993 —

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章