訊息(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>