訊息(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版本訊息。
Tablestore Java SDK(訊息模型已經合入到SDK中)
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>tablestore</artifactId>
<version>4.12.1</version>
</dependency>
如果使用了4.12.1之前SDK,則需要單獨引用以下依賴。
<dependency>
<groupId>com.aliyun.openservices.tablestore</groupId>
<artifactId>Timeline</artifactId>
<version>2.0.0</version>
</dependency>