如何保证rabbitmq消息零丢失? 我们从三个角色开始分析 1.生产者发送消息不丢失 生产者发消息到rabbitmq的网络传输过程中丢失了 以及消息发送到了rabbitmq但是mq内部出错,没有保存 上面的问题有两种方案 第一种:rabbitmq支持事务消息,通过开启事务->发送消息->异常捕获并 ...
分类:
其他好文 时间:
2020-09-24 21:08:38
阅读次数:
48
ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController { //定义一个定时器对象 //可以在每个固定时间发送消息 //调用此消息来调用相应的时间函数 //通过此函数可以在固定时间段来 ...
分类:
其他好文 时间:
2020-09-17 23:24:40
阅读次数:
33
1.模式说明 应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度 只有3个角色:P:生产者,也就是要发送消息的程序C:消费者:消息的接受者,会一直等待消息到来。queue:消息队列,图中红色部分 2.应用举例 Producer: 1 /** 2 * 发送消息 3 */ 4 pu ...
分类:
其他好文 时间:
2020-08-18 13:51:39
阅读次数:
63
这次的场景是,外部模块接受到消息会调用我们的回调接口,更新发送消息前插入的数据,但现在出现了插入的数据找不到的情况,而进入数据库查看插入的数据是存在的 @Transctional public CmsCustomerDetailResult getDetail(){ //操作数据库,插入数据 ... ...
分类:
其他好文 时间:
2020-08-11 10:37:42
阅读次数:
71
前言 介绍一下进程之间的通信,以及我在工作中对于进程通信的选择。 为什么有这个进程通信的概念呢。 实际上是因为进程是一个独立的运行单位,它分配的内存地址不能够被其他进程访问,这样的设计其实是为了安全。 但是有时候我们进程之间需要交换信息,那么怎么办呢?操作系统给了我们路口。 进程通信有下面几种方式: ...
分类:
系统相关 时间:
2020-08-10 22:10:52
阅读次数:
99
一重复消息为什么会出现消息重复?消息重复的原因有两个:1.生产时消息重复,2.消费时消息重复。1.1生产时消息重复由于生产者发送消息给MQ,在MQ确认的时候出现了网络波动,生产者没有收到确认,实际上MQ已经接收到了消息。这时候生产者就会重新发送一遍这条消息。生产者中如果消息未被确认,或确认失败,我们可以使用定时任务+(redis/db)来进行消息重试。@Component@Slf4Jpublicc
分类:
其他好文 时间:
2020-08-06 20:53:42
阅读次数:
162
两个回调方法:发送消息成功之后执行事务的executeLocalTransaction,回查时候调用的checkLocalTransaction。 思路:执行事务的时候,调用service的方法,这个方法需要用事务注解,方法参数中传入唯一id,事务方法最后判断如果id不为空,往事务表中插入唯一id, ...
分类:
其他好文 时间:
2020-08-04 16:41:25
阅读次数:
99
mq的作用主要是用来解耦,削峰,异步, 增加MQ,系统的复杂性也会增加很多, 也会带来其他的问题,比如MQ挂了怎么办,怎么保持数据的幂等性 幂等性问题通俗点讲就是保证数据不被重复消费,同时数据也不能少, 也就是数据一致性问题。 下面是MQ丢失的3种情况 1,生产者发送消息至MQ的数据丢失 解决方法: ...
分类:
其他好文 时间:
2020-08-04 14:12:11
阅读次数:
86
面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性. 可扩充性:增加新的子类不影响已经 ...
分类:
编程语言 时间:
2020-07-30 18:13:45
阅读次数:
77