博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rabbitmq java 应用实例
阅读量:6451 次
发布时间:2019-06-23

本文共 2519 字,大约阅读时间需要 8 分钟。

增加maven配置文件

com.rabbitmq
amqp-client
3.6.5
复制代码

生产者

package com.jeff.boot.controller.rabbitmq; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import java.io.IOException; import java.util.concurrent.TimeoutException;

public class Producer { public final static String QUEUE_NAME="rabbitMQtest";

public static void main(String[] args) throws IOException, TimeoutException {    //创建连接工厂    ConnectionFactory factory = new ConnectionFactory();    //设置RabbitMQ相关信息    factory.setHost("");    factory.setUsername("");    factory.setPassword("");    factory.setPort(5672);    //创建一个新的连接    Connection connection = factory.newConnection();    //创建一个通道    Channel channel = connection.createChannel();    //  声明一个队列    channel.queueDeclare(QUEUE_NAME, false, false, false, null);    String message = "Hello RabbitMQ";    int i = 0;    //发送消息到队列中    while (i < 100 ) {        channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));        System.out.println("Producer Send +'" + message + "'");        //关闭通道和连接        i++;    }    channel.close();    connection.close();}复制代码

}

消费者

package com.jeff.boot.controller.rabbitmq;

import com.rabbitmq.client.*; import java.io.IOException; import java.util.concurrent.TimeoutException;

public class Customer { private final static String QUEUE_NAME = "rabbitMQtest";

public static void main(String[] args) throws IOException, TimeoutException {    // 创建连接工厂    ConnectionFactory factory = new ConnectionFactory();    //设置RabbitMQ地址    factory.setHost("192.168.226.53");    //创建一个新的连接    Connection connection = factory.newConnection();    //创建一个通道    Channel channel = connection.createChannel();    //声明要关注的队列    channel.queueDeclare(QUEUE_NAME, false, false, false, null);    System.out.println("Customer Waiting Received messages");    //DefaultConsumer类实现了Consumer接口,通过传入一个频道,    // 告诉服务器我们需要那个频道的消息,如果频道中有消息,就会执行回调函数handleDelivery    Consumer consumer = new DefaultConsumer(channel) {        @Override        public void handleDelivery(String consumerTag, Envelope envelope,                                   AMQP.BasicProperties properties, byte[] body)                throws IOException {            String message = new String(body, "UTF-8");            System.out.println("Customer Received '" + message + "'");        }    };    //自动回复队列应答 -- RabbitMQ中的消息确认机制    channel.basicConsume(QUEUE_NAME, true, consumer);}复制代码

}

转载地址:http://ymwzo.baihongyu.com/

你可能感兴趣的文章
oracle笔记(2010-1-30)
查看>>
Shell脚本入门与应用
查看>>
javascript闭包(Closure)初探
查看>>
ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍
查看>>
OAuth2授权原理
查看>>
微软的Framework导致该内存不能为written或read的错误?
查看>>
C#强化系列文章九:代码访问安全性使用
查看>>
顺序表的算法
查看>>
用 PyMedia 解码并播放 mp3 文件
查看>>
走在网页游戏开发的路上(一)
查看>>
优秀的Web开发人员是这样炼成的 (share)
查看>>
信息收集工具(ReconDog)
查看>>
LINUX-内核-中断分析-中断向量表(3)-arm【转】
查看>>
unity3d 学习笔记(两)
查看>>
如何安装配置Intelligent landing page for AIMS/MapGuide Ajax viewer
查看>>
DOS下从硬盘安装XP系统方法与要点
查看>>
MapGuide应用开发系列
查看>>
使用 Python 开始你的机器学习之旅【转】
查看>>
IIS Enabling HTTP Keep-Alives
查看>>
备忘录模式(Memento)
查看>>