SDK接口介绍
SDK中定义了多种类对象,本小节简单介绍SDK的这些类的接口定义。
- SubscribeContext接口定义
表1 SubscribeContext接口定义 函数名称
说明
setDomainName(String domainName)
设置用户名。
参数为创建所需数据订阅任务的IAM主账号名。
setUserId(String userId)
用户ID。
登录控制台之后,单击右上角“账户名 > 我的凭证 > 用户ID”,复制用户ID即可,主账号或子账号ID。
setPassword(String password)
设置用户密码。
参数为创建所需数据订阅任务的IAM主账号或子账号密码。
setIp(String ip)
设置订阅通道的IP。
在数据订阅页面,选择指定订阅任务,单击任务名称,在基本信息页签下,获取订阅实例信息的内部IP即可。
- ClusterClient接口定义
表2 ClusterClient接口定义 函数名称
说明
void addClusterListener(ClusterListener var1)
添加下游监听者。监听者加入到一个ClusterClient中,才可以订阅订阅通道中的增量数据。
参数ClusterListener arg0 为类ClusterListener的对象。
void start()
启动SDK客户端,开始订阅增量数据。
void stop()
停止订阅增量数据。
- ClusterListener接口定义
- ClusterMessage接口定义
- Record接口定义
Record代表订阅的RDS的binlog文件中的每条记录,例如begin,commit,update等。
表5 Record接口定义 函数名称
说明
String getAttribute(final String key)
该函数可以获取Record中主要的一些属性值。传入参数为属性名,返回这个属性的值。
可以调用这个函数获取的属性名及对应的属性值如表6所示。
Type getOpt()
获取这条记录的变更类型,包括: insert、delete、update、replace、ddl、begin、commit、heartbeat。
String getCheckpoint()
获取这条变更记录在binlog中的位点,返回的位点格式为:binlog_offset@binlog_fid。
其中binlog_offset为变更记录在binlog文件中的偏移量,binlog_fid为binlog文件的数字后缀,例如binlog文件名为mysql-bin.00092,那么binlog_fid为92。
int getFieldCount()
获取这条变更记录的字段Field的个数。
List <Field> getFieldList()
该函数返回结果的数据类型为List <Field>。
List <Field> 包含了这条变更记录对应表的所有字段的定义及变更前后的镜像值,Field对象的定义详见表7。
表6 属性信息 key
说明
record_id
这条Record的ID,这个ID在订阅过程中不保证递增。
instance
这条Record对应的数据库实例的连接地址,格式为:ip:port。
source_type
这条Record对应数据库实例的引擎类型,目前只支持MySQL。
source_category
这条Record的类型,目前只支持full_recorded。
timestamp
这条Record写入binlog的时间,这个时间同时也是这条SQL在RDS中执行的时间。
checkpoint
这条Record对应的binlog文件的位点,格式为:file_offset@file_name,file_name为binlog文件的数字后缀。
record_type
这条Record对应的操作类型,主要取值包括:insert/update/delete/replace/ddl/begin/commit/heartbeat。
db
这条Record更新对应的数据库名。
table_name
这条Record更新表的表名。
record_recording
这条Record对应的编码。
seqno
数据位点,DRS做位点的时候使用的。
fragno
保留字段,以前判断是否为事务分片使用,现在无意义。
isLastFrag
保留字段,以前判断是否为事务最后一个记录,现在无意义。
- Field接口定义
Field类定义了每个字段的编码、类型、字段名、字段值以及是否为主键等属性,Field类的各个接口定义如表7所示。