00:00
同学们,我们接下来讲解一下工作队列的代码实现。工作队列呢,主要怎么实现呢?我们为了体现刚才讲到的叫轮训分发,分发消息。也就是说,什么叫轮训分发呢?就是一个生产者发送消息,由多个消费者,当然我们这里起名叫工作线程。由多个工作线程去接收。我多个工作线程之间的关系是竞争关系。而且还必须达到一个消息只能被处理一次,不可以处理多次,而每个工作线程他们之间呢?接收消息的情况就是轮询的,或者叫轮训的,就是你一条我一条他一条,诶我们必须要体现出这个你一条我一条他一条。所以呢,我们可以写两个工作线程,当然写三个也是可以的。两个工作线程完,有一个生产者大量的发消息,有两个工作线程去接收,我们可以清晰的看到他你一个我一个,你一个我一个,你一个我一个,这种轮训分发效果的一个结果。
01:15
从而达到确实证明是轮询分发是吧,轮训分发消息的这么一个结果。那好,代码怎么写呢?首先呢,我们依然像以往一样,先写一个生产者,当然我们可以调过来写,先写两个工作线程。完之后呢,再写一个生产者。之前我们已经前置课程当中已经写过了。那么写过了,当时有一些代码呢,是比较重复的,例如。之前我们写的消费者。每次在接收消息的时候,都要去创建一个连接工厂。创建一个信道。那么以此类推,生产者也每次都要创建一个连接工厂,也要产生一个新的,那么不如将这个共同的代码抽提成一个工具类。
02:10
以后呢,每次我们只需要调取这个工具类就可以了,没有必要每次写代码都要再写一遍,这些代码呢,是重复性的代码。所以我们的第一件事儿,按照文档来说,我们应该第一件事儿抽取工具类。抽取一个叫rabbit MQ的优挑的一个工具类,将这几行哎,多余的代码或者重复性的代码。把它封装在工具类当中,是一个静态方法,每次调取调取这个方法名就可以了。所以我们将这个方法直接抽取。这段代码呢,我们不就不再写一遍了,因为呢,我们已经写了两遍了。接下来呢,这些代码呢,还会再写,所以不如直接复制粘贴进行抽取。
03:01
抽取成工具类来。首先呢,我们把之前代码关掉。开启一个新的工具包。包名字叫com.it硅谷点几点?Rabbit。MQ点油条丝工具类。就来了一个工具包,这个工具包的里面我们要创建一个类名,当然了,我们可以不用再创建了,直接复制粘贴这个工具类就可以了,将工具类粘到里面。粘到里面之后呢,同学们可以看一下,这个叫rabbit MQ油条这个写打个注释。此类是吧,哎,此类为。连接工厂,创建信道。的工具类。
04:03
完了呢,这里面呢,每次调取直接获取新道IP是不对的,所以呢,这个代码呢,我们改一改,改成我们自己的I这个自己的IP啊叫幺九二点幺六八点两百点幺二九,用户名呢是我的密,密码呢是123,诶这个是正确的工具力呢就。产生了。接下来呢,我们就可以写写我们的。工作的。工作的线程。我们先写一个工作线程的代码,代码写一份,但是我们可以启动两个工作线程。对吧,启动两个工作线程啊。
我来说两句