00:00
同学们,我们讲一讲备份交换机啊。备份交换机是什么意思呢?这儿呢。就是刚才我们讲到说交换机如果出现了问题,接收不到消息,那么我们怎么办?要求交换机进行消息确认,对发布确认让生产者重新发消息。对吧,完如果收不到什么呢,如果收队列收不到也是这样。那么是这样的。那么还有一种办法是什么呢?给交换机加个背机。对,备份交换机,有了备份交换机之后呢,你就可以不用一定要把消息回退给生产者。怎么办呢?让,如果消息无法投递给交换机,那么让交换机怎么办?发消息给备份交换机。让备份交换机再通过自己的呃路由以及自己的队列。
01:02
发给生产者啊,发给消费者。也能达到一个消息不丢失的。并且呢,这种方式呢,还有一个什么大的好处呢,就是消息可以进行监测和报警。对,也就意味着。一旦消息发送到交换机,或者是到队列出了问题,你可以让它走备份交换机,你看箭头走备份交换机,备份交换机一个目,目的是为了。备份对,把消息备份一下,一个交一个队列是为了报警,对,所以呢,就既有备份又有报警的这么作用。也就不用在生产者这边进行消息重新发送了。对吧,也可以解决这问题啊,所以呢,怎么解决呢?我们一起来解决一下,这是一个代码架构图,那我们通过代码架构图可以清晰的发现。
02:00
来截个图啊,惊奇的发现。我们要写多少代码呢?要写这么多,来给同学们说一下。写的第一个要写一个交换机,确认交换机。再写一个备份交换机,但是之前我们确认交换机已经写过了,就差一个备份交换机了,包括确认队列我们写过了吗?也写过了,他们之间绑定了吗?绑定了那就差什么,差一个备份交换机。对,差一个备份交换机和一个备份队列和一个报警的一个队列。所以呢,我们应该添加一下就行了。在之前代码上,我们可以添加一个备份交换机以及两个队列就可以完成这件事情。所以来回到我们代码,我们先分几步写呢?还是分两步写?第一步写呢,就是你在这个位置要给它多配置两个队列,加上一个交换机。
03:01
之后呢,你生产者是不用对不用重新写的。但是你的消费者多了几个,多了两个是吧,一个是备份消费者,一个是报警消费者。那么备份消费者你可以不写,你写一个报警消费者就行了,因为只要报警消费者能收到,是不备份消费者也能收到啊,对,都是一样的啊,所以我们可以分两步,第一步把这两个加上,第二步把报警消费者。写上生产者就不用写了。好,咱们咱们代码实现一下。咱们回到咱们之前的那个代码。咱们之前的代码,咱们全都关一下啊,全关一下重开。完了,有这么一个确认的配置。这个配置里面同学们一起看一下,已经有了三个了。这呢,123分别对应123,差啥呀,差456对差456。
04:01
咱们写一下。所以在这里面加一个新的叫做备份。备份叫什么呢?备份交换机。把这个名字咱们粘过来。照着抄啊,因为他的名字已经固定好了,要求是这么这么做,那我们也只能这么做了,所以这块把它写一下。这个叫。备份是吧,Back up完了把它。这个改上这个啊,我们把它粘一份。替换掉。这里。完了这块呢,大写。行备份交换机就出来了,再来一个叫什么备份。这个队列是吧。完了把队列咱们再。复制一份。备份队列名字我看一眼啊,叫备份是吧,叫。Backup,对,完了这个就叫。
05:02
带啊对就它吧,我看看一下啊,是它,所以大写。完之后,紧接再来一个报警。报警队列。完了就跟备份队列一样啊,咱们就改一改名字,首先这个就叫。报警叫什么名?A,是吧,照抄的。复制过来。报警为例。好把这个名字。大写好了,到此。完成剩下的任务呢,就是把把这些进行声明呗,后加进来,这三个需要按图上进行声明,我们拿到最下面。看图就行了,不要看原来代码。首先第一个呢,我们要进行这个叫。备份交换机的一个创业。对吧,所以咱们创建一下。备份交换机啊,Public交换机director,来,来个备份啊,要backup交换机括号。
06:06
名字呢,你就可以起这个名字。当然,你不起也是方法名一样。完了再往下呢,是return new一个directory是吧,完之后呢,紧接着来一个枚举叫被。Back啊,备份。交换机。没了吧,没了啊,这是我们交换机,交换机我们就是照着之前的交换机这么写的,那么队列呢,我们也可以照着之前的队列写,是吧,所以把这个队列可以怎么的直接粘过来改改名就行了。例如改成就叫备份队列。这块呢,写着大写的Q对吧,完了备份队列这么一写,完了呢,再把这个叫备份。队列名字放这儿。是不是结束了,以此类推,再复制一份是报警队列,报警队列我看一下报警队列叫这名。
07:06
报警。完了,把报警队列呢往里写,这个呢是报警。没了吧,没了,完了呢,将它们进行绑定啊,他们绑定关系看见图啊,一个交换机绑定两个队列,所以下面就开始进行绑定。绑定的我们也不写了,因为上面都有写,所以咱粘一粘就行了,把这个绑定咱也粘过来。完了把名字改改啊,这相当于什么什么队列叫备份队列。这呢叫备份队列,绑到什么交换机?绑到备份交换机上。备份就。对吧,完了把它挪走完,紧接着我们把备份交换机的这个名字。拿过来。
08:00
写一下,再把备份队列的名字拿过来。写一下完,这是备份队列,这是备份交换机。对吧,它们之间的这个柔定K呢,我看一眼。柔进K竟然没有没有就是空串。对吧,没有空创。完了之后紧接着再往下呢,是啊,它的类型什么扇出类型,那也就意味着我们之前的交换机类型应该用扇出的,扇出是。用这类型,完了你再拗一个。删除类型交换机,你看其他不用改啊,因为名字应该是没啥变化。就是类型改。没了吧,没了。第二。行了。
09:01
删除类型呢,就没有必要写那个叫ROK了,因为ROK没有吧,你看这两个两个连线上是没有的,所以说就不用写。我看这个写好了吗。这块呢,是大写的B会好一点啊,这样就不不报波浪线了,以此类推,再绑定下一个还有一个报警是吧。叫报警队列。绑定到备份交换机。那么报警队列。名字张过来。对了吧,对了,这就完成。所以到此呢,我们又完成了什么东西呢?备份交换机,备份队列和报警队列,以及将他们三个进行绑定完成,但是没写,谁呢,没写。确认交换机一旦无法投递消息应该怎么呢?哎,这还有个箭头呢,应该发送给备份交换机,也就意味着确认交换机需要加一份转发到备份交换机的这么一个步骤。
10:05
所以是谁转发是确认就忘机。所以。我们应该到达确认。交换机这位这儿。当我们进行改更改确认交换机时,应该给他加东西。明白吗?应该加东西,你说这个位置这么写就不对了,应该怎么写啊,应该用一个工具类啊叫。交换机的构建是吧,叫交换。交换机。等会啊,是怎么写的CE是吧?CH对少交换机B的构建对完了,首先构建的是直接类型名字,你把它填过来,依然是原来的缺损交换机,一定要照这图来啊。现在在写什么呢?写他呢?写确认交换机呢,他要干什么,他要转发,对转发到备份交换机,所以这个位置要写一个。
11:05
参数。对吧,要写个参数。那么写个参数的话呢,我们。构建吧。来吧,加加一个是吧,首先呢,你这块有个持久化啊,首先你写一个表示需要持久化对不对,完了之后再紧接加参数。完了参数再进行Bo的构建,对参数是什么?咱们曾经也写过,应该都是一个。一个值也可以一堆值对吧,我们本次呃,就一个值对吧,就一个值的话,那我们什么值呢?来换行啊看不见。这个值呢,就是我们的备份这块写一下,必须是备份交换机指向。像这个箭头一样。指向备份交换机,那么怎么写呢?这不太好记是吧?咱们抄一下吧。完了,我想想啊,应该是这么写的,对,完之后呢,杠。交换机对吧,这个单词念备份是吧。
12:04
对,完了这个单词念交换机,对,别写错啊,写错了就完蛋了。完,紧接着备份交换机的名字是谁呢?这是备份交换界定。这就完成了。其实就是这么一点儿事情。没了吧?没了。没了之后呢,紧接着我们就算把它准备好了,这张图上这根箭头过来到备份,备份在是吧,再路由到相应的队列,完了我们再写一个消费者。就可以了。行试一下一会儿啊,现在消费者还没洗啊。
我来说两句