一、批量发送消息
1、批量发送消息要求
参考官方文档:http://rocketmq.apache.org/docs/batch-example/
① 不能是延迟消息
② 有相同的 Topic 和 waitStoreMsgOK(默认是 true,消息发送时,是否等待消息存储完成后再返回)
③ 消息总大小不超过 1MB
2、批量发送(消息总大小不超过 1 MB)
3、批量发送(消息总大小超过了 1 MB)
不能抱着侥幸心理,万一消息总大小超过 1 MB呢?我们可以通过筛选消息列表实现,循环分批发送。
① 拆分列表类
② 批量发送
二、筛选消息
1、筛选方式
① 简单场景:通过 tag(Topic的下一级)筛选;
② 复杂场景:通过简单 SQL 筛选
2、tag 筛选
如果是订阅该主题下的所有tag,则tag使用*;如果需要指定订阅该主题下的某些tag,则使用||分割,例如tag1||tag2||tag3。
使用者将收到包含 TAGA 或 TAGB 或 TAGC 的消息。 但是限制是,一条消息只能有一个标签,这可能不适用于复杂的情况。
3、SQL 筛选
在发送消息时,我们可以在消息中增加额外的属性,在消息接收时就可以根据这些额外的属性进行过滤。
通过 putUserProperty 来设置,如下
消费者可以根据 属性名 a 的范围来筛选
SQL 基本语法:
① 数值比较,如 >,>=,
② 字符比较,如 =,<>,IN;
③ IS NUL L或 IS NOT NULL ;
④ 逻辑 AND,OR,NOT,
常量类型:
① 数字,例如 123、3.1415;
② 字符(如 “abc”)必须用单引号引起来;
③ NULL,特殊常数;
④ 布尔,TRUE 或 FALSE ;
欢迎关注 @Python 大星 ,一个会点 Python 的 Java 程序员。如果你有更好的想法,欢迎留言,一起探讨,想说你就说啊!后面继续分享 Java 的相关开发,人少就散了吧!@Python 大星
@Python 大星 | 文