摘要:
RabbiMQ宕机会导致消息丢失! 解决办法:可以做消息持久化。 非持久化消息:只有非持久化消息在RabbitMQ宕机时会发生消息丢失。 持久化消息:持久化的消息会在接收后被保存到磁盘中,所以RabbitMQ宕机对持久化消息没有影响,在重启时候会重新加载消息到消息队列中 非持久化消息的性能会高于持久 阅读全文
摘要:
可以采用单线程的消费保证消息的顺序性。对消息进行编号,1,2,3,4……消费时按照编号的顺序去消费消息。这样就可以保证消息 按照一定顺序执行。 阅读全文
摘要:
生产者: 原因: 由于网络原因导致消息发送失败,消息队列没有接收到生产者发送的消息,但生产者认为消息发送成功。 解决办法: transaction模式:事务模式:开启事务,发送消息,成功提交事务,失败回滚事务。 confirm模式:确认模式,不管成功与否,消息队列都给生产者一个成功或失败的回执,然后 阅读全文
摘要:
为什么会有重复消费? 做一个标志! 在将生产者写消息的时候,对数据做一个唯一标识。消费者在消费消息时,根据这个唯一标识做判断,如果这个唯一标识被消费过了,那么就 不消费了,如果判断结果是没有被消费过,就进行消费。 阅读全文
摘要:
网络问题导致消息队列没有接收到确认消息回执,消息没有被删除,所以存在重复消费! 解决? 阅读全文
摘要:
RabbitMQ有三种模式,其中集群模式有两种: 单一模式: 单机版的,不做集群,单独运行一个RabbitMQ。 普通模式集群 默认的集群方式 缺点: 可以带来一定的效率,但在带来效率的同时也增加了一些负担?就是增加了MQ节点之间的通信,这部分通信也会占用资源,增加时间成本。 所有这种方式并没有提供 阅读全文
摘要:
通过搭建RabbitMQ的集群类提高高可用。 阅读全文
摘要:
RabbitMQ的工作模式?(五种) 简单模式 一个生产者,一个消费者。 生产者生产消息,将消息发送到消息队列中,消费者从消息队列中获取消息并消费 work模式(资源竞争) 一个生产者,多个消费者 生产者生产消息,将消息发送到消息队列中,多个消费者同时争抢消息,只有抢到的 消费者才能消费消息 订阅模 阅读全文
摘要:
1.降低系统的稳定性。 若是RabbitMQ宕机,就无法提供服务了,系统就没法正常运行了。 2.增加系统的复杂性。 增加了RabbitMQ的代码,还需要考虑使用RabbitMQ带来的一些后果: 消息丢失,消息堆积等问题 阅读全文
摘要:
原因有三: 1.解耦 2.异步 3.削峰 阅读全文
摘要:
是一个开源的,由Erlang公司在1991年推出的消息中间件,底层是由Erlang编写,基于AMQP协议 可以解决代码的解耦,异步,削峰等问题 阅读全文