00:03
好,下面我们来看,呃,批量消息。那我们这个批量消息啊,呃,有我们分两两类来说啊,一个是批量发送消息,一个是批量消费消息。当然我们现在啊,从前面给大家说了,呃,一到四啊,这属于我们划分的时候是按照消息的类型划分的,那么五到九就是按照对消息的操作来分的。所以我们这个批量消息啊。呃,就对消息呃进行批量发送和批量消费,我们讲这样的两点啊,首先来看呃批量发送。那么批量发送,首先我们看一下这个发送的限制啊,这个进行批量,其实呃,大家可以看一下啊,我们我们就说以前最最简单的吧。发送。大家看这个send啊,我这send这个message是吧,这send message,然后我们看一下。
01:07
你看这个send可以发送单独的message,也可以发送什么collection。是不是可以发送集合,所以它这个发送的时候啊可以啊,一次发送啊一堆。对吧。和上上进行消息发送时,可以一次发送多条消息,发送个集合,呃,这样呢,可以大大提升呃producer它的发送效率,不过需要注意以下。几点啊,第一个就我们批量发送的消息必须具有相同的。就你这一堆消息啊,它因为这一堆消息我们要将来给它放到一个,比如说list里边,你放在这一堆list里边这些消息它topic样。让发送的这个消息必须具有相同的刷盘策略。然后发送的这个消息不能。
02:03
不能是延迟消息和事物消息,就我们前面说这个延迟消息,事务消息啊,是不能作为。这个这个这个批量消息已经发送的。那这是当然,也就是说我们的普通消息和顺序消息是可以的啊,这是发送的限制。然后关于这个批量发送的大小啊,需要注意,那不是说你啊我咔嚓吧,我我我发送很多消息啊,那一次能发送多少呢?默认情况下一批呃,发送的消息总大小,它的总和啊,不能超过四兆,默认情况下是不能超四兆的。当然,你要想超过这个四兆这个值有两种解决方案。第一种解决方案就是将批量消息进行拆分。你你这批啊,这堆数据比四就是超过四兆了,比如说我里边啊1万条消息,这1万条消息。
03:02
我想一次性给他发过去,那不行,你看你当然也不是说是不行,你看你超了四兆了没有,如果没有超四兆,你可以一次性给他发过去。但如果超了四兆了怎么办呢?我可以给他分了。呃,我我挨着挨着数一下啊,看看这些,哎,只要不超四兆好啊,给他发出去一次,哎又又又搞出来一些,哎再搞出来一个小的集合,而他不超四兆啊,再给他发过去。那就这样。啊,一批一批发,分多次给他发。是吧,呃,拆分什么若干。大小,呃,若干不大于四兆的集合。消息集合啊,分多次多批次给他发。更多批次给他发。叫方案一,那我们一会儿这个代码里边啊,就给大家举这个例子。方案二是什么呢?在producer端啊,与博端修改属性,这个稍微有点麻烦。
04:00
给你两问都得修改。你发送啊,发送消息之前啊,你需要设置它的叫max message size这个属性。你博客端需要再修改,你你加载那个配置文件,这个我们大家知道是哪个是吧。还是还是。那就这样吧。啊,就我们之前见过的啊,你单的的单击的是什么,然后集群的是什么是吧,在里边设置这个属性。这个说明。这两种啊,呃,这个我们一会儿在代码里边大家看一下啊。这是我们批量发送的大小。另外还需要有一点啊,给大家说一下,就我们生产者啊,生产者发送的消息。你看。我们生产者我发送这个message是吧,这个message,这message发送过去,这个这个消息到底有多大,发送的是个什么东西,我们这样看的啊,是message是是这样一个,呃,一个一个一个实体是吧。
05:04
他并不是说把这个东西直接做了一次去的话,他给他发过去了,不是这样的。这是怎么做的呢?要把它里边数据搞出来,给它弄成一个字符串了。并不是直接将message序列化后的化后发送到网络上的,而是通过这个message。生成了一个字符串发出去的。生成一个字符串,你给它虚里哗啦发出去,那么这个字符串由四部构成。就这啊,Topic body。啊,这有个消息日志log啊,这个消息日志固定大小加20个字节,然后还有一堆什么practice practice啊,就建制对的。K啊,间字的。那么那这这一堆属性里边有谁呀?这堆属性里边比如说啊,有我们生产者他的地址,然后生产相应生产的时间啊,发送到QID,就是就是哪啊就我们。
06:09
在这。就这里边的数据啊,都是从那个属性过来的。你除了这个,除了这个topic以外,其他的数据都是从呃。这个这个这个这个叫什么。这个里边给他过来的。能明白吧,啊,所以这个东西啊,这就是我们真正发送的这个消息。那他这里边说到的,呃,不能超过四兆是指的什么,就这样诶啊这样的这些这些消息,这些消息啊,加一块。这个东西给它加一块,你不能抄四正。明白吧,是是这样一个意思啊啊,这是我们先说一下要批量。呃。
07:00
发送消息是吧,批量发送消息啊。对,这里边还有一个啊,给大家说一下这个这个消息日志啊,是个什么东西消日志啊,你也不用管它是是什么这个东西,反正。不是,也不是我们的消息。他也不是建支队的。他也不是兼职的,他就是由我们这个这个producer啊生成的一些数据。它是占20个字节,他不是坚持对它不像这些是坚持对他也不属于它,也不属于他,就是单独他要占20个字节。明白吧,这就这个东西啊,好,这是我们这个,呃。批量,呃,发送消息啊。
我来说两句