spring-cloud-stream - IdleBetween 池未按指定提取消息
问题描述
我正在批处理模式下使用消息。我想每 250 毫秒从流中提取 8 条消息。
spring:
cloud:
stream:
kinesis:
bindings:
input:
consumer:
listenerMode: batch
idleBetweenPolls: 250
recordsLimit: 8
bindings:
input:
group: my-group
destination: stream
content-type: application/json
我已经将大约 100 条消息推送到流中,并且我启动了消费者。
根据配置,我应该每 250 毫秒提取一次消息。但是轮询器不是每 250 毫秒拉一次消息。
@StreamListener(Sink.INPUT)
public void receiveMessage(Message<List<byte[]>> messages) {
log.info("Total received messages: " + messages.getPayload().size());
}
2019-04-27 12:04:40.145 : Total received messages: 8
2019-04-27 12:04:41.604 : Total received messages: 8
2019-04-27 12:04:43.167 : Total received messages: 8
2019-04-27 12:04:44.618 : Total received messages: 8
2019-04-27 12:04:46.145 : Total received messages: 8
2019-04-27 12:04:47.775 : Total received messages: 8
2019-04-27 12:04:49.211 : Total received messages: 8
2019-04-27 12:04:50.756 : Total received messages: 8
2019-04-27 12:04:52.283 : Total received messages: 8
2019-04-27 12:04:53.817 : Total received messages: 8
我什至根本不处理任何东西。它只是日志。
每条消息之间的时间超过 250 毫秒。我有什么遗漏吗。
解决方案
250 ms 对于实际用例没有意义。也许您可以将间隔增加到 5 秒并尝试一下。
推荐阅读
- assembly - 如何在clang Intel程序集中的函数中创建私有标签?
- java - 尝试通过eclipse、java连接mysql数据库时访问被拒绝
- ios - 使用 swiftyjson 库 swift 的嵌套 Json 数据获取和追加问题
- c - C++,从“int”到位字段的隐式截断
- powershell - 如何使用powershell获取lnk文件的目标路径
- python - dynamodb 更新非规范化数据并保持一致性
- typescript - 类构造函数参数中的打字稿泛型类型
- android - NumberFlagDecimal 和 NumberFlagSigned 之间的区别
- dialog - 带有 Dialog 命令的意外令牌
- java - Spring Boot SpEL ConditionalOnExpression 检查特定属性的多个值