首页 > 解决方案 > 在 Kafka 中收集用户活动?

问题描述

我希望提供一种快速获取用户可用性状态的能力。

它必须以最快的速度从存储中读取数据。

因此我选择了 Redis 存储来存储每个用户的可用状态。

因此,除此之外,我还需要存储有关可用用户的更多扩展信息,例如区域、登录时间等。

为此,我得到了一个存储这些数据的 Kafka。

问题是,如何同步 Kafka 和 Redis?

应该是哪个顺序,先在Kafka中存储在线用户,然后下沉到Redis?

其次是存储在 Redis 中,异步存储在 Kafka 中。

我担心 Kafka 和 Redis 之间的接收器操作延迟。

标签: apache-kafkaredis

解决方案


正如我从问题中了解到的那样,您只想在 Redis 中存储用户和用户状态,并在 Kafka 上完成配置文件。

我不确定选择 Kafka 作为所有数据的主要来源的原因。此外,您打算如何使用存储在那里的数据。

  • 如果 Kafka 中的数据存储对您来说真的很重要,那么我建议您先更新您的主数据库(Kafka 或任何),然后再更新缓存。

  • 在这种情况下,您需要对 Kafka 生产者执行同步操作,一旦成功,更新您的缓存。

  • 由于您的 readd 操作仅来自 redis - 性能不会受到影响。

  • 但是,如果与异步相比,选择同步生产者可能会因为确认而增加一点开销。


推荐阅读