rabbitMQ简单实例

**
 * 消息发送
 */
public class Send {
    //创建队列的名称
    private final static String QUEUE_NAME="queue";
 
    public static void main(String[] args) {
        /**
         * 创建连接
         */
        ConnectionFactory conn = new ConnectionFactory();
 
        //连接rabbitmq的主机
        conn.setHost("10.1.8.126");
        conn.setPort(5672);
        conn.setUsername("rabbitadmin");
        conn.setPassword("123456");
        conn.setVirtualHost("/");
 
        try {
            //创建一个新的连接
            Connection connection = conn.newConnection();
 
            //创建一个频道
            Channel channel = connection.createChannel();
 
            //指定一个队列
            channel.queueDeclare(QUEUE_NAME,false,false,false,null);
 
            //指定发送的消息
            String send = "hello world";
 
            //往队列中发送一条消息
            channel.basicPublish("",QUEUE_NAME,null,send.getBytes());
            System.out.println("发送的消息:"+send);
 
            //关闭频道
            channel.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


/**
 * 消息接收
 */
public class Recv {
    //创建队列的名称
    private final static String QUEUE_NAME="queue";
 
    public static void main(String[] args) {
        /**
         * 创建连接
         */
        ConnectionFactory conn = new ConnectionFactory();
 
        //连接rabbitmq的主机
        conn.setHost("10.1.8.126");
        conn.setVirtualHost("/");
        conn.setPort(5672);
        conn.setUsername("rabbitadmin");
        conn.setPassword("123456");
 
        try {
            //创建一个新的连接
            Connection connection = conn.newConnection();
 
            //创建一个频道
            Channel channel = connection.createChannel();
 
            //指定一个队列  主要为了防止消息接收者先运行,队列还没创建
            channel.queueDeclare(QUEUE_NAME,false,false,false,null);
            System.out.println("等待消息发送过来");
 
            //创建消息队列消费者
            QueueingConsumer consumer = new QueueingConsumer(channel);
 
            //指定消费队列
            channel.basicConsume(QUEUE_NAME,true,consumer);
 
            //创建一个队列阻塞方法
            while (true){
                //内部实现是阻塞队列的take方法
                QueueingConsumer.Delivery delivery = consumer.nextDelivery();
 
                //接收消息
                String message = String.valueOf(delivery.getBody());
 
                System.out.println("消费者接收消息"+message);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值