zoukankan      html  css  js  c++  java
  • rabbitmq 学习4初试2

    本例是一个简单的异步发送消息实例
    1,发送端

    @Test(groups = { "sunjun" })
    public class RabbitmqTest {

        private static Connection connection;

        static {
            ConnectionParameters params = new ConnectionParameters();
            ConnectionFactory factory = new ConnectionFactory(params);
            try {
                connection = factory.newConnection("192.168.18.21",
                        AMQP.PROTOCOL.PORT);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

        public void testSend() {
            try {
                Channel channel = connection.createChannel();
                System.out.println(channel.toString());
                Assert.assertNotNull(channel);
                byte[] messageBodyBytes = "hello world".getBytes();
                channel.basicPublish("exchangeName", "routingKey",
                        MessageProperties.PERSISTENT_TEXT_PLAIN, messageBodyBytes);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    2,接收端
    @Test(groups = { "sunjun" })
    public class RabbitmqTestB {

        private static Connection connection;

        static {
            ConnectionParameters params = new ConnectionParameters();
            ConnectionFactory factory = new ConnectionFactory(params);
            try {
                connection = factory.newConnection("localhost", AMQP.PROTOCOL.PORT);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

        public void testReceive() {
            try {
                Channel channel = connection.createChannel();
                System.out.println(channel.toString());

                Assert.assertNotNull(channel);

                channel.exchangeDeclare("exchangeName", "direct");
                channel.queueDeclare("queueName");
                channel.queueBind("queueName", "exchangeName", "routingKey");

                boolean noAck = false;
                GetResponse response = channel.basicGet("queueName", true);
                if (response == null) {
                    System.out.println("No message retrieved.");
                } else {
                    AMQP.BasicProperties props = response.getProps();
                    byte[] body = response.getBody();
                    System.out.println(new String(body));
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    先执行下发送端,再执行下接收端,输出:hello world
    ok
  • 相关阅读:
    公平锁和非公平锁
    读写锁StampedLock的思想
    线程工作窃取算法
    关于SQL注入的问题以及解决方法
    简单工厂模式、工厂模式和抽象工厂模式
    RestFul的无状态规则详解
    Identity Server 4 中文文档(v1.0.0) 目录
    第3章 支持和规范
    第2章 术语
    第1章 背景
  • 原文地址:https://www.cnblogs.com/amityat/p/2160040.html
Copyright © 2011-2022 走看看