摘要: 原創出處 www.bysocket.com 「泥瓦匠BYSocket 」歡迎轉載,保留摘要,謝謝!java
『 與其糾結,不如行動學習。Innovate ,And out execute ! 』git
本文提綱
1、前言
2、applications.properties 配置清單
3、@Service 服務提供者經常使用配置
4、@Reference 服務消費者經常使用配置
5、小結github
運行環境:JDK 7 或 八、Maven 3.0+
技術棧:SpringBoot 1.5+、、Dubbo 2.5+spring
在泥瓦匠出的
Springboot 整合 Dubbo/ZooKeeper 詳解 SOA 案例shell
Spring Boot 中如何使用 Dubbo Activate 擴展點緩存
兩篇文章後,不少人跟我聊 Spring Boot 整合 Dubbo 的細節問題。固然最多的是配置問題,好比
Q:若是一個程序既提供服務又是消費者怎麼配置 scan package?
A(羣友周波): 就是 com.xxx.provider 生產者,com.xxx.consumer 消費者,那麼 scan package 就設置到 com.xxxspringboot
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.environmentsession
Spring Boot 整合 Dubbo 的項目依賴了 spring-boot-starter-dubbo 工程,該項目地址是 https://github.com/teaey/spring-boot-starter-dubbo。 感謝做者~
根據 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 配置的以下
1
2
3
4
5
6
7
|
version 版本
group 分組
provider 提供者
protocol 服務協議
monitor 服務監控
registry 服務註冊
…
|
經常使用 @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 —