MqConfig.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. package com.tzy.config;
  2. import com.tzy.common.constant.MqConstans;
  3. import org.springframework.amqp.core.*;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. @Configuration
  9. public class MqConfig {
  10. /**
  11. * 队列
  12. * durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
  13. * exclusive:默认也是false,只能被当前创建的连接使用,而且当连接关闭后队列即被删除。此参考优先级高于durable
  14. * autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
  15. * return new Queue("test",true,true,false);
  16. * 一般设置一下队列的持久化就好,其余两个就是默认false
  17. * @return
  18. */
  19. @Bean
  20. public Queue TestDirectQueue() {
  21. return new Queue(MqConstans.TEST_QUEUE,true);
  22. }
  23. @Bean
  24. public Binding bindingDirect() {
  25. return BindingBuilder.bind(TestDirectQueue()).to(TestDirectExchange()).with("test");
  26. }
  27. //@Bean
  28. //public Queue TestDirectQueue2() {
  29. // return new Queue(MqConstans.TEST_QUEUE+2,true);
  30. //}
  31. /**
  32. * 绑定 将队列和交换机绑定, 并设置用于匹配键:test
  33. * 星号(*) :只能匹配一个单词
  34. * 井号(#):可以匹配0个或多个单词
  35. * @return
  36. */
  37. //@Bean
  38. //public Binding bindingDirect() {
  39. // return BindingBuilder.bind(TestDirectQueue()).to(TestTopicExchange()).with("test");
  40. //}
  41. //@Bean
  42. //public Binding bindingDirect2() {
  43. // return BindingBuilder.bind(TestDirectQueue2()).to(TestTopicExchange()).with("test.#");
  44. //}
  45. /**
  46. * Topic交换机
  47. * return new DirectExchange("test_exchange",true,true);
  48. * @return
  49. */
  50. //@Bean
  51. //public TopicExchange TestTopicExchange() {
  52. // return new TopicExchange("exchange_test2");
  53. //}
  54. /**
  55. * Direct交换机
  56. * return new DirectExchange("test_exchange",true,true);
  57. * @return
  58. */
  59. @Bean
  60. public DirectExchange TestDirectExchange() {
  61. return new DirectExchange("exchange_test",true,false);
  62. }
  63. @Bean
  64. public Queue OrderPayCallBackQueue() {
  65. return new Queue(MqConstans.QUEUE_ORDER_PAY_CALLBACK,true);
  66. }
  67. @Bean
  68. public Queue PrePayCallBackQueue() {
  69. return new Queue(MqConstans.QUEUE_PRE_PAY_CALLBACK,true);
  70. }
  71. @Bean
  72. public Queue orderSuccessQueue() {
  73. return new Queue(MqConstans.QUEUE_ORDER_SUCCESS,true);
  74. }
  75. @Bean
  76. public Queue userBehavior() {
  77. return new Queue(MqConstans.QUEUE_USER_BEHAVIOR,true);
  78. }
  79. @Bean
  80. public Queue userPoint() {
  81. return new Queue(MqConstans.QUEUE_USER_POINT,true);
  82. }
  83. @Bean
  84. public Queue OrderRefundQueue() {
  85. return new Queue(MqConstans.QUEUE_ORDER_REFUND,true);
  86. }
  87. @Bean
  88. public Queue groupFullQueue() {
  89. return new Queue(MqConstans.QUEUE_GROUP_FULL,true);
  90. }
  91. @Bean
  92. public Queue groupSortQueue() {
  93. return new Queue(MqConstans.QUEUE_GROUP_SORT_UPDATE,true);
  94. }
  95. @Bean
  96. public DirectExchange OrderPayCallBackExchange() {
  97. return new DirectExchange(MqConstans.EXCHANGE_ORDER_PAY_CALLBACK,true,false);
  98. }
  99. @Bean
  100. public DirectExchange PrePayCallBackExchange() {
  101. return new DirectExchange(MqConstans.EXCHANGE_PRE_PAY_CALLBACK,true,false);
  102. }
  103. @Bean
  104. public DirectExchange orderSuccessExchange() {
  105. return new DirectExchange(MqConstans.EXCHANGE_ORDER_SUCCESS,true,false);
  106. }
  107. @Bean
  108. public DirectExchange userBehaviorExchange() {
  109. return new DirectExchange(MqConstans.EXCHANGE_USER_BEHAVIOR,true,false);
  110. }
  111. @Bean
  112. public DirectExchange userPointExchange() {
  113. return new DirectExchange(MqConstans.EXCHANGE_USER_POINT,true,false);
  114. }
  115. @Bean
  116. public DirectExchange OrderRefundExchange() {
  117. return new DirectExchange(MqConstans.EXCHANGE_ORDER_REFUND,true,false);
  118. }
  119. @Bean
  120. public DirectExchange groupFullExchange() {
  121. return new DirectExchange(MqConstans.EXCHANGE_GROUP_FULL,true,false);
  122. }
  123. @Bean
  124. public DirectExchange groupSortExchange() {
  125. return new DirectExchange(MqConstans.EXCHANGE_GROUP_SORT_UPDATE,true,false);
  126. }
  127. @Bean
  128. public Queue OrderExpiredQueue() {
  129. return new Queue(MqConstans.QUEUE_ORDER_EXPIRED,true);
  130. }
  131. @Bean
  132. public CustomExchange delayExchange() {
  133. Map<String, Object> args = new HashMap<>(1);
  134. args.put("x-delayed-type", "direct");
  135. return new CustomExchange(MqConstans.EXCHANGE_DELAYED_ORDER_EXPIRED, "x-delayed-message", true, false, args);
  136. }
  137. @Bean
  138. public Binding bindingDelayExchange()
  139. {
  140. return BindingBuilder.bind(OrderExpiredQueue()).to(delayExchange()).with(MqConstans.ROUTING_KEY_ORDER_EXPIRED).noargs();
  141. }
  142. @Bean
  143. public Binding bindingOrderPayCallBackDirect() {
  144. return BindingBuilder.bind(OrderPayCallBackQueue()).to(OrderPayCallBackExchange()).with(MqConstans.ROUTING_KEY_CALLBACK);
  145. }
  146. @Bean
  147. public Binding bindingPrePayCallBackDirect() {
  148. return BindingBuilder.bind(PrePayCallBackQueue()).to(PrePayCallBackExchange()).with(MqConstans.ROUTING_KEY_PRE_CALLBACK);
  149. }
  150. @Bean
  151. public Binding bindingOrderSuccessDirect() {
  152. return BindingBuilder.bind(orderSuccessQueue()).to(orderSuccessExchange()).with(MqConstans.ROUTING_KEY_ORDER_SUCCESS);
  153. }
  154. @Bean
  155. public Binding bindingUserBehaviorDirect() {
  156. return BindingBuilder.bind(userBehavior()).to(userBehaviorExchange()).with(MqConstans.ROUTING_KEY_USER_BEHAVIOR);
  157. }
  158. @Bean
  159. public Binding bindingUserPointDirect() {
  160. return BindingBuilder.bind(userPoint()).to(userPointExchange()).with(MqConstans.ROUTING_KEY_USER_POINT);
  161. }
  162. @Bean
  163. public Binding bindingOrderRefundDirect() {
  164. return BindingBuilder.bind(OrderRefundQueue()).to(OrderRefundExchange()).with(MqConstans.ROUTING_KEY_ORDER_REFUND);
  165. }
  166. @Bean
  167. public Binding bindingGroupFullDirect() {
  168. return BindingBuilder.bind(groupFullQueue()).to(groupFullExchange()).with(MqConstans.ROUTING_KEY_GROUP_FULL);
  169. }
  170. @Bean
  171. public Binding bindingGroupSortDirect() {
  172. return BindingBuilder.bind(groupSortQueue()).to(groupSortExchange()).with(MqConstans.ROUTING_KEY_GROUP_SORT_UPDATE);
  173. }
  174. @Bean
  175. public Queue groupAllocateGoodsQueue() {
  176. return new Queue(MqConstans.QUEUE_GROUP_ALLOCATE_GOODS,true);
  177. }
  178. @Bean
  179. public DirectExchange groupAllocateGoodsExchange() {
  180. return new DirectExchange(MqConstans.EXCHANGE_GROUP_ALLOCATE_GOODS,true,false);
  181. }
  182. @Bean
  183. public Binding bindingGroupAllocateGoodsDirect() {
  184. return BindingBuilder.bind(groupAllocateGoodsQueue()).to(groupAllocateGoodsExchange()).with(MqConstans.ROUTING_KEY_GROUP_ALLOCATE_GOODS);
  185. }
  186. @Bean
  187. public Queue groupGoodsEsQueue() {
  188. return new Queue(MqConstans.QUEUE_GROUP_GOODS_SYNC_ES,true);
  189. }
  190. @Bean
  191. public DirectExchange groupGoodsEsExchange() {
  192. return new DirectExchange(MqConstans.EXCHANGE_GROUP_GOODS_SYNC_ES,true,false);
  193. }
  194. @Bean
  195. public Binding bindingGroupGoodsEsDirect() {
  196. return BindingBuilder.bind(groupGoodsEsQueue()).to(groupGoodsEsExchange()).with(MqConstans.ROUTING_KEY_GROUP_GOODS_SYNC_ES);
  197. }
  198. @Bean
  199. public Queue syncUserWinCardQueue() {
  200. return new Queue(MqConstans.QUEUE_SYNC_USER_WIN_CARD,true);
  201. }
  202. @Bean
  203. public DirectExchange syncUserWinExchange() {
  204. return new DirectExchange(MqConstans.EXCHANGE_SYNC_USER_WIN_CARD,true,false);
  205. }
  206. @Bean
  207. public Binding bindingSyncUserWinDirect() {
  208. return BindingBuilder.bind(syncUserWinCardQueue()).to(syncUserWinExchange()).with(MqConstans.ROUTING_KEY_SYNC_USER_WIN_CARD);
  209. }
  210. @Bean
  211. public Queue orderAftAllocateQueue() {
  212. return new Queue(MqConstans.QUEUE_ORDER_AFT_ALLOCATE, true);
  213. }
  214. @Bean
  215. public DirectExchange orderAftAllocateExchange() {
  216. return new DirectExchange(MqConstans.EXCHANGE_ORDER_AFT_ALLOCATE, true, false);
  217. }
  218. @Bean
  219. public Binding bindingOrderAftAllocateDirect() {
  220. return BindingBuilder.bind(orderAftAllocateQueue()).to(orderAftAllocateExchange()).with(MqConstans.ROUTING_KEY_ORDER_AFT_ALLOCATE);
  221. }
  222. @Bean
  223. public Queue initUserMemberQueue() {
  224. return new Queue(MqConstans.QUEUE_INIT_USER_USER_MEMBER, true);
  225. }
  226. @Bean
  227. public DirectExchange initUserMemberExchange() {
  228. return new DirectExchange(MqConstans.EXCHANGE_INIT_USER_MEMBER, true, false);
  229. }
  230. @Bean
  231. public Binding bindingInitUserMemberDirect() {
  232. return BindingBuilder.bind(initUserMemberQueue()).to(initUserMemberExchange()).with(MqConstans.ROUTING_KEY_INIT_USER_MEMBER);
  233. }
  234. @Bean
  235. public Queue userPointJson() {
  236. return new Queue(MqConstans.QUEUE_USER_POINT_JSON,true);
  237. }
  238. @Bean
  239. public Binding bindingUserPointJsonDirect() {
  240. return BindingBuilder.bind(userPointJson()).to(userPointExchange()).with(MqConstans.ROUTING_KEY_USER_POINT_JSON);
  241. }
  242. @Bean
  243. public Queue appLiveConfigQueue() {
  244. return new Queue(MqConstans.QUEUE_APP_LIVE_CONFIG,true);
  245. }
  246. @Bean
  247. public CustomExchange appLiveConfigDelayExchange() {
  248. Map<String, Object> args = new HashMap<>(1);
  249. args.put("x-delayed-type", "direct");
  250. return new CustomExchange(MqConstans.EXCHANGE_DELAYED_APP_LIVE_CONFIG, "x-delayed-message", true, false, args);
  251. }
  252. @Bean
  253. public Binding bindingAppLiveConfigDelayExchange()
  254. {
  255. return BindingBuilder.bind(appLiveConfigQueue()).to(appLiveConfigDelayExchange()).with(MqConstans.ROUTING_KEY_APP_LIVE_CONFIG).noargs();
  256. }
  257. @Bean
  258. public Queue autoAddActQueue() {
  259. return new Queue(MqConstans.QUEUE_LUCKY_ACT_AUTO_ADD, true);
  260. }
  261. @Bean
  262. public DirectExchange autoAddActExchange() {
  263. return new DirectExchange(MqConstans.EXCHANGE_LUCKY_ACT_AUTO_ADD, true, false);
  264. }
  265. @Bean
  266. public Binding bindingAutoAddActDirect() {
  267. return BindingBuilder.bind(autoAddActQueue()).to(autoAddActExchange()).with(MqConstans.ROUTING_KEY_LUCKY_ACT_AUTO_ADD);
  268. }
  269. @Bean
  270. public Queue userListActQueue() {
  271. return new Queue(MqConstans.QUEUE_USER_LIST_ACT, true);
  272. }
  273. @Bean
  274. public DirectExchange userListActExchange() {
  275. return new DirectExchange(MqConstans.EXCHANGE_USER_LIST_ACT, true, false);
  276. }
  277. @Bean
  278. public Binding bindingUserListActQueueDirect() {
  279. return BindingBuilder.bind(userListActQueue()).to(userListActExchange()).with(MqConstans.ROUTING_KEY_USER_LIST_ACT);
  280. }
  281. @Bean
  282. public Queue merchantNotifyQueue() {
  283. return new Queue(MqConstans.QUEUE_MERCHANT_NOTIFY, true);
  284. }
  285. @Bean
  286. public Queue communityNotifyQueue() {
  287. return new Queue(MqConstans.QUEUE_COMMUNITY_NOTIFY, true);
  288. }
  289. @Bean
  290. public Queue actQueue() {
  291. return new Queue(MqConstans.QUEUE_GROUP_ORDER_ACT, true);
  292. }
  293. @Bean
  294. public Queue giftCardQueue() {
  295. return new Queue(MqConstans.QUEUE_GROUP_GIFT_CARD, true);
  296. }
  297. @Bean
  298. public Queue initUserGiftCardQueue() {
  299. return new Queue(MqConstans.QUEUE_INIT_USER_GIFT_CARD, true);
  300. }
  301. // @Bean
  302. // public Queue TestDirectQueueV2() {
  303. // return new Queue("TestDirectQueueV2");
  304. // }
  305. // @Bean
  306. // public Queue TestDirectQueueV3() {
  307. // return new Queue("TestDirectQueueV3");
  308. // }
  309. // @Bean
  310. // public Queue actDrawOrderQueue() {
  311. // return new Queue(MqConstans.QUEUE_ORDER_DRAW_CARD, true);
  312. // }
  313. // @Bean
  314. // public Queue drawOrderCallbackQueue() {
  315. // return new Queue(MqConstans.QUEUE_DRAW_ORDER_CALLBACK, true);
  316. // }
  317. // @Bean
  318. // public Binding bindingTestDirectV2() {
  319. // return BindingBuilder.bind(TestDirectQueueV2()).to(testTopicExchangeV3()).with("test");
  320. // }
  321. // @Bean
  322. // public Binding bindingTestDirectV3() {
  323. // return BindingBuilder.bind(TestDirectQueueV3()).to(testTopicExchangeV3()).with("test.#");
  324. // }
  325. // @Bean
  326. // public TopicExchange testTopicExchangeV3() {
  327. // return new TopicExchange("TestTopicExchangeV3");
  328. // }
  329. @Bean
  330. public Queue orderOverQueue() {
  331. return new Queue(MqConstans.QUEUE_ORDER_OVER, true);
  332. }
  333. @Bean
  334. public Queue asyncRefundQueue() {
  335. return new Queue(MqConstans.QUEUE_ASYNC_REFUND, true);
  336. }
  337. @Bean
  338. public Queue luckyBagQueue() {
  339. return new Queue(MqConstans.QUEUE_LUCKY_BAG_EXPIRED,true);
  340. }
  341. @Bean
  342. public CustomExchange luckyBagDelayExchange() {
  343. Map<String, Object> args = new HashMap<>(1);
  344. args.put("x-delayed-type", "direct");
  345. return new CustomExchange(MqConstans.EXCHANGE_DELAYED_LUCKY_BAG_EXPIRED, "x-delayed-message", true, false, args);
  346. }
  347. @Bean
  348. public Binding bindingLuckyBagDelayExchange()
  349. {
  350. return BindingBuilder.bind(luckyBagQueue()).to(luckyBagDelayExchange()).with(MqConstans.ROUTING_KEY_LUCKY_BAG_EXPIRED).noargs();
  351. }
  352. @Bean
  353. public Queue userBrowseRecordQueue() {
  354. return new Queue(MqConstans.QUEUE_USER_BROWSE_RECORD,true);
  355. }
  356. @Bean
  357. public CustomExchange userBrowseRecordDelayExchange() {
  358. Map<String, Object> args = new HashMap<>(1);
  359. args.put("x-delayed-type", "direct");
  360. return new CustomExchange(MqConstans.EXCHANGE_USER_BROWSE_RECORD, "x-delayed-message", true, false, args);
  361. }
  362. @Bean
  363. public Binding bindingUserBrowseRecordDelayExchange() {
  364. return BindingBuilder.bind(userBrowseRecordQueue()).to(userBrowseRecordDelayExchange()).with(MqConstans.ROUTING_KEY_USER_BROWSE_RECORD).noargs();
  365. }
  366. }