00:00
同学们,我们接下来要演示下一个场景下一个死性的来源,它的来源是一个是消息,一旦被拒绝,被谁拒绝,被C。只要C1一旦把消息拒绝掉,也会成为死信。一旦成为死心,就被谁消费了,就被C2消费了,因为他进入到死心队列了啊,被C2所消费。所以呢,被消息被C拒绝掉,也是会成为死刑。那我们为了演示这个效果,一定不能受到前方过期时间和队列最大程度所影响。对吧,以及之前演示的时候还有一些残留信息,例如。四条六条,诶这个信息我们必须得把它消费掉,恢复成零状态,所以怎么办呢?所以要将消费者。这个一启动。消费掉对吧,再把消费者二给他启动了,给他消费掉。
01:00
恢复一下初始状态是吧,消费掉了。小外调之呢,把这些代码都关掉,对,关掉。把这个关掉好,消费掉之后呢,咱刷新看一眼是吧,都是零了啊,不用刷新了,都是零了。没问题吧,没问题。点多了啊,没问题啊,消费掉了,接下来我们演示什么呢?演示这个叫由由于消息被拒绝。之前队队列最大长度还记得吧,我们为了演示它的效果,在咱们的代码里呢,还加了一条做限制是吧,最大长度的一个线。这个为了掩饰下一个,咱们也把这个限制给它注释掉。注释掉之后呢,一旦注释掉了。那么我们接下来就开始演示什么?演示C拒绝消息,怎么拒绝呢?发十条消息,都发什么消息啊,看一下啊,发的消息都有谁呢?都是音符I,例如音符一啊,一直到音十,所以说这个消息应该是in for1完点点点点点一直到in for10,你想拒绝谁?
02:11
你想拒绝谁,你就写谁就行了。我们这么的,我们想拒绝INFO5。来了,注意看,这个位置是接收消息的,也就是说你在这个位置可以进行消息的拒绝。那你把消息抽取出来啊,因为我们本次要呃拒绝消息,所以抽取一下消息。Me?完了这个消息等会儿重名了是吧,这个简称MSG,完了消息你判断一下。你说如果这个消息等会儿啊,这消息这个位置打开消息啊,真的。如果这如果消息message点上已它如果是in four几呢五吧。哎,我们就拒绝掉,其他消息不拒绝。对其他消息不拒绝,那也就意味着只有阴五怎么的?
03:03
只有in for5会成为死心,那么C2 C2,也就是他在死心队列当中应该只有几条,一条谁呀?In符五对音符。其他的消息我们不拒绝,只有INO5拒绝掉,所以这里面只有一个消息,完了,他将来也只能消费一条,他能消费几条,他能消费呃。九条当然了,其实你要打印的话,十条都能打印出来,为什么呢?因为你看你在,即使你拒绝了,你打不打印。对不对,你打不打印,你打印的话就能打印出来知道你看。C。这呢,如果是消息是吧,这个加再加一句话,这句话表示什么?哎,这个此消息说冒号隔开。此消息是被拒绝的,哎,被C。拒收的啊,拒绝啊对。加上这句话,那反之L斯呢,对吧,L斯是吧,如果不是IN5,那你就正常打印。
04:06
正常打印消息本身就可以了。所以最终打印的话,你会发现打印一人打印十条啊,因为只有即使被拒绝了,你不该打印还能打印吗?只是打印的内容不一样,是此消息被拒绝,那被拒绝你得表示一下啊。怎么拒绝呢?用信道。基本的一个否认应答,拒绝应答,你看这是拒绝应答,拒绝哪一条,把这个消息的标签放里。这是标签吧?完了这个标签之后呢,紧接着等会儿,这不是标签啊,这个这是标,这个里面有。这个是点get这个,这里面有一个标签,完了呢,放回队列吗?对不对,他就可以再写一个叫。不放回队列。不放回队列啊,不放队列的话,就就意思就不要放回哪个队列啊,说什么东西呢,是吧,是不放回普通队列,那他一旦不放回普通队列,自然成为死信了呢。
05:06
是吧,所以这个否认这是不,这个拒绝呢,也可以拒绝完将消息再塞回队列,当然也可以选择不塞回,你要是不不塞回呢,就成为了死信了。好吧,所以要是塞回去,它会还会重新给你发的,所以呢,我们强烈建议不塞回去完让他成为死系,对。这就完成了,那如果对,如果正常,如果正常应答呢?这写着如果正常的一个应答,如果成功了,应该是A吧。A,完了呢,把这个消息的内容。啊,放过去完放回队列吗?也可以选择不放回啊,这是批量啊,不是放不放回,这是问你批量应答吗?不批量的。对吧,完了这块呢,一定要改啊,改成false。表示。表示什么表示进行手动应答,一定要开启。
06:02
你要是直接自动应答了,根本就不存在拒绝的问题啊。所以一定要开启手动应答。开好了吧,开好了,我们这里面只有IN5被被拒绝了,那其他的应该不会被拒绝,所以我们来。试一下,试之前一定要将之前这个删掉,因为我们把这个长度限制已经给去掉了,所以这个队列又不适用了,又把它删掉。上吊环中重新启动。消费者一。好了。起完之后再由。谁生产者进行生产,咱们消费者本次并没有关闭啊,没有关闭的话,这就意味着正常能被消费的,例如发十条,九条是被消费的,这个位置不会是九。这个位置是是几是一,注意啊,一看因为只有一条被拒绝了,那么它会成为死信,所以死心这个位置应该是几是一对。
07:05
那咱们发吧。发十条啊发。发出来了。发出之后呢,刷新一下看看。你看刷新完之后,紧接着你就看到这就仔细里面有这么一条,而这一条是不是我们的INFO5呢,你可以点里看一眼啊,我们看看能不能通过界面能查看到。如果能看到就最好了呗。给了吗?给了是吧,你看什么信息O5啊,确实是O。对吧,完了呢,这个五呢,咱们去看一下,正常这些消费,该消费的都消费了,你看。这个阴一到四,六到十都是没问题的,只有阴符五为此消息是被C1拒绝的。拒绝进入到死信当中,你在启动消费者二,而消费者二只能消费几个,只能消费一个,对,就是我们的INFO5。
08:00
所以呢,最终呢,我们这个消息被拒绝的这个案例啊,也给同学们演示了。成为死信的三大来源。哎,我们都挨个演示了一遍。
我来说两句