apache-kafka - Redis / Kafka - 为什么流消费者被阻止?
问题描述
Kafka 流/redis 流是否适合反应式架构?我问这个主要是因为 redis 和 kafka 在使用消息时似乎都在阻塞线程。
这背后有什么原因吗?我希望我可以通过一些回调读取消息 - 所以当消息像发布/订阅一样以反应方式传递时执行。不是通过阻塞线程。
解决方案
Kafka 客户端相对较低级别,“好”的地方在于:它为您提供了很大的灵活性,您何时(以及在哪个线程中)进行记录处理。最后,要接收记录,需要有人阻止(因为实际读取是一遍又一遍地发送获取请求)。被阻塞的线程是“主要业务”线程还是某个侧 i/o 专用线程将取决于开发人员的选择。
您可能会查看更高级别的产品,例如 Spring-Kafka 或 Kafka Stream API / Kafka Connect 框架,它们提供“更胖”的控制反转容器,有效地回答了上述问题。
推荐阅读
- json - Dancer2 对服务器上的所有内容进行字符串化,但不在本地
- c++ - 了解运算符
- spring - 如何使用 Spring Boot 禁用 Redis 缓存?
- reactjs - 如何设置 react-native-sectioned-multi-select 样式?
- firebase - Firebase 函数 - admin.firestore() get() 在本地服务上引发身份验证错误
- r - 使用 dplyr vs base 过滤数据的不同结果
- android - 如何在 Android 上强制 chromium 发送凭据?
- java - 如何从列表中制作迭代器
> 收藏? - scala - 将元组值分配给全局变量
- python - 在 kivy 应用程序中实现加载弹出窗口的正确方法