批量引号_RcoketMQ 批量发送和消息过滤
一、批量發送消息
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 大星 | 文
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的批量引号_RcoketMQ 批量发送和消息过滤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php连接数据库返回数据类型,php从数
- 下一篇: UML类图基础说明