阿里雲DTS 訂閱資料服務(待續)

2021-08-20 09:21:38 字數 2701 閱讀 8087

服務id:rds例項的ip:port

庫名:這條變更記錄對應的表所在的資料庫的庫名

表名:這條變更記錄對應的表的表名

變更型別:這條變更記錄的變更型別,包括:update,delete,insert,replace,begin,commit,ddl,dml,heartbeat

位點:這條變更記錄在binlog中的位點,格式為binlog_file_offset@binlog_file_id,

binlog_file_id為binlog檔名的字尾,binlog_file_offset為這條binlog檔案中的偏移量

時間戳:這條變更記錄寫入到binlog檔案中時的時間戳

欄位名稱:這條變更記錄對應的每個欄位的名稱

字段型別:這條變更記錄對應的每個欄位的資料型別

字段編碼:這條變更記錄對應的字符集編碼

前映象:這條變更記錄之前的各個欄位的值。對於insert操作,沒有前映象值

後映象:這條變更記錄變更之後的各個欄位的值。對於delete操作,沒有後映象值

update操作,前映象和後映象都有值

ddl、dml操作,只有字段詳情,沒有欄位名稱、字段型別、字段編碼、前映象及後映象幾個字段

create table jiangliutest(sn bigint auto_increment,data varchar(500),primary key(sn)) auto_increment = 1000

regioncontex介面:用於登入阿里雲

setaccesskey(accesskey)

setsecret(accesskeysecret)

setusepubliclp(usepubliclp)

這個不管

clusterclient介面定義:集群客戶端

void addconcurrentlistener(clusterlistener arg0)

新增下游監聽者,監聽者加入到乙個clusterclient中,才可以訂閱通道中的增量資料。

引數clusterlistener arg0 為類clusterlistener的物件。

void askforguid(string arg0)

請求某個訂閱通道的增量資料,引數string arg0為訂閱通道的id。

list getconcurrentlisteners()

獲取這個clusterclient中的監聽者列表,介面返回型別為list

void start()

啟動sdk客戶端,開始訂閱增量資料。

void stop()

停止sdk客戶端,停止訂閱增量資料。由於sdk中拉取資料和回掉notify的是同乙個執行緒執行的,如果

notify的消費**中有訊號不可打斷的功能時,那麼stop函式可能不能正常關閉掉客戶端。

clusterlistener介面:

void notify(list arg0)

這個函式主要用於定義增量資料的消費,但sdk接受到資料時,會通過notify通知clusterlistener

消費資料。例如示例demo的消費方式,就是將訂閱資料列印到螢幕上。

這個函式輸入引數型別為:list,其中clustermessage為訂閱資料儲存的結構物件

clustermessage介面定義:

每個clustermessage儲存rds中的乙個事務的資料記錄,事務中的每條記錄通過record儲存,本小結

介紹clustermessage的主要介面函式

record getrecord()

這個介面從clustermessage中獲取一條變更記錄。這個變更記錄表示rds binlog檔案中的每一條記錄,

例如begin,commit,update,insert等。

void ackasconsumed

為了簡化下游sdk程序容災,資料訂閱服務端支援sdk的消費位點儲存,當下游sdk異常宕機並重啟後,會

自動從上次異常退出的最後乙個消費位點繼續訂閱並消費資料。

在message消費完成後,需要呼叫這個介面向資料傳輸服務端匯報乙個ack,通知服務端更新下游sdk

的消費位點,保證sdk異常重啟後消費資料的完整性。

record介面定義:

record代表訂閱的rds binlog中的每條記錄,例如begin,commit,update等

string getattribute(string key)

這個函式可以獲取record中主要的一些屬性,傳入引數位屬性名,返回這個屬性的值

record介面

string getattribute(string key)

獲取record中主要的一些屬性值,傳入引數位屬性名,返回這個屬性的值。

可以呼叫這個函式獲取屬性值的屬性名及對應的屬性值如下表:

record_id

instance

source_type

source_category

timestamp

checkpoint

record_type

db table_name

record_recording

primary

fields_enc

阿里雲伺服器如何連線阿里雲資料庫

環境 阿里雲ubuntu伺服器 阿里雲rds資料庫 問題 如何在阿里雲伺服器的終端使用shell命令連線rds雲資料庫 解決方法 1.阿里雲伺服器安裝mysql sudo apt get install mysql server 如果出現unable to locate package mysql ...

觀點 雲大資料服務一定是終極形態嗎?

n 企業需要大資料能力,但獲取這一能力的途徑是否全部 於雲?雲計算和大資料都很重要,雲大資料服務一定是終極形態嗎?n n 如今,即便是傳統企業也應該意識到了雲計算和大資料的重要性,雲是趨勢,但基於雲的大資料服務是否就是唯一終極形態呢?過去,國外的技術發展趨勢總會在國內得到驗證,比如hadoop,最早...

觀點 雲大資料服務一定是終極形態嗎?

企業需要大資料能力,但獲取這一能力的途徑是否全部 於雲?雲計算和大資料都很重要,雲大資料服務一定是終極形態嗎?如今,即便是傳統企業也應該意識到了雲計算和大資料的重要性,雲是趨勢,但基於雲的大資料服務是否就是唯一終極形態呢?過去,國外的技術發展趨勢總會在國內得到驗證,比如hadoop,最早是根據谷歌發...