00:00
同学们,我们接下来去讲我们的生产者的代码。上节课呢,已经把工作线程C1和C2已经成功的启动起来了,接下来呢,我们写生产者的啊代码来。生产者代码呢,我们继续啊,跟咱们的工作WORK01写在一个包下。好,开始写。这次我们起的名字呢,就叫task斯克零一,诶,这个表示生产者发消息的这个类的名字,当然这个名字呢是自定义的啊,其实怎么写都可以,我们只是想做一下区分,因为原来叫produce是吧,生产者。消费者叫consumer,后来呢,我们呃做第二个呃实验的时候,我们就打算改名字了。名字只是一个,只是一个代号啊,所以不是很重点,同学们不用管啊,这个呢是专门。诶,生产。
01:00
生产者是吧,诶生产者可以发送大量的消息。发消息呢,还是一如既往的一样啊,就是我们发消息呢,一定要按照图上来看,一定要发到一个叫hello的队列里面,对,所以我们写代码依然是像原来一样,你得指定队列名称。队列的名称依然叫queen_name等于hello,别写错,一定要记住hello。因为接收方是吧,正好接收的是哈罗这个队列。完了呢,再接下来写代码,这个呢准备诶发送。呃,大量的消息对。发送大量消息之前呢,还是要创建连接工厂,但是我们已经很早就不算创建了,是吧?我们用的是rabbit MQ工具类,直接产生新道。完之后呢,上方直接扔出过异常。就不再处理了。
02:00
完之后,剩下的工作呢,就是去正常写代码,第一步你得先有个队列吧,对,所以进行队列的声明。来信道呢,直接就可以声明对立啊,你看这个声明对立,将队列的名称填里。对吧,这是对立的名称。对,完了,其他参数都什么意思呢?咱之前也都写过了,所以将之前写过的注释拿过来。放在这里面,同学们一起看一下就可以了。之前写代码时,你看第一个叫队列名称,第二个呢?问你队列消息是否进行持久化,你可以选择持久,你可以选择不持久,这都没有关系啊,这都是根据工作场景和需求或需要来决定的。我们本次只是为了测试,所以呢,怎么写都是可以的,完再往下是否跟别人是否进行消息共享,那我们也不进行消息的共享。同时问你是否自动删除,我们肯定也不自动删除,完了其他参数呢,我们也不写,所以是个那值,这就声明了一个。
03:09
对立。一旦队列声明完之后,接下来我们准备就开始发送消息了。那么为了呢能够测出本次的效果,我们本次发送消息准备从控制台。对,控制台当中。输入或者接受消息,消息信息,我们输入什么信息,它就发什么信息,这样呢比较智能。啊,比较比较比较随意,所以呢,我们不妨写一个从控制台当中接收信息的一个代码。控制台接收信息代码了,用的是。用的什么,用的是。这个对类啊叫Java u条里头一个扫描类啊叫扫描是吧。对完了,你有一个,你有一个扫描的实现类。
04:00
时间内呢,它从哪接收呢?从控制台接收,所以呢,就要加一个system.in诶这个表示从控制台当中输入控制台完接收到对。接收到消息,他的意思是扫描你控制台输入的内容。完了之后,接下来你控制台输入内容会很多,所以呢,我们用一个呃循环。进行便利用它。扫描类问,是否还有下一个消息?如果有下一个消息,我们就进行消息的发送,当然了,得先获取这个消息。对吧,拿到下一个的消息内容,Message啊,消息内容完之后呢,将消息发出去。我们曾经已经都写过了啊,Basic叫publish发送。发送的第一个单词呢,是信道,信道,当时我们第三第一个单词不是信道啊,是交换机,我们交换机呢,直接就没有了,直接略过了,使用的是默认交换机,所以是空串,完了之后再把这个队列名称填里。
05:10
对吧,队列名称田里这儿呢。上方这是队列名称,填过来。往紧接再往下第三个参数就是消息内容,当然了,我们直接获取到消息的二进制传输啊,因为它是二进制传送。完了再往下呢,中间缺少一个参数呢,是要求填写内容啊,填写一些相关的参数,我们当时也没填啊,早期没填,什么时候没填,就是我们在发消息那会儿。没有填写。在这呢,你看我们曾经都已经写过了,把这个注释拿过来放在这里,同学们一起看一下就可以了。你看第一个表示发送哪个交换机,我们没有交换机是吧?走的是默认交换机,完了第二个问题发送的是哪个路由K,本次的路由K呢,就是队列的名称。第三个呢,是问你其他参数信息我们当然没有了是吧,就那值嘛,第四个发送消息的消息体,消息体是以二进制传输的,不能是以字符串进行传输,所以字符串需要转成二进制。
06:13
之后呢,你再打印一句话表示呢,就是发送完成对吧,发送消息完成冒号。什么消息,你得跟人说一声是吧,诶。到此呢,我们就将生产者的代码就算成功的写完了,一如既往的像之前的那几行代码是吧,写的一模一样,完之后呢,唯独不一样就是从控制台当中接收消息,只有这这里是不一样。好,我们一起来测试一下。
我来说两句