RabbitMQ简单例子

来源:互联网 发布:windows10 node sass 编辑:程序博客网 时间:2024/06/06 05:02

pom.xml

<!--rabbit-mq-->    <dependency>        <groupId>org.springframework.amqp</groupId>        <artifactId>spring-rabbit</artifactId>        <version>1.4.5.RELEASE</version>    </dependency>

RabbitmqTest.java

public class RabbitmqTest {    public static void main(String[] args) {        //建立连接        CachingConnectionFactory connectionFactory = new CachingConnectionFactory("127.0.0.1",5672);        connectionFactory.setUsername("guest");        connectionFactory.setPassword("guest");        connectionFactory.setVirtualHost("/");        //创建管理,创建vhost,queue,exchange,binding        RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory);        //helper,主要发送消息到rabbitmq        RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);        Map<String,Object> arg3,arg2,arg = new HashMap<String,Object>(); arg2 = arg; arg3 = arg;        arg.put("queueArg","queueuArgO");        arg2.put("exArg","exArgO");        arg3.put("bindArg","bindArgO");        //新建队列,暂时是声明,没有在rabbitmq服务器创建        Queue testQ = new Queue("testQ",true,false,false, arg);        //新建路由        TopicExchange topicExchange = new TopicExchange("testEx",true,false, arg2);        //新建绑定关系        Binding binding = new Binding("testQ", Binding.DestinationType.QUEUE,"testEx","testQ", arg3);        //提交新建队列,路由,绑定等命令到服务器,使变更生效        rabbitAdmin.declareQueue(testQ);        rabbitAdmin.declareExchange(topicExchange);        rabbitAdmin.declareBinding(binding);        //发送消息,网页http://127.0.0.1:15672  登录名与密码 guest,点击队列管理页queue,看到列表testQ有Ready数100,等待被消费者获取        for (int i=0;i<500;i++)            rabbitTemplate.send("testEx","testQ",new Message("this is from Rabbittest..................".getBytes(), new MessageProperties()));        System.out.println("end");        connectionFactory.destroy(); //没有destroy,进程不关闭    }}

RabbitmqTest2.java

public class RabbitmqTest2 implements MessageListener {    public static void main(String[] args) {        //建立监听器        SimpleMessageListenerContainer listenerContainer = new SimpleMessageListenerContainer(connectionFactory);        SimpleMessageListenerContainer listenerContainer2 = new SimpleMessageListenerContainer(connectionFactory);        //创建消费者,要实现MessageListener接口        RabbitmqTest2 rabbitmqTest2 = new RabbitmqTest2();        RabbitmqTest2 rabbitmqTest3 = new RabbitmqTest2();        //设置消息处理的消费者        listenerContainer.setMessageListener(rabbitmqTest2);        listenerContainer2.setMessageListener(rabbitmqTest3);        //开始监听,有消息会自动调用上面的消费者        listenerContainer.start();        listenerContainer2.start();        //listenerContainer.shutdown(); //关闭监听进程        System.out.println("end2");        connectionFactory.destroy();//没有destroy,进程不关闭    }    public void onMessage(Message message) {        //System.out.println("msg:" +message.toString());        System.out.println(new String(message.getBody()));    }}

完整项目地址:https://u695858.pipipan.com/fs/695858-231349735
密码:234433

原创粉丝点击