00:00
好,同学们,我们再写消费者。消费者呢,无非就是进行消息的一个监听啊,咱们一会儿呢,起服务之后呢,调取这个请求路径,其实准确来说这个请求路径啊,我们把两个消息发出去。接下来呢,该写谁呢?该写图上的这个位置啊,生产者已写完,该写消费者,消费者是通过监听方式啊,所以呢,咱们在这个项目当中,它是要写一个监听器的。那么监听器呢?就单独再来一个新的包,名字叫监听器或者叫消费者都可以啊,Consumer消费者包完里面我们本次名字就叫呃,死信是吧,带来。完了呢,Queen。完了呢,Consumer。完了,这个呢,就是我们的一个叫做消息,准确来说是对立啊对立。TTL的这么一个消费者。
01:03
完了呢,为了这个消费者能够被实例化,一定要打上注解,叫上。这个注解实例化注解为了能打日志,还是像刚才一样啊,加上SLF负接对。完成到紧接里面进行接收消息。接收消息完接收的方式呢,用的是注解叫rabbit listener,完了里面写你的。队列名称。你打算怎么接,你当然看这啊是吧,这个图上呢,接收谁呢?接收他的这消息吧,对吧,最终他们不管发给谁,队列的消息一定达到QQD中是吧,QD中,所以队列的名字应该叫。QD,对。完之后呢,紧接着是public完了,VO完之后呢,叫接收是吧,Receive receive d呗,对吧,接收D消息完了呢,接收一个message信息。
02:03
对完再接收一个信道。这就行了,完了呢,抛出一个异常。好,接下来就可以接收消息。接收消息呢,是从从这个消息里面能拿到消息啊,就是消息体嘛,是吧,所以呢,需要呃来一个字符串MSG是吧,你有一个字符串类型的一个一个message点盖的二进制吧。Guy。投是吧,等会儿啊,消息头那是不是导错包了,看一下消息导错包了。应该导哪家包的呢?倒下啊。倒的是。Amqp,因为咱们今天用的是框架当中的amqp这种协议的,呃,Rub MQ,所以导这个包,导完这个包之后呢,这个包里面它就有。消息P,将消息体转换成字符串就可以了。
03:01
完之后呢,紧接着咱们再呃打印一下是吧,打印的话,那么自然就用这个log fo接是吧,不是log fo是lsf fo接,那就是log.in符,完了继续打印时间啊,咱们是当前时间,咱们看时间差啊,完了呢,来一个占位符逗号收到。这个叫死信队列。队列的。消息?消息是什么冒号?再来个占位符完逗号。我后面呢,再new一个date.to。是不是转成字符串啊,转成字符串格式完了之后再点上MSG消息。这个消息跟时间依然会被占位符所替换,是吧,替换掉占位符。行了,这样呢,我们就监听到消息了。就写完了这次的对这次的这么一个案例,接下来呢,我们进行一个测试啊。测试呢之前我得先起服务,起服务呢,通过这个启动类起。
04:05
来起一下,看看有没有问题啊。嗯,发现启动很成功,并没有出现任何的问题,那好,那接下来呢,我们把这个日志清理一下,我们一会儿就会,呃,通过浏览器来发消息,这个位置会打印出来。因为我们都已经设置这个日志打印了,是吧,所以呢,我们紧接着把文档上要发的这个链接,就它的链接复制到咱们的浏览器上。发送发送。好,没有任何返回值啊,因为我们并没有写返回值,所以呢很正常,我们来看一下结果是不是我们预料到的。现在目前呢,只是发出去了,并没有并没有接到啊。那么我看一下子为什么。出现什么问题啊?这儿呢?
05:01
首先呢,我们发出去一个消息,发送出一条消息给两个T队列CC,这没问题是吧,后来监听器报了一个。错误是吧,报了一个叫接收D当中。看哪里出了问题啊。完了呢,这个位置。说这个浪类型。信道,那信道引引错了呗,是吧,信道的包引错了,我们看一下。他之所以报错就是信道,你要走的是一个Java NL包,这个信道实际上应该是谁的信道,应该是rub q信道,所以说属于包,你像这了,这就对了,属于包导错了。对吧,包导错了,那么我们接下来再重新启动一下服务,再重新测试。好,这次呢,我们再把这个日志呢,再清理掉,再重新刷新一遍浏览器,刷新好来了,完了这回打日志了啊,当前时间是呃,下午的是吧,这个时间。
06:11
完之,紧接着这个时间点上呢,诶经过多少多久接到了消息呢,十秒钟看是不是十秒,18秒到28秒,对,18秒到28秒。完了还有一个40秒的还没到呢,是吧,所以我们等一下那个40秒,因为那40秒的时间有点长。完了呢,我们可以看到,呃,发消息的时间呢,是发了一条消息是吧,给两个ttf队列发的内容是CCCC是吧?完了十秒钟就已经到了。哎,没问题啊,这完之后40秒就到了,看时间啊,18秒到58秒是不是间隔多久就多久,40秒前面的小时和分钟是没有什么变化是吧?完了,这是间隔十秒,这是这俩之间间隔40秒,所以我们的延迟消息准不准确准确,哎,成功的达到了我们的最终目的。
我来说两句