@@ -29,22 +29,6 @@ spring:
2929 min-idle : 0
3030 max-idle : 8
3131 max-wait : -1
32- # rabbitmq 公共配置
33- rabbitmq :
34- publisher-returns : true
35- publisher-confirm-type : correlated
36- listener :
37- simple :
38- concurrency : 1
39- max-concurrency : 8
40- acknowledge-mode : manual
41- retry :
42- enabled : true
43- max-attempts : 5
44- max-interval : 10000
45- initial-interval : 2000
46- multiplier : 2
47- prefetch : 5
4832 # 数据源公共配置
4933 datasource :
5034 druid :
@@ -158,13 +142,62 @@ spring:
158142 - 192.168.0.
159143 - 192.168.238.
160144 - 10.
145+ # rabbitmq
146+ multirabbitmq :
147+ enabled : true
148+ # 指定默认的连接名称(必要)
149+ default-connection : default
150+ connections :
151+ # 自定义的 connectionName
152+ default :
153+ host : localhost
154+ port : 5672
155+ username : rabbitmq
156+ password : rabbitmq
157+ virtual-host : uni_dev
158+ publisher-returns : true
159+ publisher-confirm-type : correlated
160+ listener :
161+ simple :
162+ concurrency : 1
163+ max-concurrency : 8
164+ acknowledge-mode : manual
165+ retry :
166+ enabled : true
167+ max-attempts : 5
168+ max-interval : 10000
169+ initial-interval : 2000
170+ multiplier : 2
171+ prefetch : 5
172+ test :
173+ host : localhost
174+ port : 5672
175+ username : rabbitmq
176+ password : rabbitmq
177+ virtual-host : uni_dev_test
178+ publisher-returns : true
179+ publisher-confirm-type : correlated
180+ listener :
181+ simple :
182+ concurrency : 1
183+ max-concurrency : 8
184+ acknowledge-mode : manual
161185
162186# 关闭 swagger 认证
163187knife4j :
164188 basic :
165189 enable : false
166190` ` `
167191
192+ > 通过 spring-multirabbit 实现 RabbitMQ 的多数据源,使用 spring.multirabbitmq 配置多个连接
193+ >
194+ > 在使用 @RabbitListener 监听队列时,指定 containerFactory 为 connectionName
195+ >
196+ > 在注入 RabbitTemplate 发送消息时,发送前使用 SimpleResourceHolder.bind 将 connectionFactory 绑定到 connectName,发送完毕后
197+ > unbind
198+ >
199+ > 注意:publisher-returns 可能不生效,已在 RabbitCallback 中通过 rabbitTemplate.setMandatory(true) 强制开启
200+
168201### framework 服务配置
169202
170203uni-boot-framework-dev.yml(DEV 环境)
@@ -179,12 +212,6 @@ spring:
179212 port : 6379
180213 password : ENC(jIiKGruIMgDkKx5wj2gJRCROqPutkTvZ)
181214 database : 0
182- rabbitmq :
183- host : localhost
184- port : 5672
185- username : rabbitmq
186- password : rabbitmq
187- virtual-host : /uni_dev
188215 datasource :
189216 type : com.alibaba.druid.pool.DruidDataSource
190217 dynamic :
@@ -205,6 +232,10 @@ uni-boot:
205232 permit-all-list : /common/download**
206233 framework :
207234 file-base-path : D:/uniboot/file/temp/
235+ mq :
236+ tx-msg :
237+ # 关闭重试
238+ enable-retry : false
208239` ` `
209240
210241### example 服务配置
@@ -221,12 +252,6 @@ spring:
221252 port : 6379
222253 password : ENC(jIiKGruIMgDkKx5wj2gJRCROqPutkTvZ)
223254 database : 0
224- rabbitmq :
225- host : localhost
226- port : 5672
227- username : rabbitmq
228- password : rabbitmq
229- virtual-host : /uni_dev
230255 datasource :
231256 type : com.alibaba.druid.pool.DruidDataSource
232257 dynamic :
@@ -247,43 +272,64 @@ uni-boot:
247272 permit-all-list :
248273 mq :
249274 tx-msg :
275+ # 开启重试
250276 enable-retry : true
277+ # rabbitmq 自动创建
251278 rabbit :
252279 enable : true
253- exchanges :
254- - name : uni.delay
255- type : topic
256- delayed : true
257- - name : uni.topic
258- type : topic
259- queues :
260- - name : example-delay-queue-0
261- - name : example-delay-queue-1
262- random-suffix : true
263- auto-delete : true
264- - name : example-biz-queue-0
265- dl-exchange : uni.topic
266- dl-routing-key : example-biz-queue-0-dl-rk
267- - name : example-biz-queue-0-dl
268- - name : example-biz-queue-1
269- bindings :
270- - bind-name : example-delay-queue-0
271- exchange-name : uni.delay
272- routing-key : example-delay-queue-0-rk
273- - bind-name : example-delay-queue-1
274- exchange-name : uni.delay
275- routing-key : example-delay-queue-1-rk
276- - bind-name : example-biz-queue-0
277- exchange-name : uni.topic
278- routing-key : example-biz-queue-0-rk
279- - bind-name : example-biz-queue-0-dl
280- exchange-name : uni.topic
281- routing-key : example-biz-queue-0-dl-rk
282- - bind-name : example-biz-queue-1
283- exchange-name : uni.topic
284- routing-key : example-biz-queue-1-rk
280+ declares :
281+ default :
282+ exchanges :
283+ - name : default.delay
284+ type : topic
285+ delayed : true
286+ - name : default.topic
287+ type : topic
288+ queues :
289+ - name : example-delay-queue-0
290+ - name : example-delay-queue-1
291+ random-suffix : true
292+ auto-delete : true
293+ - name : example-biz-queue-0
294+ dl-exchange : default.topic
295+ dl-routing-key : example-biz-queue-0-dl-rk
296+ - name : example-biz-queue-0-dl
297+ - name : example-biz-queue-1
298+ bindings :
299+ - bind-name : example-delay-queue-0
300+ exchange-name : default.delay
301+ routing-key : example-delay-queue-0-rk
302+ - bind-name : example-delay-queue-1
303+ exchange-name : default.delay
304+ routing-key : example-delay-queue-1-rk
305+ - bind-name : example-biz-queue-0
306+ exchange-name : default.topic
307+ routing-key : example-biz-queue-0-rk
308+ - bind-name : example-biz-queue-0-dl
309+ exchange-name : default.topic
310+ routing-key : example-biz-queue-0-dl-rk
311+ - bind-name : example-biz-queue-1
312+ exchange-name : default.topic
313+ routing-key : example-biz-queue-1-rk
314+ test :
315+ exchanges :
316+ - name : test.topic
317+ type : topic
318+ queues :
319+ - name : test-biz-queue-0
320+ bindings :
321+ - bind-name : test-biz-queue-0
322+ exchange-name : test.topic
323+ routing-key : test-biz-queue-0-rk
285324` ` `
286325
326+ > 通过 uni-boot-mq.rabbit.declares 指定一个 RabbitMQ ConnectionName 需要声明的交换机、队列以及绑定关系,
327+ > 这会自动注入 bean 容器,bean 名称格式是 connectionName_declareName
328+ >
329+ > 注意:当指定 random-suffix 为 true 时,会创建随机的队列名,若要在 @RabbitListener 中指定 queue 名称,可使用 SpringEL 表达式,如
330+ > queues = "#{@'default_example-delay-queue-1'.name}",其中 default 是 connectionName,example-delay-queue-1 是队列 bean
331+ > name
332+
287333### gateway 服务配置
288334
289335uni-boot-gateway-dev.yml(DEV 环境)
0 commit comments