![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
消息中间件
文章平均质量分 57
JD_Magi
这个作者很懒,什么都没留下…
展开
-
RabbitMQ—持久化
RabbitMQ—持久化引言如何保障当 RabbitMQ 服务停掉以后消息生产者发送过来的消息不丢失?默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它丢失队列和消息,除非告知它不要这样做。确保消息不会丢失需要做两件事:我们需要将队列和消息都标记为持久化。队列持久化如何实现队列持久化?在声明队列的时候把 durable 参数设置为true即可持久化注意点:有相同名字的队列未持久化,需要将该相同名字的队列删除才能持久化持久化之后,rabbitmq服务器重启,该队列依旧会存在原创 2021-07-02 15:08:30 · 3732 阅读 · 0 评论 -
RabbitMQ—消息应答
RabbitMQ—消息应答为什么要有消息应答场景:消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成了部分突然它挂掉了,会发生什么情况。造成的影响:RabbitMQ 一旦向消费者传递了一条消息,便立即将该消息标记为删除。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。以及后续发送给该消费这的消息,因为它无法接收到。保证消息不丢失为了保证消息在发送过程中不丢失,rabbitmq 引入消息应答机制,消息应答就是:消费者在接收到消息并且处理该消息之后,告诉 r原创 2021-07-02 14:38:59 · 312 阅读 · 2 评论 -
RabbitMQ—简单工作队列(WorkQueue)
RabbitMQ—简单工作队列(WorkQueues)引言工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。案例(轮询分发消息)一个生产者,两个消费者抽取工具类public class RabbitMQUtils { public static Channel getChannel() t原创 2021-07-01 22:25:33 · 154 阅读 · 1 评论 -
RabbitMQ—简单队列(Hello World)
RabbitMQ——Hello World引言点对点,一个生产者,一个消费者,一个队列。编码生产者public class Producer { // 定义一个队列名称 public static final String QUEUE_NAME = "hello"; public static void main(String[] args) throws IOException, TimeoutException { // 创建连接工厂 C原创 2021-07-01 16:24:48 · 96 阅读 · 0 评论 -
RabbitMQ ----简介与安装
RabbitMQ1、简介什么是RabbitMQRabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。为什么要用RabbitMQ在分布式系统下具备异步,削峰,负载均衡等一系列高级功能。拥有持久化的机制,进程消息,队列中的信息也可以保存下来。实现消费者和生产者之间的解耦。对于高并发场景下,利用消息队列可原创 2021-06-04 22:44:16 · 58 阅读 · 1 评论