大家好,我是指北君。
创新互联公司-成都网站建设公司,专注成都做网站、成都网站建设、网站营销推广,域名与空间,网页空间,绵阳服务器托管有关企业网站制作方案、改版、费用等问题,请联系创新互联公司。
在工作中经常会用到消息队列处理各种问题,今天指北君带领大家来学一个很常用到的技术-RabbitMQ;接下来还会有关于RabbitMQ的系列教程。
队列:一种数据结构,先进先出。
消息队列:简单的说就是用来进行消息传输的队列。
消息中间件:简单的说就是用来传输消息的中间载体,就是将你的信息发送到接受方,它并不关心发送的数据是什么。RabbitMQ就是一个消息中间件。
首先,安装RabbitMQ,可直接使用docker安装一个。
docker 地址:https://hub.docker.com/_/rabbitmq/tags
# 拉取镜像
docker pull rabbitmq:management
# 启动容器
docker run -id --hostname my-rabbit \
--name rabbitmq \
-p 15672:15672 \
-p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:management
然后在网页访问:http://服务器的ip:15672,输入账号密码。记得开放端口
看到此页面代表安装成功
准备就绪,先写个Hello World
org.springframework.boot
spring-boot-starter-amqp
public class ConnectionUtils {
public static Connection getConnection(){
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("1.15.88.28");
factory.setPort(5672);
factory.setUsername("admin");
factory.setPassword("admin");
factory.setVirtualHost("/");
try {
return factory.newConnection();
} catch (IOException | TimeoutException e) {
e.printStackTrace();
}
return null;
}
}
public class Producer {
// 声明队列的名字
private static final String QUEUE_NAME = "queue_helloworld_1";
public static void main(String[] args) throws IOException, TimeoutException {
// 1. 获取连接
Connection connection = ConnectionUtils.getConnection();
// 2. 创建数据传输通道
Channel channel = connection.createChannel();
// 3. 声明队列
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
// 4. 发送数据到队列
channel.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_TEXT_PLAIN, "第一个队列消息...".getBytes());
// 5. 关闭通道
channel.close();
// 6. 关闭连接
connection.close();
}
}
public class Consumer {
// 声明队列的名字
private static final String QUEUE_NAME = "queue_helloworld_1";
public static void main(String[] args) throws IOException, TimeoutException {
// 1. 获取连接
Connection connection = ConnectionUtils.getConnection();
// 2. 创建通道
Channel channel = connection.createChannel();
// 3. 声明队列
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
// 4. 声明消费者
DefaultConsumer defaultConsumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
System.out.println("接收到的消息是:" + new String(body));
channel.basicAck(envelope.getDeliveryTag(), false);
}
};
// 5. 绑定消费者
channel.basicConsume(QUEUE_NAME, false, defaultConsumer);
}
}
本文到这里就结束了,简单介绍了一下RabbitMQ是什么,以及RabbitMQ的安装。
当前名称:RabbitMQ系列之Hello World
新闻来源:http://www.shufengxianlan.com/qtweb/news17/263017.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联