rabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。rabbitMQ使用二郎语言(ERLANG)编写,使用需安装erlang。
rabbitmq的三个名词解释
生产者:发送消息的程序就是一个生产者(producer)
队列:队列是发送消息的缓冲,基本上是一个无限的缓冲。多个生产者(producers)能够把消息发送给同一个队列,同样,多个消费者(consumers)也能攻从一个队列(queue)中获取数据。
消费:获取队列中的消息。
Hello World步骤
客户端
第一步,建立一个到RabbitMQ服务器的连接
ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); Connection connection = factory.newConnection();
第二步:定义queue名称
Channel channel = connection.createChannel(); channel.queueDeclare(QUEUE_NAME, false, false, false, null);
定义QUEUE_NAME,消息将通过定义的queue发送消息
第三部:发送消息
String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
发送完消息,切记关闭连接
channel.close(); connection.close();
服务端
第一、二步:跟客户端一致,定义域rabbitmq服务器的连接并指定读取的queue名称
ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); channel.queueDeclare(QUEUE_NAME, false, false, false, null);
第三步:定义消费者进行消费
QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicConsume(QUEUE_NAME, true, consumer); while (true) { QueueingConsumer.Delivery delivery = consumer.nextDelivery(); String message = new String(delivery.getBody()); System.out.println(" [x] Received '" + message + "'"); }
消费者根据queue名称读取消息
整合代码
客户端:
public class MQClient { private final static String QUEUE_NAME="hello"; public static void main( String[] args ) throws IOException { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); channel.queueDeclare(QUEUE_NAME, false, false, false, null); String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); System.out.println(" [x] Sent '" + message + "'"); channel.close(); connection.close(); } }
输出:
[x] Sent 'Hello World!'
服务端
public class MQServer { private final static String QUEUE_NAME = "hello"; public static void main(String[] args) throws IOException, ShutdownSignalException, ConsumerCancelledException, InterruptedException { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); channel.queueDeclare(QUEUE_NAME, false, false, false, null); System.out.println(" [*] Waiting for messages. To exit press CTRL+C"); QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicConsume(QUEUE_NAME, true, consumer); while (true) { QueueingConsumer.Delivery delivery = consumer.nextDelivery(); String message = new String(delivery.getBody()); System.out.println(" [x] Received '" + message + "'"); } } }
输出:
[*] Waiting for messages. To exit press CTRL+C [x] Received 'Hello World!'
相关推荐
spring和rabbitmq整合的helloworld
RabbitMQ rabbitmq-server-3.6.12-1.el6.noarch 及其安装所需要的软件打包都在这里面,主要报卡一下软件:socat-1.7.3.2.tar.gz、rabbitmq-server-3.6.12-1.el6.noarch.rpm、rabbitmq-release-signing-key.asc、otp_...
RabbitMQ入门-实战-RabbitMQ
RabbitMQ-HelloWorld:RabbitMQ的Hello World示例
rabbitmq-server-3.11.13rabbitmq-server-3.11.13rabbitmq-server-3.11.13rabbitmq-server-3.11.13rabbitmq-server-3.11.13rabbitmq-server-3.11.13rabbitmq-server-3.11.13rabbitmq-server-3.11.13rabbitmq-server-...
rabbitmq-server-3.10.5-1.el8.noarch.rpm
rabbitmq-server-3.4.1-1.noarch.rpm rabbitmq-server-3.4.1-1.noarch.rpm
rabbitmq-server-3.8.8-1.el7.noarch
这里提供了rabbitmq-server-3.7.3.exe百度网盘下载,官网下载实在是太慢了,亲测有效! rabbitmq-server-3.7.3.exe rabbitmq-server-3.7.3.exe rabbitmq-server-3.7.3.exe
最新版linux rabbitmq-server-generic-unix-3.9.1.tar.xz最新版linux rabbitmq-server-generic-unix-3.9.1.tar.xz
下载好的包,因为下载太慢 rabbitmq-server-generic-unix-3.7.8.tar.xz
rabbitmq-server-3.7.10-1.el7.noarch.rpm包 配合erlang在RHEL Linux 7.x, CentOS 7.x, Fedora 19+ (supports systemd)等系统运行
linux rabbitmq安装包 rabbitmq-server-generic-unix-3.6.1.tar 实测
rabbitmq-server-3.9.7-1.el7.noarch.rpm
rabbitmq-server-3.8.3.exe和erlang22.2.exe 2020年3月最新版本, 64位
RabbitMQ源码 rabbitmq-server-generic-unix-3.8.8.tar.xz
rabbitmq-server-3.8.0-1.el6.noarch.rpm安装包下载 使用命令安装:yum -y install rabbitmq-server-3.6.6-1.el6.noarch.rpm 启动rabbitmq服务: 前台运行:rabbitmq-server start (用户关闭连接后,自动结束进程) ...
rabbitmq安装包,linux离线安装。后面会有教程及配置。先在windows解压再使用。软件名称:rabbitmq-server-generic-unix-3.5.7.tar.gz
rabbitmq-server-generic-unix-3.7.18.tar.xz版本服务器安装 有需要的可以去官网查看一下rabbitmq版本对erlang版本的一个支持情况,官网地址:http://www.rabbitmq.com/which-erlang.html
最新版linux rabbitmq-server-generic-unix-3.8.7.tar.xz