标签:交换器 direct RabbitMQ mq springframework key org import config
消费者Demo
ErrorReceiver.java
package com.example.rabbitmq.util; import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.*; import org.springframework.stereotype.Component; /** * 消息接收者 * @author Administrator * @RabbitListener bindings:绑定队列 * @QueueBinding value:绑定队列的名称 * exchange:配置交换器 * * @Queue value:配置队列名称 * autoDelete:是否是一个可删除的临时队列 * * @Exchange value:为交换器起个名称 * type:指定具体的交换器类型 */ @Component @RabbitListener(bindings = @QueueBinding( value = @Queue(value = "${mq.config.queue.error}",autoDelete = "true"), exchange = @Exchange(value = "${mq.config.exchange}",type = ExchangeTypes.DIRECT), key = "${mq.config.queue.error.routing.key}" )) public class ErrorReceiver { @RabbitHandler public void rabbitmqListener(String msg){ System.out.printf("接收............Error:" + msg); } }
InfoReceiver.java
package com.example.rabbitmq.util; import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.*; import org.springframework.stereotype.Component; /** * 消息接收者 * @author Administrator * @RabbitListener bindings:绑定队列 * @QueueBinding value:绑定队列的名称 * exchange:配置交换器 * * @Queue value:配置队列名称 * autoDelete:是否是一个可删除的临时队列 * * @Exchange value:为交换器起个名称 * type:指定具体的交换器类型 */ @Component @RabbitListener(bindings = @QueueBinding( value = @Queue(value = "${mq.config.queue.info}",autoDelete = "true"), exchange = @Exchange(value = "${mq.config.exchange}",type = ExchangeTypes.DIRECT), key = "${mq.config.queue.info.routing.key}" )) public class InfoReceiver { @RabbitHandler public void rabbitmqListener(String msg){ System.out.printf("接收............Info:" + msg); } }
application.properties
spring.application.name=springcloud-mq spring.rabbitmq.host=10.250.***.** spring.rabbitmq.port=5672 spring.rabbitmq.username=***** spring.rabbitmq.password=***** #交换器类型 mq.config.exchange=log.direct #路由键名称 mq.config.queue.info.routing.key=log.info.routing.key #队列名称 mq.config.queue.info=log.info #路由键名称 mq.config.queue.error.routing.key=log.error.routing.key #队列名称 mq.config.queue.error=log.error
生产者Demo
SendMsg.java
package com.example.rabbitmq.util; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class SendMsg { @Autowired private AmqpTemplate amqpTemplate; @Value("${mq.config.exchange}") private String exchange; @Value("${mq.config.queue.info.routing.key}") private String routingKeyInfo; @Value("${mq.config.queue.error.routing.key}") private String routingKeyError; public void sendMsg(String msg) { amqpTemplate.convertAndSend(exchange,routingKeyError,msg); } }
application.properties
spring.application.name=springcloud-mq spring.rabbitmq.host=10.250.***.** spring.rabbitmq.port=5672 spring.rabbitmq.username=****** spring.rabbitmq.password=***** #交换器类型 mq.config.exchange=log.direct #路由键名称 mq.config.queue.info.routing.key=log.info.routing.key #路由键名称 mq.config.queue.error.routing.key=log.error.routing.key
RabbitmqApplicationTests.java
package com.example.rabbitmq; import com.example.rabbitmq.util.SendMsg; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = RabbitmqApplication.class) public class RabbitmqApplicationTests { @Autowired SendMsg sendMsg; @Test public void contextLoads() throws InterruptedException { while (true){ Thread.sleep(1000); sendMsg.sendMsg("hello world"); } } }
标签:交换器,direct,RabbitMQ,mq,springframework,key,org,import,config 来源: https://www.cnblogs.com/ShaoXin/p/11065451.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。