00:00
好,同学们,我们继续,那接下来我们要说一下我们的GS message,那么这要明白。一个消息是由消息头、消息体和消息属性三部分构成,这三个在实际编码和开发的过程当中非常重要。注意不要觉得这些理论枯燥,比方说到后面我们会讲一道题目,就是说你在消息中间间调用的时候,如何避免接口调用的密等性,那么可能就要用到消息头里面一个东东。所以说呢,希望各位同学呢,不要觉得呢,理论枯燥啊。咬咬牙,坚持下来,人都是有惰性的,过来,那么消息头来吧。有很多,那在哪体现呢?这些是些什么呢?我们先来说代码,那么来同学们请看一下这个是不是text message,这个是不是我们的一个消息,那么这个程序呢?由于大家都写过,我就不废话,大家请看哈,现在对于我们一个text message是一个字符串的一个消息,第二,Set g Ms。
01:11
同学们请看有什么?Delivery mode,优先级,Message ID,过期时间等等等等,你看目的地等等等等,还有什么是否重发等等等等,时间戳好,那么这个时候说明什么意思啊,也就是说在每一个消息的时候,它在消息头它带着一些属性,那么你可以在上面编排了以后由send方法呢来提供和执行,来请看。我们的message producer send,同学们,我在没讲课之前,我们是不是为了给大家入门简单,我们只讲的第一个发送什么消息的生产者就发送一个消息,那么我们这上面建立一个什么消息什么类型的文本的字符串的消息是不是丢进来,大家请看这个份的方法,有四种方法的重载么?对于每一条消息,你前面有set g Ms开头的一些API,那么对于S的方法,你也可以看发送什么消息再来。
02:10
把消息发送到哪再来,我们会按照这个消息要发送的过程当中伴随着一些属性。是否什么持久化优先级,Time to leave t TL,什么意思啊?是不是叫过期时间了?那么这个东东兄弟们都明白,我们在red的时候是不是也设过那么一样数据,它会有这些性能和这些特点。那么每一个。大家看一眼,如果说我现在GMS啊,全部给你讲一遍,弟兄们估计就什么睡着了,所以说我把我们日常工作中杨哥一家之言,我觉得我常用的给大家分享一下。第一个建的destination什么意思啊,是目的建,那么说白了主要就是指要么是队列,要么是主题,那么一般我们在这个上面来进行什么创建和定线,那么统计的这一批次啊。
03:06
这三条消息统一的发到队列里面,或者是我们的脱皮主题里面,那么当然如果说你要玩一些花活,那比如说。你要干什么呢?Test message,对于针对于某一条消息,你是不是也可以设置它的什么东东?Dsty nation,你看是不是可以针对某一条消息,你给他指定,在这指定也可以啊,那么说白了是什么?这个消息条有点像我们约定好的你们的提问给杨哥的面试题的提问卷要有哪些属性和内容,这是第一个,第二个delivery mode,这是什么意思啊,持久和非持久模式啊,那言下之意呢,我们到后面会讲哈,你大家看一下,那也给大家搂一眼哈,Test message.set GS delivery什么mode,那么delivery mode点你看它分成什么?Persistence和no,言下之意是持久和非持久,那说白了你们在GMS的面试题和工作当中一定会有一道面试题,就是你如就何保证消息的可靠性。第二个,你如。
04:16
如何保证消息的持久化,那么言下直线默认是持久或者是非持久,然后根据你的诉求,我们来给设置这条消息干嘛,要不要给他持久化,所以说这个属性非常重要,那么持久和非持久模式啊,有这个delivery mode,就是投送发送的这个模式啊,我丢过去的这个消息是个持久的还是个非持久的,那么如果是一条什么消息,持久性的消息应该被传送一次啊。G呢,提供者也就是MQ,我们FQMQ宕机了,该消息怎么着不会丢失啊,它会在服务器恢复之后再次传递,只要你没发过,那如果是一条飞19呢,抱歉,就传一次啊,我传完我就不管了。
05:01
你能用你最好,你不能用我不管,那么言下之意,这就意味着服务器出现了故障,消息将永远丢失。所以说持久和非持久对于消息的可靠性保证还是非常重要的。那坦白讲,你现在在微信或者发短信发给你的同学、伙伴,你肯定是不希望丢消息,那么一般持久模式还是需要掌握的。你们再来,对于消息头,我们还有第三个属性,要求给大家介绍这个叫什么消息的什么。过期时间,那么来同学们,我们来看看这个send的方法哈,你要是想图痛快,你可以把这一批次的消息都用send的方法来处理,你不想一条条的设置的话,那大家请看这是不是有一个是吗?Time to leave,那么long型,比方说我有时候可能哈需要呢,发送以后也想看看客户端收没收,那假设一定时间以内,你不爽,你不回复我,你可能会过期,那么一可以设定消息在一定时间以后干嘛会过期?默认是什么?永不过期?那说白了是active MQ,为了保证消息的高可用默认,从时间上只要你们听收过没有用过,它都是永不过期。至于说签收是什么,我们下节课再见。
06:15
那么大家请看。这些巴拉巴拉,如果它们的值等于零,则这个过去时间被设为零,表示该消息永不过期,否则send方法中的time to leave加上发送时的这些标准时间,多长时间以后,比方说你写一个十秒钟OK,没有响应,我们给它过期,那么如果发送后消息过期时间之后的消息还没有被发送到目的地,则消息干嘛背清除,那有些时候这些是需要的啊。那么假设在一些促销活动当中,哎呀,算了这么多,如果为了保证高可用,我们允许一部分,比方说10万条消息里面丢一条,那么我们认了,只要保证系统的高可用哈,那么这个是一个过期时间,那么第四个是吧,优先级,那么大家搂一眼哈,在这块我们呢,再用这个算的方法,大家请看最后一个有呃,在这有个什么?
07:13
Priority是吧,优先级,那么这个时候在消息中间见你也知道嘛,经常发个快递,普通快递和加急快递,好理解吧,那么它的优先级呢?大家漏一眼,零到九几个十个级别,那么零到四是普通,那么五到九是甲几,那么总共是零到九没有12,没有12,最高就是九基没意思,什么意思啊。不要求MQ严格按照这十个优先级发送消息,但必须保证加急的消息要先于普通的消息到达默认级别是多少?四级OK,好,那么所以说要先于普通消息,那么言下之意啊,它的意思就是说,不是说你这儿设了个九,我这儿设了个四,就一定设什么。严格按照这种顺序,还那么多消息啊,比方说这一批次有100条消息,这第一个批次啊是。
08:07
九号,第二个批次是八号,第三个批次是六号,第四个批次是默认的四号,那抱歉不见得是按照顺序98764,但是说难听点,一定要是什么,可能先发了八,但是九也先到了,那么这个时候干嘛要比四是吗要高好,那么最后一个是JS message ID,那注意啊,那么杨哥的风格呢,首先用的不多的哈,你呢没有必要去了解,那么坦白讲哈,如果你非要去查一下每一个要整懂,那最好知识都比我更细致和全面,但是呢,什么事,就好比说我们都是中国人,你不可能是什么熟读一本新华字典以后,你才除去学写字说话,也就那3650个中国常用简化字,那么所以说呢,我们先把主要的先学会,那这个我个人认为是在这些里面最重要的一个JA的什么message ID后面我们。
09:08
会用到,但什么呢?唯一识别每个消息的标识,由消息中心键产生的,那么言下之意哈,比方说我们这条消息你既可以设置也可以用它的,但是呢,每单有一条消息流水,那么这个时候请同学们请看这set GS,那么我们这GS以后有个什么message ID,那么如果假设他一般在这种分布式互联网公司的企业,它会有一种什么分布式ID创造器,调一下,他永远给你分配一个,比方说36位或者128位的,那么永不重复的一个流水号,那么你这条消息身上就挂着这条流水号带着走,那么如果到最后我们来调用的时候,我们就要去库里面去查有没有这条消息,如果有就说明这条消息已经什么用过了,那么不要再重复消费,如果没有说明这条消息是首次消费,可以使用,所以说这个message idea用在这儿,说难听点,后面我们讲一个什么消息调用的密等性,就是me。
10:08
调用调一样,不要有重复调用,就会用到这个message ID,好,那么这个呢,非常的重要,那么到后面的时候干嘛,我们呢,直接是不是也可以得到GMS,你看message ID它有它内部的一个规范,那么所以说是个唯一的ID,它不会重复,那么同学们可以以此作为一种判断的依据,当然你自己要去设定一个什么不会重复的设给它用你自己的那一套,不要用active TM自动生成那个也完全可以,只要有一个唯一识别编号即可。好那么现在我们呢,就明白了,我们的消息头干嘛第一个在这设置,或者是什么你用顺的方法来进行统一批处理。因为啊这块消息生产者,你的消息的内容是这些,那么我这一批次发送,比方说send的后面有一个方法,两个三个四个它的方法重载对吧,那么你看大家看send,如果message就是用一些默认,比方说消息的这个,呃,优先度默认都是四级,但是如果你选的是这个,那么是不是这一批次的消息就被你设置了每一个消息,假设这是三条,每三条消息,比方说我要这三条消息都要保证是什么持久化投递优先级都是八超时时间20秒,那么这个时候是不是进行了一些更加细力度化的一些投送和发送的方式啊,那么这块后面是用得到的,望务必望大家先掌握啊,消息的投送的话,那么在这块消息自身设属性,最后用send的方法推出去,那么这块要求大家了解好,这就是我们对于我们GS消息头的相关重点属性,这五大属性的一个介绍。
11:51
那说白了,就像一个豹纹,一过来一包看,那么我们至少先要明白它有这个属性,投到哪,是持久还是非持久,过期时间默认是什么?注意永不过期,那么它的优先级默认是多少?四级最后它是什么?一条流水一样,每一条消息自身有个ID识别码,Message ID好,那么消息的第一部分消息头就给大家先介绍到这儿。
我来说两句