00:00
同学们。我们接下来写我们的这个代码。咱们上节课呢,已经把环境搭建好了。并且呢,把坐标呢,也已经加入进来了。接下来呢,我们准备开始写代码。写代码呢,分为这么个情况,就是写代码分为两端,其中第一端呢叫P,是生产端,也叫生产者。另外一个C叫消费者。生产者呢?发消息给队列。队列呢?再将消息转发给消费者,队列叫中间键啊,中间这是队列。那么我们先写生产者这月,所以我们要先写叫消息的生产者。完之后呢,我们画张图。来说明一下这过程。首先我们这里有一个生产者。他发消息给我们的队列,注意是队列啊。
01:03
完了这个队列的名字呢,咱们也提前起好名字叫hello,对,完了队列呢,再将消息发送给转发给生产者、消费者。消费者。完了,我们先写生产者,也就说我们第一步啊,这是第一步。啊,先写生产者。代码。来。目的是发。消息。给谁呢?给队列一个名字叫hello的队列,这是第一第一步,第二步呢,我们是。且。消费者。消费者干什么呢?消费者消费消息的队列。那也就意味着这个位置是。接收消息。好,分两步写完我们的填写,第一步叫生产者的代码。
02:00
完再写第二步,消费者的代码。回到我们的开发工具。开发工具当中呢,首先先创建一个生产者。包名呢,我就起一个com.it硅谷点。MQ点。我们由于后面代码很多,可以写一个万表示这是第一次的写代码。反正呢,再写一个叫。生产者。Produce。完成,紧接进来。哎,这就是我们的一个生产者。这个生产者目的目目标是吧,是发消息。接下来我们写发芽消息,发给谁呢?发给一个队列。这个队列的名称呢,叫这么写的是吧。名字叫字符串类型的一个。队列。下划线内幕。
03:01
名字叫什么呢?叫hello啊,我们已经说好了名字叫hello,将它进行大写转换。啊,大写的。完了,接下来呢,开始进行啊,发消息。哎,用一个main函数来发。内函数发的时候呢,我们首先第一件事要干什么呢?要创建工厂。因为只有创建了工厂才能发消息,所以创建一个链接工厂。这个链接工厂的名字叫connection connection factor这个工厂。起一个简单的名字就叫工厂名,完你一个连接工厂。这是第一步,第二步呢,你要这个工厂设置这个工厂的IP。就是为什么要设IP呢?是因为是要连接咱们的这个队列。连,准确来说,连接rabbit MQ的队列。
04:04
所以要设置IP。那IP的代码呢,是这么写,是点设置host表示是IP。IP,我们现在的IP是。幺九二幺六八两百点一二九。幺九二点幺六八点两百点一二九,对,这是IP。第二个呢,要设置的是用户名。因为你要连接呃MQ,那必须得有用户名,当然同时也得需要密码。所以接下来呢,我们就写。用户名和密码。设置。Username用户名叫额的密,哎密码呢叫123,这都是我们之前设置好的。密码123好。
05:00
当我们设置到这里的时候,我们就可以连接上我们的这个MQ队列了。能连接上MQ这个消息队列。但是呢,光连上不行。我们还得连,我们还得建立连接这个工厂呢,并没有连上啊,只是创建了工厂。接下来创建链接。创建连接怎么写呢?是工厂。点上。新建一个连接。快速返回就拿到了这么一个链接。这个工厂呢,它需要抛异常。你可以直接在这拆开,你也可以在main函数这呃,直接将异常抛出,这也是可以的。完创建完链接之后。刚才按照刚才的学习。哪张原理图啊,在这儿呢,有一张原理图。我们去看一下。这张原理图告诉我们一个什么问题呢?就是当你和当你用这个生产者他。
06:05
与MQ之间建立了一个连接之后,这个连接呢,并不是发消息的。一个链接里可以产生多个信道,而每一个信道是专门发消息的。所以我们应该通过连接获取里面的新道才是我们的目的。所以下一步。应该叫获取。信道。获取心道怎么获取呢啊,就是通过。连接供连接是吧,获取直接create,你看增加一个信道就拿到了这个信道。有了信道之后呢,这个信道就可以根据这张图,你看根据这张图通过信道就可以连接我们的队列,当然准确来说连接是交换机再连接队列。刚开始我们发消息,呃,没有把交换机算在里面,因为我们想简单的发送一个呃消息,所以交换是可以省略的。
07:09
可以采用默认交换机。所以呢,您可以直接连接队列就可以,不用啊,就当没有看见交换机,直接连接队列就可以。这是简单连接来,我们先,由于是入门级程序啊,我们不要搞这么复杂。所以直接来第二步,创建一个队列。对吧,产生一个对立。叫。生成一个。对立。这个队列怎么生成呢?就是通过这个信道对。直接调取队列的一个。声明。这是俩单词组成啊,一个叫队列,后面单词叫声明,相当于声明一个队列,并且把队列起个名字,例如队列的名称。
08:01
问,你这队列是否需要保存消息?专业术语叫持久化。这个呢是表示是否需要排他。第四个呢,是。是否自动删除第五个呢,是传递一些一些队列的参数。而我们刚开始入门程序,没有必要写这么多,当你不会写的时候呢,你直接写一个那纸就可以。就例如第一个队列名,你得写什么?队列名我们已经都起好了,放在了上面,名字叫hello嘛,所以来说说一下第一个。第一个参数。叫队列名称。对,完了我们就把队列名称填在里面。第一个参数。第二个参数。叫。来说一说第二个参数啊,第二个参数是否是需要保存消息。
09:04
全称应该这么说说。队列里。里面的。消息消息。是否?持久化。这是专业术语啊,完了呢,默认情况下。默认警报。消息。存储在内存中。持,持久化表示是存储在磁盘上。因为只有磁盘能进行存持久化,存储在内存当中是不能持久化的,而默认情况下就是不持久化的,所以你应该给它加一个什么,加一个。True表示持久化,完了你要是写for就表示。存放在内存当中,并不进行持久化。所以这个位置呢,你可以暂时随便写一下,例如你不持久化也是没有关系的,如果有一天你需要持久化了,你把这个false改成true就可以了。
10:05
那么这是第二个参数啊,那第三个参数呢,是什么意思,咱说一说第三个参数。第三个参数是该队列。该队列是否指?共一个。消费者进行。消费。再说一句,是否进行。消息的。共享。如果是处。就表示可以。多个消费者。消费。那反之,如果是副,就不允许多个消费者进行消费。那么我们默认情况下就是不允许多个消费者消费,所以咱们在这里面呢,可以写下的表示,False,哎,不不进行消费者共享,还不共享。
11:02
只有一个消费者能消费,所以我们这里写了个force。写上force。只能一个。消费者。消费。再往下还有第四个参数呢,这块还有呢,第四个参数是表示是否自动删除啊第四个。是否自动删除?最后一个。消费者。What?开连接以后。该队列。是否自动?删除。如果是处,表示自动删除。反之亦然啊,就是false,它就不自动删除。那我们本次呢,呃,就写一个不自动删除。所以写了个false。
12:02
再往下还有第五个,第五个代表的就是其他参数了。暂时没用上啊,我们后面会用到其他参数。例如什么关于延迟消息啊,死信消息啊,这都是后面咱们作为高级内容进行介绍的,暂时呢,我们这个位置呢,可以写一个捺指。哎,先不填啊,不要不要进行填写。这样呢,我们就声明了一个这样的一个队列。再往下呢,我们准备发消息了。接下来。准备发消息,你得准备一个消息的内容,例如叫message。这个消息内容就叫hello是吧,Hello world,一般我们都愿意叫hello world,表示世界你好,一般都是一个呃,出出入。初,初次入门一段程序,愿意叫,呃,Hello word啊,初次。
13:02
使用。完了再往下呢,我们准备开始发消息啊,发消息用什么呢?用信道发。对,信道。进行一个消息的发布,你看这个单词念基本的完publish publish表示发布的意思。那么发布消息呢,又是这么几个参数,第一个让你填写交换机,由于我们本次呢是入门机程序,所以呢我们没有考虑交换机的问题,所以交换机这个位置呢,可以写一个空串。完了呢,这个ROK呢,这个是什么呢?这是那个叫路由K。路由K其实就是本次就是队列名啊,直接写队列名就行了,第三个呢,又是一些呃参数。这些参数呢,本次也没有,你就暂时写个纸。第四个呢,就是消息体。你不是要发这个hello word吗?你就把这个hello word放在第四个参数就可以了,所以我们写一下。
14:00
发。在写之前呢,来咱们还是像老办法一样,第一个。发送一个消息,说一说第一个参数。表示。发送。到哪个交换机对完了这个交换机呢,由于本次没考没有考虑啊,所以来个空串就可以了,表示不写。第二个呢,来说一下第二个参数。第二个参数呢,就是表示是路由的K值。是哪个是吧,K值是哪个,那么本次呢,是队列名称啊,队列的名称,本次是队列名称,所以把队列你看名称这拿着名称拿过来写在这里。下面的第三个。第三个是参数,其他参数信息啊,所以写上三表示。其他。其他。参数。
15:00
嘻嘻。咱们呢,本次也没有啊,所以咱们直接写了一个囊纸就不写了,第四个呢。是发送的消息。发送消息的消息体。那么我们把这个消息往这一放就可以了。这个逗号不太对啊,一定要是英文输入法下的逗号。完了,这个不对的原因,现在是需要调取他的这个二进制啊,不能直接发消息,调取二进制发消息。这就把消息发出去了,完最后呢,你再打印一句话表示。消息发送。完毕。就行了。这个消息发送完呢,这个这代码呢,到这儿呢,就算写完了,我们可以尝试着往里面发一个消息试一下。运行了运行。运行完之后呢,我们可以在这个界面当中看到,首先。
16:00
显示消息发送完毕,我们可以在后台界面当中找到队列,那例如一个叫hello的队列。这哈的队列里面呢,现在目前显示你看有一个消息正在准备中,准备被消费者所消费。完总消息有几个呢?有一个。所以总共就一个消息完,还这个消息呢,还正在正在准备被消费,现在目前还没消费,只是刚刚发送到咱们这个消息队列当中的当中来,这个队列名字叫hello。这样呢,我们就完成了本次的生产者的呃代码。书写。
我来说两句