sdk接口介绍-凯发k8国际娱乐官网入口
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接口定义
表3 clusterlistener接口定义 函数名称
说明
void notify(list
var1) 该函数主要用于定义增量数据的消费。当sdk接收到数据时,会通过notify通知clusterlistner消费数据。例如的消费方式,就是将订阅数据打印到屏幕上。
该函数输入参数类型为:list
, 其中clustermessage为订阅数据存储的结构对象,具体定义详见表4。 - clustermessage接口定义
每个clustermessage保存rds中的一个事务的数据记录,事务中的每条记录通过record保存。
表4 clustermessage接口定义 函数名称
说明
record getrecord()
该接口从clustermessage中获取一条变更记录。这个变更记录表示rds的binlog文件中的每一条记录,例如begin,commit,update,insert等。
- 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
getfieldlist() 该函数返回结果的数据类型为list
。 list
包含了这条变更记录对应表的所有字段的定义及变更前后的镜像值,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所示。
表7 field接口定义 函数名称
说明
string getencoding()
获取该字段值的编码格式。
string getfieldname()
获取该字段的名称。
type gettype()
获取该字段的数据类型,type的定义具体参见字段类型定义。
bytestring getvalue()
获取该字段的值,返回类型为bytestring,当值为空时,返回null。
boolean isprimary()
判断该字段是否是表的主键列,如果是返回true,否则返回false。
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨