00:00
前面呢,我们使用rabbit来测试给rabbit MQ发送和接收消息,而在实际开发中呢,我们需要一些监听场景,比如我们之前举的例子有两个系统,订单系统和我们这个库存系统,那为了节物期间呢,他们两个数据交互都是通过消息队列,某一个人下了单以后,将他的订单信息放在我们消息队列中,库存系统呢,要实时的监听这个消息队列里边的内容,一旦呢有新的订单进来,那么库存系统就要进行库存相关的操作。那我们这个监听怎么写呢?Spring为了简化我们开发,哎,给我们引入了相关的注解,比如呢,我们来举一个例子,我来写一个book service。Book service,这个book service呢,我们就来监听来自于我们消息队列里边的book相关的内容来,我怎么写呢?比如我写一个方法public world,哎,我呢就叫receive,好,在这个方法里边呢,哎,我们要收到book的内容,所以说呢,我在这个方法的参数上,我来写一个book,但是呢,我们这个方法是通过接听消息队列来内容以后来调用的,那我们呢,就可以来写一个注解叫rabbit listen,诶,我们来监听rabbit MQ的,那监听哪个消息队列呢,我们可以来写一个这个quis呢,它是一个数组的方式,我们可以监听多个消息队列,那么我们就来监听我们之前的,比如at硅谷news啊,就来监定这个消息队列,第2NEWS,只要这个消息队列里边有内容进来,那这个方法呢,就会被调用我们来输出一下啊,我们收到。
01:47
消息,这个消息的内容呢?来打印一下book,好,要让这个listener起作用,我们一定要开启基于注解的模式,好,那我们在这呢,只需要一个注解叫A。
02:03
Rabbit好,我们开启开启开启基于注解的啊rabbit MQ。好,那么有了这两个注解的配合,好,我们把它呢,写在这第六步。他加我们这个rabbit listener来监听消息队列里边的内容。监听。消息队列的内容好,我呢就来启动一下我们这个应用来测试一下来,我来运行起来。只要有不可信息来,我们就会收到,诶我们一启动呢,就收到了一个消息,叫三国演义罗贯中,这是由于我们上一节课测试的时候给里边发的消息,好,我们重新来发一个,来到这个测试类里边,我们呢把发布一个新的消息,我们就叫红楼梦,红楼梦好。
03:13
我们就叫曹雪芹,好,我来发布一下这个消息,我们来看能不能收到运行。好,我们这个单元测试呢,它在这,诶当我们把这个消息发送成功了,来看主程序的这个控制台,诶我们已经收到消息,红楼梦曹雪芹没问题,这呢就是我们来进行消息监听,来收到消息,只要消息队列里边有,我们都能收到,当然这个呢,我们是直接将消息返修列化成不可对象,如果我们有一些定制的消息,还想要消息头等等,比如我来receive一个。Receive好,RECEIVE02,我们呢,也可以在这个位置来写上message,诶我们来写上这个message类型,这个message呢,大家注意就是我们这个。
04:08
AMQP扣,哎是它那写上message类型以后呢,我们就可以得到消息头了,比如我们来写一个贝他listen,好来监听另外一个队列,来监听at硅谷,来监听这个队列,我们写的这个message参数,它里边呢,我们点get,哎,我们看既有get body,我们消息的内容,还有我们这个out.get message properties,那么这个消息的一些头信息我们来可以启动重新尝试一下,好来到这个主程序啊,重新启动来看at特硅谷这个队列里边的内容,At特硅谷呢,现在默认已经有两个内容了,我们启动的时候呢,应该都能收到,来看一下,诶,我们启动的时候收到了一个呢,这个消息内容,这个字节数组打印出了这个对象,然后呢,消息的头信息在这也有来另外一个的字节内容对象。
05:08
和小头信息在这儿呢,都有,这是我们两种收消息的模式。
我来说两句