apache-kafka - 在 Kafka 中收集用户活动?
问题描述
我希望提供一种快速获取用户可用性状态的能力。
它必须以最快的速度从存储中读取数据。
因此我选择了 Redis 存储来存储每个用户的可用状态。
因此,除此之外,我还需要存储有关可用用户的更多扩展信息,例如区域、登录时间等。
为此,我得到了一个存储这些数据的 Kafka。
问题是,如何同步 Kafka 和 Redis?
应该是哪个顺序,先在Kafka中存储在线用户,然后下沉到Redis?
其次是存储在 Redis 中,异步存储在 Kafka 中。
我担心 Kafka 和 Redis 之间的接收器操作延迟。
解决方案
正如我从问题中了解到的那样,您只想在 Redis 中存储用户和用户状态,并在 Kafka 上完成配置文件。
我不确定选择 Kafka 作为所有数据的主要来源的原因。此外,您打算如何使用存储在那里的数据。
如果 Kafka 中的数据存储对您来说真的很重要,那么我建议您先更新您的主数据库(Kafka 或任何),然后再更新缓存。
在这种情况下,您需要对 Kafka 生产者执行同步操作,一旦成功,更新您的缓存。
由于您的 readd 操作仅来自 redis - 性能不会受到影响。
但是,如果与异步相比,选择同步生产者可能会因为确认而增加一点开销。
推荐阅读
- python - 如何基于一个数据流尽可能快地进行 6 次计算?
- .net - 从引用其他 .NET 类的 .NET 托管代码创建 COM 对象
- docker - docker run hello-world 在 eval $(minikube docker-env) 之后不工作
- excel - 有没有办法导出excel文档中所有链接的列表
- apply - 使用 Dataframe.apply() 时出现错误:“缺少 1 个必需的位置参数:'row'”
- php - PHP Amp\Mysql 异步比本地阻塞 PDO 慢?
- java - 如何等待startActivityForResult在android java中继续下一行
- python - 绘制熊猫与 matplotlib
- angular - 如何使用 MatFormFieldHanress 在自定义 MatFormFieldControl 实现中触发“onContainerClick”?
- gitlab - 如何从 Gitlab CI/CD 中的其他项目中获取文件以创建公共页面网站?