rabbitmq java实例_RabbitMQ实例教程:Hello RabbitMQ World之Java实现

RabbitMQ要实现Hello World,其实也很简单。只需一个服务器来发送消息,另外有个客户端接收消息即可。

整体的设计流程如下:

014442a59e2ccf5236191f4e5e7bc5ec.png

消息生产者发送Hello到消息队列,消息消费者从队列中接收消息。

下载依赖Jar包

RabbitMQ要用Java实现发送消息,就必须使用Java客户端库。目前RabbizMQ的Java客户端库最新版为为 3.5.5 。可以从Maven仓库下载,也可以直接去官网下载。

com.rabbitmq

amqp-client

3.5.5

使用Java创建发送者

package com.favccxx.favrabbit;

import java.io.IOException;

import java.util.concurrent.TimeoutException;

import com.rabbitmq.client.Channel;

import com.rabbitmq.client.Connection;

import com.rabbitmq.client.ConnectionFactory;

public class Sender {

private final static String QUEUE_NAME = "hello";

public static void main(String[] argv) throws IOException, TimeoutException {

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 RabbitMQ World!";

channel.basicPublish("", QUEUE_NAME, null, message.getBytes());

System.out.println(" [x] Sent '" + message + "'");

}

}

RabbitMQ控制台监控消息队列

运行上面的代码,从RabbitMQ控制台就可以看到刚刚发送的消息。

5d967d94988f89c71f01b9eb23fb7026.png

f25d361b739d6d0a51bdf7c4075bd635.png

使用Java接收消息

package com.favccxx.favrabbit;

import java.io.IOException;

import java.util.concurrent.TimeoutException;

import com.rabbitmq.client.AMQP;

import com.rabbitmq.client.Channel;

import com.rabbitmq.client.Connection;

import com.rabbitmq.client.ConnectionFactory;

import com.rabbitmq.client.Consumer;

import com.rabbitmq.client.DefaultConsumer;

import com.rabbitmq.client.Envelope;

public class Receiver {

private final static String QUEUE_NAME = "hello";

public static void main(String[] argv)

throws java.io.IOException, java.lang.InterruptedException, TimeoutException {

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");

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(" [x] Received '" + message + "'");

}

};

channel.basicConsume(QUEUE_NAME, true, consumer);

}

}

分别运行消息发送者和消息接收者,从RabbitMQ控制台可以看到实时的状况。

5574f886d26cce9552f197774ebd85ea.png

到此为止,RabbitMQ的Hello World工作就结束了,是不是对消息队列有了一些好感了呢?

RabbitMQ 的详细介绍:请点这里

RabbitMQ 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值