apache-kafka - vertx kafka 客户端使用消息并按顺序执行 REST api 调用
问题描述
protected void consume(KafkaReadStream<String, JsonObject> consumer) {
consumer.handler(record -> {
// call a REST API to write a value to DB
doRestApi(record); // such as client.postAbs(...).send(...)
});
}
例如,主题中的记录,例如,
{"createtime":"2021-10-29 00:03:49.0"}
{"createtime":"2021-10-29 00:03:50.0"}
{"createtime":"2021-10-29 00:03:56.0"}
...
{"createtime":"2021-10-29 00:13:56.0"}
当记录{"createtime":"2021-10-29 00:03:49.0"}
到来时,处理程序执行了一个 REST api 调用来保存createtime=2021-10-29 00:03:49.0
到 mongodb。
当第二个记录到来时,createtime=2021-10-29 00:03:50.0
将被保存。然后将保存
第三条记录。
等等。我希望这些消息能够按顺序处理。因此,最后一条消息中的创建时间将是 DB 中的最终值。createtime=2021-10-29 00:03:56.0
2021-10-29 00:13:56.0
当我运行我的代码时,结果值是随机的,前一个值(例如2021-10-29 00:03:56.0
)可能是最终值。我怎样才能让处理程序按顺序运行?
解决方案
推荐阅读
- php - 如何使用php在mongodb中动态给出数据库名称
- reactjs - React Native AsyncStorage:获取令牌并在重构的 API 获取中使用它
- python - 如何遍历字典并对其元素进行操作?
- python - string.join(str_list, ''") 如何在 Python 中实现?
- amazon-cognito - 我可以手动覆盖 Amazon Cognito 的锁定吗?
- go - 从 HandlerFunc 返回错误 - 需要一个新类型
- mysql - MATCH AGAINST 获得以正确顺序匹配多个单词的结果
- elasticsearch - Elasticsearch 用于不同网站上的重复数据
- javascript - node.js 中的导出模块
- spring-boot - 如何在 Spring Boot 2.0.5 应用程序中启用 HttpClient 线路日志记录?