00:00
好,同学们,加油来,那么我们继续咬咬牙哈,胜利往往在最后坚持一下的努力当中。那么被杨哥虐肯定是很辛苦,但是请同学们不好意思啊,呃,杨哥呢,就是下手狠,出拳重。严格要求。疲惫了,你也给我疲惫着听好吧,呃,那么。要明白。半个月以后,项目完成了。是不是又得回来受我虐。那么那个时候我们是不是。还给大家讲讲比还没有公开的那些内容,比方说只是公开的面试,大场面试的第二季,那么第三季的那些更狠的,那么咱们大家是不是又要聊聊,所以说最好什么?如果你是本科学历一毕业15000,硕士学历一毕业就18000。干嘛?因为你技术在这儿。不多说,所以说。咬着牙。负重前行,苦难辉煌。好吧,哪有什么岁月静好?岁月静好只不过是负重前行。
01:03
只不过这个负重前行的人,要么是你自己,要么是你爹妈,那么现在毕业了,不能靠爹妈。你没有什么才华,你没有什么后靠山,那么你自己就是靠山,只能拼你自己好,那么接下来我们再聊聊死刑队列,那么当然这个呢是主要,呃,工作中他不会是让你写一个死刑队列啊,只是说面试的时候他会说聊聊死刑队列你的理解,你当然不能跟人家简单的讲一个是吧,那么这个时候是什么?我们搂一眼,比如说这个时候我们来看看,那么这个叫DLQ,这些是些什么东西是不是。那么。官网磁性队列跑到这,我们来吧同学们消息的重发和词性队列,那么来吧,你看什么情况下重发,这是不是官网上给出来的,这常用的这三个等等等等,那么这些。怎么个氦,那么在这都有好吧,那么先把光网说明白,那么跟我们相关的呢,第一个。
02:04
那么dead letter q的这个队列DLQ,它的意是死性队列,这一条消息再被重复了多次以后,那么默认重发为六次,刚才我们看过到第六次是不是就挂了,将会被MQ移入到死性队列,那么开发人员就在这个队列中查看处理出错的消息,进行什么人工干预,那100条消息有三条挂了,那么这三条是哪三条卦挑出来,那为什么投递不成功?为什么又会导致重复消费?只要是出异常的,干嘛乱葬肝?OK,都在这儿找,那么查出死亡原因,进行人工干预的修复,那么死性队列。说白了就是什么异常消息的归并处理的集合,那么主要是处理失败的消息。那么来。我们来言。好,那么老规矩,同学们先看看好吧。好,那么。用户啊,支付系统整过来订单,那么在这儿我们绿色的是MQ弄过来了以后,就有业务队列和死性队列,说难听点,每一批业务干嘛调我们的第三方另外一个系统仓库的,有成功的,有失败的,那么监控了以后,如果是后台有个现成做定时任务,做监控的失败了归到哪?死刑队列,那么死刑队列里面处理以后重发或者是什么人工干预,那么说穿了,实际工作当中,一般生产环境在使用MQ的时候都要设计两个队列。
03:31
说白了就是try catch翻脸,Try catch,正常情况下怎么跑,异常情况下怎么办,中间有监控,最后决定是自动修复还是人工干预,说穿了也就这么回事好,那么比方说上图,我们这个就是专门用来让订单发送订单消息,然后死性队列,就是处理异常订单的。那么来。假设第三方现在挂了,那么比方说今天晚上顺丰的系统,这个云达的快递系统要干嘛?
04:00
重启,那么我们的这些配送都会接到接口调错调不通了,最严重的是吧,比方说某快递公司,那个时候就是因为故障两个小时那么好,我们就会把标记,诶怎么几次了都调不到,那么这个时候转入好一个设置好的死刑队列,那么这个时候。在第三方物流系统故障的时候,所有订单消息全部处理失败,然后我们呢,转入死行队列,那么说穿了,一些异常消息弄过来,那么OK,重新执行发送和配送的逻辑,那么死性队列我们就明白是个什么东东,那么一般它的用途呢,你要多说两句啊,这个呢,你不用配,因为实际工作中也不会让你去配,我们都用默认,什么意思呢?就比方说,呃,杨哥,我觉得这个active mq.DLQ这个叫死性队列,名字我不喜欢。我喜欢叫麦带的,我死了,那可不可以可以改这个名字啊,这些配置都有,但是我认为你只要脑袋正常的情况下,那。
05:00
对吧?好,但是呢,来看一下它还有两个细节配置,第一个共享死性队列的策略,你看individual是什么独立的,也就是说默认情况下大家都是共用,将所有的死性保存在一个什么队列,共享队列当中,这个是我们的默认策略,听懂那么共享队里的名字啊,就叫这个。我,当然我们可以。用什么这个来进行设置,那么言下之意设置死性队列,那么共享的什么名字队列就叫DLQ在这儿听懂了吧?那么这叫什么死性队列共享说说白了就是什么所有出错的消息都用同一个,都放到一同一个共享队列里面,都用同一种死性队列的处理策略好。那么假设不好意思啊。就如同说一个人现在死了都要土葬,但是刚好这个人他就说我不想土葬,我想海葬,把我的骨灰扔大海里面OK了,那么可能他有些个性化的定制需求或者些重要业务,那么不妨我们来看看独立的个人的死刑队列的处处置的策略配置意见,那么来把死性队列放入什么各自的死性通道,那么对于队列而言,我们呢,就是这么一个,那么对于topic皮口主题而言,默认呢,就是这么一个。那么假设比方说我们有一个队列叫订单,那么它对应的死刑通道就是这么一个东东,然后干嘛加了个后缀叫order,我们使用队列的前缀和topic皮口的前缀来指定上述,那么来我们可以这么干,默认情况下,不管你是主题还是队列,他们都用那那一套默认的是吧,死行通道就是这个,当然你也可以指定是什么。
06:41
托皮考,那么假设哈,我们这个队列前缀,你看这是我们个人的队列吗?我们队列前缀叫第扣点,那么是否是使用队列那个公用的呢?我force了,那么将队列order中出现在这个保存在什么DLQ点order当中,那么这个就是不要跟我们所有错误的都挤在一块,我想专门为重要的模块订单开辟一个订单版的死行队列,那么。
07:06
这个时候我们就可以用这样的配置啊,加上这样的消息设置啊,那么可以将主题的保存在什么,我们的队列当中默认是为错,如果first了,那么肯定出和force设置效果就决定决定挤不挤得进去,犯不犯要不要合作,还是你们分灶吃饭那么好。那么我们的配置案例怎么配呢?还有两种,第一种,那么死心队列特别多了会怎么办?那么自动删除过期的消息,那么也就是说有点类似于说恐怖一点是吧,你哥们儿,你在这个医院的太平间里面,你不能说我不入目,我不下坟,我永远就住在医院太平间,挺好的,感谢医院替我解决了住房问题是吧,这就过分了,那么所以说你这样一直占着位子,别人是不是进不来,所以说他也有两种自动删除过期消息,第二个存放非持久的消息到死队的死刑队列当中,那么来这两种有时需要直接删除过期的消息,而不需要发送到死刑队列,那么这个时候干嘛?我们就把过期的消,因为消息我们默认是永不过期,假设有些消息是要过期的,那么它又出错了,那么这个时候就。
08:16
是否将过期的销售放入,放入死刑队列默认是出的,但是如果我不想放,那么我这儿干嘛?对于过期的直接干掉,自动删掉你的,连死刑队列都别放了干嘛?也就说你别来这儿占个坑好吧,这是第一种,第二种存放非持久的消息到死刑队列。那么。默认MQ是不会把非持久的消息发到死刑队列当中,那么我们这又有一个是非持久的,如果是要错,那么你也可以放入死刑队列。那么。不会把非持久的,那么也就说那些什么持久的失败的才会放入默认,但是如果我现在呢,干嘛要把非持久的要弄进来,干嘛就是为错听懂,那么所以说他们两个一个是过去时间,一个是非持久,那么好这些呢都是一些配之类的,好说那么来杨哥咋配,那么言下直线找到我们这一个干嘛粘贴针对于某一个死刑队列,那么这个大句号就代表是有点类似于SQ的心,代表全部起效,那么这个时候大家请看。
09:21
独立的词性队列配置策略,那么名字叫这个,那么对于true还是false,那么根据前面我和讲过的和你的业务来进行相应的配置啊,好,那么这个死性队列用于处理失败的消息,那么要么人工干预,要么对于一些过期啊,非持久啊来进行设置,好,那么此性队列我们就给大家介绍到这儿。
我来说两句