消息模型
消息(Timeline)模型是針對消息數(shù)據(jù)場景所設(shè)計(jì)的,能夠滿足消息數(shù)據(jù)場景對消息保序、海量消息存儲、實(shí)時同步的業(yè)務(wù)需求,同時支持全文檢索與多維度組合查詢。適用于IM、Feed流等消息場景。
模型結(jié)構(gòu)
消息模型以簡單為設(shè)計(jì)目標(biāo),核心模塊構(gòu)成比較清晰明了。消息模型盡量提升使用的自由度,讓您能夠根據(jù)自身場景需求選擇更為合適的實(shí)現(xiàn)。消息模型的架構(gòu)主要包括:
Store:Timeline存儲庫,類似數(shù)據(jù)庫的表的概念。
Identifier:用于區(qū)分Timeline的唯一標(biāo)識。
Meta:用于描述Timeline的元數(shù)據(jù),元數(shù)據(jù)描述采用free-schema結(jié)構(gòu),可自由包含任意列。
Queue:一個Timeline內(nèi)所有Message存儲在Queue內(nèi)。
SequenceId:Queue中消息體的序列號,需保證遞增、唯一。模型支持自增列、自定義兩種實(shí)現(xiàn)模式。
Message:Timeline內(nèi)傳遞的消息體,是一個free-schema的結(jié)構(gòu),可自由包含任意列。
Index:包含Meta Index和Message Index,可對Meta或Message內(nèi)的任意列自定義索引,提供靈活的多條件組合查詢和搜索。
功能介紹
消息模型支持以下功能。
支持Meta、消息的基本管理(數(shù)據(jù)的CRUD)。
支持Meta、消息的多維組合查詢、全文檢索。
支持SequenceId的兩種設(shè)置:自增列、手動設(shè)置。
支持多列的Timeline Identifier。
兼容Timeline 1.X模型,提供的TimelineMessageForV1樣例可直接讀寫V1版本消息。
注意事項(xiàng)
當(dāng)您在Maven項(xiàng)目中引用Tablestore Java SDK的依賴時,需根據(jù)版本號進(jìn)行如下設(shè)置。
4.12.1(含)之后的SDK(已合入消息模型到SDK中),只需要引用Tablestore依賴。
<dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>tablestore</artifactId> <version>4.12.1</version> </dependency>
4.12.1之前的SDK,引用Tablestore依賴后,還需要單獨(dú)引用Timeline依賴。
<dependency> <groupId>com.aliyun.openservices.tablestore</groupId> <artifactId>Timeline</artifactId> <version>2.0.0</version> </dependency>