查看订阅数据
服务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