一重复消息为什么会出现消息重复?消息重复的原因有两个:1.生产时消息重复,2.消费时消息重复。1.1生产时消息重复由于生产者发送消息给MQ,在MQ确认的时候出现了网络波动,生产者没有收到确认,实际上MQ已经接收到了消息。这时候生产者就会重新发送一遍这条消息。生产者中如果消息未被确认,或确认失败,我们可以使用定时任务+(redis/db)来进行消息重试。@Component@Slf4Jpublicc
分类:
其他好文 时间:
2020-08-06 20:53:42
阅读次数:
162
1.1 RabbitMQ安装 1.1.1 安装erlang环境 1.1.1.1 安装GCC GCC-C++ Openssl等模块 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel 1.1.1.2 安 ...
分类:
其他好文 时间:
2020-08-06 17:05:42
阅读次数:
71
目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货。在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持续七天,就是使用了消息中间件的延迟推送功能。 12306 购票支付确认页面。我们在选好票点击确定跳转的页面中往 ...
分类:
其他好文 时间:
2020-08-06 11:56:05
阅读次数:
73
RabbitMQ是什么? MQ(Message Queue,消息队列)消息中间件,一般以集群方式部署,主要提供消息的接受和发送,实现各微服务之间的消息同步。 原理介绍 rabbitmq是依据erlang的分布式特性(RabbitMQ底层是通过Erlang架构来实现的,所以rabbitmqctl会启动 ...
分类:
其他好文 时间:
2020-08-04 16:52:47
阅读次数:
96
mq的作用主要是用来解耦,削峰,异步, 增加MQ,系统的复杂性也会增加很多, 也会带来其他的问题,比如MQ挂了怎么办,怎么保持数据的幂等性 幂等性问题通俗点讲就是保证数据不被重复消费,同时数据也不能少, 也就是数据一致性问题。 下面是MQ丢失的3种情况 1,生产者发送消息至MQ的数据丢失 解决方法: ...
分类:
其他好文 时间:
2020-08-04 14:12:11
阅读次数:
86
Apache Kafka 架构和相关概念 Apache Kafka 是一款开源的分布式消息引擎系统 消息引擎的同类 ActiveMQ RabbitMQ WebSphere MQ Rocket MQ JMS仅仅是一组 API 协议 消息引擎的作用 削峰填谷 缓冲上下游瞬时突发流量,使其更平滑.特别是对 ...
分类:
Web程序 时间:
2020-07-28 00:19:27
阅读次数:
86
基于分布式异步框架celery 前文已知,celery可以执行异步任务、延时任务、定时任务。 broker:'redis://127.0.0.1:6379/2' # 消息队列(中间件) broker 可以使用Redis、RabbitMQ backend:'redis://127.0.0.1:6379 ...
分类:
其他好文 时间:
2020-07-27 23:58:21
阅读次数:
99
一.消息的可靠投递 在使用RabbitMq的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败的场景。RabbitMQ为我们提供了两种方式用来控制消息的投递可靠性 rabbitMQ 整个消息投递过程为: producer -> rabbitMQ broker -> exchange -> queu ...
分类:
其他好文 时间:
2020-07-27 17:53:27
阅读次数:
116