rabbitMQ.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. /**
  3. * rabbitmq的配置
  4. */
  5. $rabbitMQ = [
  6. 'class' => 'mikemadisonweb\rabbitmq\Configuration',
  7. 'connections' => [
  8. [
  9. 'host' => '127.0.0.1',
  10. 'port' => '5672',
  11. 'user' => 'admin',
  12. 'password' => 'Kn3oaz138w52kzmm9',
  13. 'vhost' => '/', //虚拟主机
  14. ]
  15. ],
  16. /**
  17. * 交换器
  18. */
  19. 'exchanges' => [
  20. [
  21. 'name' => 'customExchange',
  22. 'type' => 'direct',
  23. 'durable' => true,
  24. ],
  25. [
  26. 'name' => 'stockExchange',
  27. 'type' => 'direct',
  28. 'durable' => true,
  29. ],
  30. [
  31. 'name' => 'notifyExchange',
  32. 'type' => 'direct',
  33. 'durable' => true,
  34. ],
  35. [
  36. 'name' => 'ptExchange',
  37. 'type' => 'direct',
  38. 'durable' => true,
  39. ],
  40. [
  41. 'name' => 'limitBuyDelayExchange',
  42. 'type' => 'direct',
  43. 'durable' => true,
  44. ],
  45. [
  46. 'name' => 'limitBuyExchange',
  47. 'type' => 'direct',
  48. 'durable' => true,
  49. ]
  50. ],
  51. /**
  52. * 队列
  53. */
  54. 'queues' => [
  55. [
  56. 'name' => 'customQueue',
  57. 'passive' => false,
  58. 'durable' => true,
  59. ],
  60. [
  61. 'name' => 'stockQueue',
  62. 'passive' => false,
  63. 'durable' => true,
  64. ],
  65. [
  66. 'name' => 'notifyQueue',
  67. 'passive' => false,
  68. 'durable' => true,
  69. ],
  70. [
  71. 'name' => 'ptQueue',
  72. 'passive' => false,
  73. 'durable' => true,
  74. ],
  75. [
  76. 'name' => 'limitBuyDelayQueue',
  77. 'passive' => false,
  78. 'durable' => true,
  79. 'arguments' => new \PhpAmqpLib\Wire\AMQPTable([
  80. 'x-dead-letter-exchange' => 'limitBuyExchange',
  81. 'x-dead-letter-routing-key' => 'limitBuyRoute',
  82. ]),
  83. ],
  84. [
  85. 'name' => 'limitBuyQueue',
  86. 'passive' => false,
  87. 'durable' => true,
  88. ],
  89. ],
  90. /**
  91. * 交换和队列之间的关系称为绑定
  92. * 列出绑定: rabbitmqctl list_bindings
  93. */
  94. 'bindings' => [
  95. [
  96. 'queue' => 'customQueue',
  97. 'exchange' => 'customExchange',
  98. 'routing_keys' => ['customRoute'],
  99. ],
  100. [
  101. 'queue' => 'stockQueue',
  102. 'exchange' => 'stockExchange',
  103. 'routing_keys' => ['stockRoute'],
  104. ],
  105. [
  106. 'queue' => 'notifyQueue',
  107. 'exchange' => 'notifyExchange',
  108. 'routing_keys' => ['notifyRoute'],
  109. ],
  110. [
  111. 'queue' => 'ptQueue',
  112. 'exchange' => 'ptExchange',
  113. 'routing_keys' => ['ptRoute'],
  114. ],
  115. [
  116. 'queue' => 'limitBuyDelayQueue',
  117. 'exchange' => 'limitBuyDelayExchange',
  118. 'routing_keys' => ['limitBuyDelayRoute'],
  119. ],
  120. [
  121. 'queue' => 'limitBuyQueue',
  122. 'exchange' => 'limitBuyExchange',
  123. 'routing_keys' => ['limitBuyRoute'],
  124. ]
  125. ],
  126. /**
  127. * 生产者
  128. */
  129. 'producers' => [
  130. [
  131. //客户操作生产者
  132. 'name' => 'customProducer',
  133. ],
  134. [
  135. //库存管理生产者
  136. 'name' => 'stockProducer',
  137. ],
  138. [
  139. //通知生产者
  140. 'name' => 'notifyProducer',
  141. ],
  142. [
  143. //跑腿下单生产者
  144. 'name' => 'ptProducer',
  145. ]
  146. ],
  147. /**
  148. * 消费者
  149. */
  150. 'consumers' => [
  151. [
  152. //客户操作消费者
  153. 'name' => 'customConsumer',
  154. 'callbacks' => [
  155. 'customQueue' => '\common\components\rabbitmq\customConsumer',
  156. ]
  157. ],
  158. [
  159. //库存管理消费者
  160. 'name' => 'stockConsumer',
  161. 'callbacks' => [
  162. 'stockQueue' => '\common\components\rabbitmq\stockConsumer',
  163. //'limitBuyQueue' => '\common\components\rabbitmq\cancelLimitBuyConsumer',
  164. 'limitBuyQueue' => '\common\components\rabbitmq\stockConsumer',
  165. ]
  166. ],
  167. [
  168. //通知消费者
  169. 'name' => 'notifyConsumer',
  170. 'callbacks' => [
  171. 'notifyQueue' => '\common\components\rabbitmq\notifyConsumer',
  172. ]
  173. ],
  174. [
  175. //跑腿下单消费者
  176. 'name' => 'ptConsumer',
  177. 'callbacks' => [
  178. 'ptQueue' => '\common\components\rabbitmq\ptConsumer',
  179. ]
  180. ]
  181. ],
  182. ];
  183. return $rabbitMQ;