![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MQ
文章平均质量分 62
消息中间件
只因为你温柔
如果人生就是一场陷阱,不知何时才能到天明。如果对得起我的生命,我要向全世界证明。
展开
-
RocketMQ常用操作
消息中间件,英文MessageQueue,简称MQ。它没有标准定义,一般认为:消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。**高效:**对于消息的处理处理速度快,RocketMQ可以达到单机10万+的并发。**可靠:**一般消息中间件都会有消息持久化机制和其他的机制确保消息不丢失。**异步:**指发送完一个请求,不需要等待返回,随时可以再发送下一个请求,既不需要等待。原创 2023-06-23 17:49:21 · 2817 阅读 · 0 评论 -
MQ面试题
MQ面试题原创 2023-03-05 21:39:20 · 1714 阅读 · 0 评论 -
Spring AMQP(集成了Rabbitmq)---代码版
Spring AMQP(集成了Rabbitmq)—代码版项目结构配置文件application.ymlspring: rabbitmq: host: 192.168.79.128 # 安装rabbitmq的ip username: leyou # rabbitmq的账号 password: 123456 # rabbitmq的密码 virtual-host: /leyou # 虚拟主机启动类Applicationpackage cn.xia原创 2020-06-29 15:49:11 · 188 阅读 · 0 评论 -
Spring AMQP(集成了Rabbitmq)
Spring AMQP(集成了Rabbitmq)1.1.简介Sprin有很多不同的项目,其中就有对AMQP的支持:Spring AMQP的页面:http://spring.io/projects/spring-amqp注意这里一段描述: Spring-amqp是对AMQP协议的抽象实现,而spring-rabbit 是对协议的具体实现,也是目前的唯一实现。底层使用的就是RabbitMQ。1.2.依赖和配置添加AMQP的启动器:<dependency>原创 2020-06-29 14:49:18 · 373 阅读 · 0 评论 -
持久化---7
持久化如何避免消息丢失?1) 消费者的ACK机制。可以防止消费者丢失消息。2) 但是,如果在消费者消费之前,MQ就宕机了,消息就没了。是可以将消息进行持久化呢?要将消息持久化,前提是:队列、Exchange都持久化1.1.1.交换机持久化1.1.2.队列持久化1.1.3.消息持久化...原创 2020-06-29 14:42:31 · 1624 阅读 · 0 评论 -
订阅模型-Topic---6
订阅模型-TopicTopic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert通配符规则: #:匹配一个或多个词 *:匹配不多不少恰好1个词举例: audit.#:能够匹配audit.irs.原创 2020-06-29 14:21:12 · 310 阅读 · 0 评论 -
订阅模型-Direct---5
订阅模型-Direct有选择性的接收消息在订阅模式中,生产者发布消息,所有消费者都可以获取所有消息。在路由模式中,我们将添加一个功能 - 我们将只能订阅一部分消息。 例如,我们只能将重要的错误消息引导到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。在Direct模型下,队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)消息的发送方在向E原创 2020-06-29 14:16:20 · 223 阅读 · 0 评论 -
订阅模型-Fanout---4
订阅模型-FanoutFanout,也称为广播。流程图:在广播模式下,消息发送流程是这样的:1) 可以有多个消费者2) 每个消费者有自己的queue(队列)3) 每个队列都要绑定到Exchange(交换机)4) 生产者发送的消息,只能发送到交换机,交换机来决定要发给哪个队列,生产者无法决定。5) 交换机把消息发送给绑定过的所有队列6) 队列的消费者都能拿到消息。实现一条消息被多个消费者消费1.1.1.生产者两个变化:1) 声明Exchange,不再声明Queue原创 2020-06-29 14:12:52 · 190 阅读 · 1 评论 -
work消息模型---3
work消息模型工作队列或者竞争消费者模式在第一篇教程中,我们编写了一个程序,从一个命名队列中发送并接受消息。在这里,我们将创建一个工作队列,在多个工作者之间分配耗时任务。工作队列,又称任务队列。主要思想就是避免执行资源密集型任务时,必须等待它执行完成。相反我们稍后完成任务,我们将任务封装为消息并将其发送到队列。 在后台运行的工作进程将获取任务并最终执行作业。当你运行许多工人时,任务将在他们之间共享,但是一个消息只能被一个消费者获取。这个概念在Web应用程序中特别有用,因为在短的HTTP请求窗口中原创 2020-06-29 13:49:29 · 259 阅读 · 0 评论 -
Rabbitmq五种消息模型---1
五种消息模型RabbitMQ提供了6种消息模型,但是第6种其实是RPC,并不是MQ,因此不予学习。那么也就剩下5种。但是其实3、4、5这三种都属于订阅模型,只不过进行路由的方式不同。我们通过一个demo工程来了解下RabbitMQ的工作方式:依赖:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati原创 2020-06-28 17:57:48 · 300 阅读 · 0 评论 -
基本消息模型---2
基本消息模型官方介绍:RabbitMQ是一个消息代理:它接受和转发消息。 你可以把它想象成一个邮局:当你把邮件放在邮箱里时,你可以确定邮差先生最终会把邮件发送给你的收件人。 在这个比喻中,RabbitMQ是邮政信箱,邮局和邮递员。RabbitMQ与邮局的主要区别是它不处理纸张,而是接受,存储和转发数据消息的二进制数据块。P(producer/ publisher):生产者,一个发送消息的用户应用程序。C(consumer):消费者,消费和接收有类似的意思,消费者是一个主要用来等待接收消息的用户原创 2020-06-24 18:08:36 · 177 阅读 · 0 评论 -
Ubuntu16.4-Rabbitmq安装/配置/运行
Ubuntu16.4-Rabbitmq安装/配置/运行由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令:apt-get install erlang-nox # 安装erlangerl # 查看relang语言版本,成功执行则说明relang安装成功添加公钥wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key原创 2020-06-23 19:52:26 · 425 阅读 · 2 评论