KinesisMessageHandler同步支持情况及setSync方法作用问询
KinesisMessageHandler相关问题解答
1. 构造方法入参为AmazonKinesisAsync是否代表不支持同步操作?
不是,这是对AWS SDK接口设计的常见误解:
- AWS SDK for Java 1.x版本中,
AmazonKinesisAsync接口本身继承自AmazonKinesis同步接口,所有异步客户端实现类天然包含同步API的完整实现 - 构造方法只接收
AmazonKinesisAsync类型入参,是为了兼容同步、异步两种调用模式,避免重复提供多个不同入参的构造方法,不代表只能用异步操作。你传入的异步客户端实例本身就支持调用同步方法,所以KinesisMessageHandler完全可以执行同步操作。
2. setSync方法的具体作用是什么?
这个方法是用来切换KinesisMessageHandler处理消息时调用Kinesis API的执行模式:
- 传入
true开启同步模式:handler调用Kinesis API时会使用同步方法,当前线程会阻塞直到收到AWS服务端的响应结果、或者请求超时抛出异常,处理结果可直接在当前调用链路获取 - 传入
false(默认值)开启异步模式:handler调用Kinesis API时会使用异步非阻塞方法,提交请求后立即返回,请求执行结果会通过Future或者回调机制处理,不会阻塞当前业务线程 - 你可以根据业务场景的吞吐量、延迟要求选择对应模式:对耗时敏感、吞吐量要求高的场景选异步模式,需要严格保证请求结果同步感知的场景选同步模式。
内容的提问来源于stack exchange,提问作者LBPS
相关产品推荐
相关产品推荐

