RabbitMQ——simple MQ
Simple MQ
在此之前,先安装rabbitMQ,我是在docker上直接部署的,docker-compose.yml
如下:
version: '3'
services:rabbitmq:image: rabbitmq:management-alpinecontainer_name: rabbitmqenvironment:- RABBITMQ_DEFAULT_USER=你的用户名 # 创建rabbitMQ用户名和密码- RABBITMQ_DEFAULT_PASS=你的密码restart: alwaysports:- "15672:15672"- "5672:5672"logging:driver: "json-file"options:max-size: "200k"max-file: "10"
建议大家,以后的部署全部在docker上完成,这是非常方便的。部署完成后直接在浏览器中输入:
你的ip:15672
就能访问rabbitMQ客户端了。比如我的 192.168.116.128:15672,就能看到下面的内容:
输入你刚才设置的账号和密码,即可进入客户端。
rabbitMQ使用阶段
最简单的消息队列,官网传送门:
包含一个消费者,一个生产者,一个MQ
接下来引入需要的依赖:
<dependencies><!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --><dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.7.3</version></dependency>
</dependencies>
包含一个消费者,一个生产者,代码如下:
建立连接(连接工具类):
public class RabbitConnection {public static Connection getConnection() throws IOException, TimeoutException {ConnectionFactory factory = new ConnectionFactory();// addressfactory.setHost("192.168.119.129"); // 这是我的linux主机地址,docker下安装MQfactory.setUsername("king");factory.setPassword("123456");factory.setVirtualHost("/vhosts"); // 节点return factory.newConnection();}
}
生产者:
public class Send {private static final String QUEUE_NAME = "simple_mq"; //消息队列名称public static void main(String[] args) throws IOException, TimeoutException {Connection connection = RabbitConnection.getConnection();Channel channel = connection.createChannel();channel.queueDeclare(QUEUE_NAME, false, false, false, null);String message = "hello simple_mq"; // 发送的消息channel.basicPublish("", QUEUE_NAME, null, message.getBytes());System.out.println(" [x] Sent.......... '" + message + "'");}
}
消费者:
public class ReceiV {private static final String QUEUE_NAME = "simple_mq";public static void main(String[] args) throws IOException, TimeoutException {Connection connection = RabbitConnection.getConnection();Channel channel = connection.createChannel();channel.queueDeclare(QUEUE_NAME, false, false, false, null);System.out.println(" [*] Waiting for messages. To exit press CTRL+C");DeliverCallback deliverCallback = (consumerTag, delivery) -> {String message = new String(delivery.getBody(), "UTF-8");System.out.println(" [x] Received '" + message + "'");};channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });}
}
如果这里报错 lambda ~~~~level 5之类的错误,加上下面的内容到pom中:
<build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
这里我们启动两个Application,发现,只要是启动一次send,消费者后台就会接收到message,进行消费。
RabbitMQ——simple MQ相关推荐
- RabbitMQ (一) MQ介绍以Linux下RabbitMq环境安装
1,MQ 相关介绍 1.1 什么是MQ MQ(Message Queue)消息队列,是基础数据结构中"先进先出"的一种数据结构.一般用来解决应用解耦,异步消息,流量削锋等问题,实现 ...
- RabbitMQ(mq) 如何处理高并发、负载均衡、消息幂等性、丢失、消息顺序错乱问题?
目录 介绍: 1.连接器(connection): 2.信道.通道(channel): 3.交换机(exchange): 4.队列(queue): 以下通过两个例子,让我们先来对rabbitmq 有个 ...
- 初识MQ和RabbitMQ
MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列. 几种常见MQ的对比: RabbitMQ ActiveMQ RocketMQ Kafka 公司/社区 Rabbit Apa ...
- 各个MQ消息队列介绍以及区别比较(RabbitMq ActiveMQ、ZeroMQ、Kafka)
首先,MQ其实就是消息队列,队列我们可以理解为管道,以管道的方式做消息传递. 在本篇博客中,我们先来简单学习一下几种MQ,之后对他们进行对比. ActiveMQ.RabbitMQ.kafka.Rock ...
- RabbitMQ简单队列模式
简单队列模式 红色:队列 P:消息的生产者 C:消息的消费者 生产者,将消息发送到队列 消费者,从队列中获取消息 配置依赖 导入RabbitMQ客户端依赖 <dependency>< ...
- 大数据互联网架构阶段 QuartZ定时任务+RabbitMQ消息队列
QuartZ定时任务+RabbitMQ消息队列 一 .QuartZ定时任务解决订单系统遗留问题 情景分析: 在电商项目中 , 订单生成后 , 数据库商品数量-1 , 但是用户迟迟不进行支付操作 , 这 ...
- RabbitMQ(三) HelloWorld 单生产者单消费者示例实现
一.创建Maven工程,引入RabbitMQ依赖. pom.xml 如下: <?xml version="1.0" encoding="UTF-8"?&g ...
- 消息队列RabbitMQ的使用
最近在学习spring cloud微服务,当学习到spring cloud bus的时候,涉及到了消息队列,需要学习RabbitMQ. 一.消息队列 1.1介绍消息队列 消息队列,即MQ,Messag ...
- 消息队列RabbitMQ入门与PHP实战
消息队列介绍以及消息队列应用场景 RabbitMQ 说明 MQ(Message Queue) 即消息队列,是应用间的通信方式,消息发送后可立即返回,由消息系统来确保消息的可靠传递."消息队列 ...
最新文章
- Go语言的DES加密(CBC模式, ECB模式) ---- 与java加密互通(转)
- Spring Boot JdbcTemplate 入门
- leetcode-有效的括号(三种语言不同思路)
- tomcat下只有.class文件 没有java文件_解决tomcat发布工程后,WEB-INF/classes下文件不编译的问题...
- 【LeetCode - 42. 接雨水】
- ctrl c 失效了_[安卓+PC双端]超C女仆无馬中字
- 抢先试用ReSharper UnitRun™ 1.0
- 《统计学习方法》读书笔记——感知机(原理+代码实现)
- Java log4j使用
- 2011-2-14 | Android Handler
- python实现寻找最长回文子序列
- 「开源资讯」MyExcel 3.3.0.GA 发布,终于支持图片导入啦
- IBM TSM官方最全资料
- python xlwt模块下载_python 的xlwt模块
- ProcessOn 在线作图,真香指南
- 如何将bmp转化为jpg,bmp转jpg方法
- 码农到架构师视频学习笔记
- 英语知识系列:英文与中文句子构成成分的对应关系
- npm list vue显示empty解决办法
- Recoil 的使用