Xiaomi Galaxy Talos Book

Step-By-Step 使用SDK


这个章节是针对Demo程序做一些更详细的说明,请用户对照Demo的示例程序阅读下面的说明

Prerequisite

  1. 小米生态云查看用户管理页面,可看到所属用户组。点击用户组标签,查看该用户组的用户密钥:一组accessKeyaccessSecret

  2. 在项目的pom中加入Talos SDK的依赖,坐标如下:

       <groupId>com.xiaomi.infra.galaxy</groupId>
       <artifactId>galaxy-talos-sdk</artifactId>
       <version>2.1.6</version>
    

使用TalosProducer

  1. 配置server地址:使用配置文件构造TalosProducerConfig,并配置Talos的service uri,我们提供http和https,具体URI见[集群信息];很多配置是可Configurable的,用户可以根据后续的说明针对自己业务数据的情况进行配置。

  2. 构造Credential:使用生态云提供的accessKey和accessSecret构造合法的Credential,只有合法的Credential才能被Authentication success

  3. 获取TopicTalosResourceName:创建/获取要写入数据的Topic,前面提到,数据的读写都需要TopicTalosResourceName这个唯一标识,对应于Demo中的createOrGetTopic()函数,使用TalosAdmin的describeTopic接口,目的是获得TopicTalosResourceName。

  4. 实现UserMessageCallback接口:实现这个接口,处理消息成功发送与失败,请注意,一般来讲producer声明为static,在回调的onError函数中使用它retry发送失败的消息

  5. 发送数据:实例化TalosProducer,调用发送消息接口 addUserMessage(List messageList)

使用TalosConsumer

  1. 同Producer 1/2/3 step:与TalosProducer一样,先配置server地址,构造合法的Credential,并获取TopicTalosResourceName;这里要注意的是,consumer只使用describeTopic接口获取Topic信息,而producer中会捕获异常,考虑到Topic不存在,producer会去创建这个Topic;对于consumer,如果Topic不存在,就不需要创建了,无法消费数据直接退出;

  2. 实现MessageProcessor和MessageProcessorFactory接口:实现这个接口,处理从server读取的数据

  3. 读取数据:实例化TalosConsumer就可以了,它会自动读取数据,并处理rebalance和记录offset等事情

使用TalosAdmin

  1. 同Producer 1/2/3 step:配置server地址,构造Credential;

  2. 操作Topic:createTopic/describeTopic 接口使用的是topicName,其他的接口像changeTopicAttribute/deleteTopic/addPartitionNumber等都使用topicTalosResourceName