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