简介
用户通过设备消息通道SDK可以方便的接入设备消息通道, 在消息通道SDK中 封装了对接口返回码的处理,
比如: 70101(consumer不存在),70120(超时回滚)等等. 使用户只需要关心消息的处理,而不必要关心和消息通道的交互流程.
Demo项目
前提条件
- 安装IDE,可以使用 IntelliJ IDEA 或者 Eclipse.
- 下载SDK包
- SDK包中包含jar包和对应demo
这里可以下载demo, demo是maven构建的,使用Eclipse或Idea 导入, 导入之后, 项目如下:
此时项目会报错, 因为还没有导入 SDK的jar 包,把SDK导入即可. 详细接入操作见: 消息通道SDK接入
Demo类功能介绍
目前的demo 包括: 简单读取, 多线程处理消息等.
功能 | 类 | |
---|---|---|
简单读取 | ReadCommitMessagePatternMain | |
多线程处理消息 | MultiThreadConsumerMessageMain | |
多分区读取消息 | MuiltiPartitionReadCommitMessagePatternMain |
配置Demo
在运行前, 需要对demo进行简单的配置. 主要是用户信息的配置. 把下边的变量设置为你自己的appKey和appSecret .
private static String appKey = "";
private static String appSecret = "";
运行Demo
执行完配置DEMO后, 就可以运行demo了, 直接运行即可.
换group
在类中有一个group变量, private static String group = "group1"; 可以把group1 换成 group2,group3, group4, group5中的任意一个,体验下组与组之前的隔离功能.
demo代码介绍
在init方法中:
public static void init() {
// 开放平台的url
String path = "https://open.ys7.com";
// 设置你的appkey,appSecret,group
StandardConsumerMessage consumerMessage = new StandardConsumerMessage(path, appKey, appSecret, group);
// 设置调用接口的间隔时间,ms
consumerMessage.setConsumeIntervalTime(200);
// 设置消费消息的回调接口,建议把消息放入本地队列,不要在回调函数里做业务处理.
consumerMessage.setConsumerCallBack(new ConsumerCallBack() {
@Override
public void consumerCall(List<Object> msg) {
if (msg.size() > 100) {
// 消息太多,只打印前100个
// log.info("msgSize:{},msg:{}", msg.size(), msg.subList(0, 100));
} else {
// log.info("msgSize:{},msg:{}", msg.size(), msg);
}
for (Object object : msg) {
......//业务处理
}
}
});
consumerMessage.initClient();
}
在上边的代码中, 一个 StandardConsumerMessage 代表一个消费者, 去读取消息. StandardConsumerMessage 是异步去读取消息的, 收到消息时回调 setConsumerCallBack 方法, 在这个方法中执行自己的业务处理.