
rabbitmq
文章平均质量分 85
xiaocstudy
这个作者很懒,什么都没留下…
展开
-
MongoDb + RabbitMQ 搭建系统通知模块
MongoDb + RabbitMQ 搭建系统通知模块使用springboot实现一、选择MongoDB和RabbitMQ理由对于公告消息,本设计是设计为 为每个用户创建一条公告信息(原因是:方便记录用户对于消息的已读和未读状态,这样设计会更符合用户需求),因此设计两个表,message(存储消息及其发送者消息) 和 message_ref(存储接收者,及已读和新接收状态)数据库选择为MongoDB,原因是MongoDB对于海量数据以及高并发情况下的读写数据很有优势,同时他的数据存储是以文档结构存原创 2022-02-25 22:02:03 · 2647 阅读 · 0 评论 -
rabbitMQ连接失败问题:User can only log in via localhost
无法连接RabbitMQ,出现无权限问题User can only log in via localhost 或者ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.原创 2022-02-25 15:08:05 · 1907 阅读 · 0 评论 -
Rabbitmq学习
参考视频:尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件下面是相关的笔记RabbitMQ:1、RabbitMQ简介,安装及简单示例Rabbitmq:2、工作队列模式及消息应答与持久化及发布确认Rabbitmq:3.交换机Rabbitmq:4.死信队列,延迟队列Rabbitmq:5.发布确认高级及备份交换机Rabbitmq:6.幂等性,优先队列与惰性队列rabbitmq:7.rabbitmq集群,Federation交换机和队列,Shovel...原创 2022-01-06 13:59:36 · 1008 阅读 · 1 评论 -
rabbitmq:7.rabbitmq集群,Federation交换机和队列,Shovel
十、rabbitmq集群10.1. clustering10.1.1. 使用集群的原因最开始我们介绍了如何安装及运行 RabbitMQ 服务,不过这些是单机版的,无法满足目前真实应用的要求。如果 RabbitMQ 服务器遇到内存崩溃、机器掉电或者主板故障等情况,该怎么办?单台 RabbitMQ 服务器可以满足每秒 1000 条消息的吞吐量,那么如果应用需要 RabbitMQ 服务满足每秒 10 万条消息的吞吐量呢?购买昂贵的服务器来增强单机 RabbitMQ 务的性能显得捉襟见肘,搭建一个 Rabbi原创 2022-01-06 13:57:54 · 728 阅读 · 0 评论 -
Rabbitmq:6.幂等性,优先队列与惰性队列
九、RabbitMQ 其他知识点9.1. 幂等性9.1.1. 概念用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。 举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常, 此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱 了,流水记录也变成了两条。在以前的单应用系统中,我们只需要把数据操作放入事务中即可,发生错误立即回滚,但是再响应客户端的时候也有可能出现网络中断或者异常等等9转载 2022-01-06 13:53:11 · 185 阅读 · 0 评论 -
Rabbitmq:5.发布确认高级及备份交换机
八、发布确认高级发布确认可以参考另一篇文章Rabbitmq:2、工作队列模式及消息应答与持久化及发布确认在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢? 特别是在这样比较极端的情况,RabbitMQ 集群不可用的时候,无法投递的消息该如何处理呢:应 用 [xxx] 在 [08-1516:36:04] 发 生 [ 错误日志异常 ]原创 2022-01-06 13:51:21 · 219 阅读 · 0 评论 -
Rabbitmq:4.死信队列,延迟队列
六. 死信队列6.1. 死信的概念先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时原创 2022-01-06 13:47:41 · 317 阅读 · 0 评论 -
Rabbitmq:3.交换机(发布订阅模式,路由模式,主题模式)
五、交换机在上一节中,我们创建了一个工作队列。我们假设的是工作队列背后,每个任务都恰好交付给一个消费者(工作进程)。在这一部分中,我们将做一些完全不同的事情-我们将消息传达给多个消费者。这种模式称为 ”发布/订阅”.为了说明这种模式,我们将构建一个简单的日志系统。它将由两个程序组成:第一个程序将发出日志消息,第二个程序是消费者。其中我们会启动两个消费者,其中一个消费者接收到消息后把日志存储在磁盘, 另外一个消费者接收到消息后把消息打印在屏幕上,事实上第一个程序发出的日志消息将广播给所有消费者5.1.原创 2022-01-06 13:42:40 · 296 阅读 · 0 评论 -
Rabbitmq:2、工作队列模式及消息应答与持久化及发布确认
三、工作队列(Work Queues)模式工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。 相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。3.1. 轮询分发消息该模式多线程的情况下默认是按照轮询的方式分发任务的在这个案例中我们会启动两个工作线程,一个消息发送线程,我们来看看他们两个工作线程 是如何工作的。3.1.1 抽取工具类public c原创 2022-01-06 00:05:12 · 1136 阅读 · 0 评论 -
RabbitMQ:1、RabbitMQ简介,安装及简单示例
一、消息队列1.1 MQ的相关概念1.1.1 什么是MQMQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务。1.1.2 为什么要用MQ1.流量消峰举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰原创 2022-01-05 23:56:58 · 195 阅读 · 0 评论