阿里云DTS-订阅数据服务(待续)

查看订阅数据

服务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

  1. RegionContex接口:用于登录阿里云
    setAccessKey(accessKey)
    setSecret(AccessKeySecret)
    setUsePubliclp(usePubliclp)
    这个不管
  2. 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函数可能不能正常关闭掉客户端。

  3. ClusterListener接口:
    void notify(List arg0)
    这个函数主要用于定义增量数据的消费,但SDK接受到数据时,会通过notify通知ClusterListener
    消费数据。例如示例demo的消费方式,就是将订阅数据打印到屏幕上。
    这个函数输入参数类型为:List,其中ClusterMessage为订阅数据存储的结构对象

  4. ClusterMessage接口定义:
    每个ClusterMessage保存RDS中的一个事务的数据记录,事务中的每条记录通过Record保存,本小结
    介绍ClusterMessage的主要接口函数
    Record getRecord()
    这个接口从ClusterMessage中获取一条变更记录。这个变更记录表示RDS binlog文件中的每一条记录,
    例如begin,commit,update,insert等。
    void ackAsConsumed
    为了简化下游SDK进程容灾,数据订阅服务端支持SDK的消费位点保存,当下游SDK异常宕机并重启后,会
    自动从上次异常退出的最后一个消费位点继续订阅并消费数据。
    在message消费完成后,需要调用这个接口向数据传输服务端汇报一个ACK,通知服务端更新下游SDK
    的消费位点,保证SDK异常重启后消费数据的完整性。
  5. 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

你可能感兴趣的:(DTS)