В этой статье в основном рассказывается о базовой интеграции. Давайте сначала начнем код, а затем поговорим о расширенных функциях.
Некоторые термины в Rabbitmq
Если вы откроете веб -консоль RabbitMQ, вы обнаружите, что один из экспозиций трудно понять. Позвольте мне кратко объяснить это ниже.
Обмен
Переключатель похож на роутер. Сначала мы отправляем сообщения в переключатель, а затем переключатель доставляет сообщения в соответствующую очередь в соответствии с ключом маршрутизации. (Важно понять эту концепцию, и это полностью отражено в последующем коде)
Очередь
Очередь легко понять, поэтому нет необходимости объяснять это.
Связывание
Как выключатель узнает, какая очередь доставить это сообщение? Это требует связывания. Вероятно, это: используйте маршрутинг, чтобы связать очередь с определенным обменом, чтобы переключатель знал, какую очередь доставить сообщение в соответствии с ключом маршрутизации. (Это полностью отражено в последующем коде)
Присоединяйтесь к зависимостям Rabbitmq Maven
<Depective> <groupid> org.springframework.boot </GroupId> <artifactid> Spring-boot-starter-amqp </artifactid> </dependency>
Добавьте еще одну зависимость (эта зависимость может быть опущена, в основном используется для упрощения кода)
<depervice> <groupid> cn.hutool </GroupId> <ArtifactId> hutool-all </artifactid> <serse> 4.0.2 </version> </gethyse>
Rabbitmqconfig.java configuration
@Configurationpublic class rabbitmqconfig {public final Static String queue_name = "Spring-Boot-Queue"; public final Static String Exchange_Name = "Spring-Boot-Exchange"; public final Static String Routing_key = "Spring-Boot-Key"; // Создать очередь @bean public queue queue () {вернуть новую очередь (queue_name); } // Создать тему типа Exchange @bean public tapicexchange Exchange () {return new tapicexchange (Exchange_Name); } // Используйте ключ маршрутизации (RoutingKey), чтобы связать очередь (очередь очередь, TapexChange Exchange) {return BindingBuilder.bind (Queue) .to (Exchange) .with (routing_key); } @Bean public connectionFactory ConnectionFactory () {CachingConnectionFactory ConnectionFactory = new CachingConnectionFactory ("127.0.0.1", 5672); ConnectionFactory.SetUSERNAME («Гость»); ConnectionFactory.SetPassword ("Гость"); return ConnectionFactory; } @Bean public rabbittemplate rabbittemplate (connectionfactory connectionfactory) {return new Rabbittemplate (connectionFactory); }}Продюсер
Просто вызовите метод ConvertandSend от RabbitTemplate напрямую. Из следующего кода также можно увидеть, что мы не отправляем сообщение непосредственно в очередь, но сначала отправляйте его в коммутатор, и затем переключатель доставляет наше сообщение в соответствующую очередь в соответствии с ключом маршрутизации.
@RestControllerPublic Class ProducterController {@Autowired Private RabbitTemplate RabbitTemplate; @GetMaping ("/sendmessage") public Object sendmessage () {new Thread (()-> {for (int i = 0; i <100; i ++) {String value = new DateTime (). rabbittemplate.convertandsend (rabbitmqconfig.exchange_name, rabbitmqconfig.routing_key, value); вернуть "OK"; }}потребитель
Это также очень просто для потребителей. Им просто нужно добавить аннотацию @RabbitListener в соответствующий метод и указать имя очереди, которое будет слушать.
@Componentpublic class consumer {@rabbitlistener (queues = rabbitmqconfig.queue_name) public void ouctrymessage (String message) {console.log ("Потребление сообщения {}", сообщение); }}Запустите проект
Запустите проект, затем откройте браузер и введите http://localhost:9999/sendMessage . На консоли вы можете видеть, как производители постоянно отправляют сообщения, а потребители постоянно потребляют сообщения.
Откройте веб -консоль Rabbitmq, и вы также можете увидеть переключатели и очереди, которые мы настроили в коде только сейчас, а также информацию о привязке.
Нажмите, чтобы ввести данные об обмене
Заключение
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.