创建Kafka主题要求?

Create Kafka topic requirements?

我有可以按国家、城市分组的数据(订单)。

我可以创建超过 100 个带有国家名称的主题和十亿个带有城市名称的主题吗?

主题呈现有哪些要求?

你能展示一个好的主题用法吗?

Could I create over 100 topics with names of countries and billion topic with city names?

  1. 创建太多主题不是一个好的设计,因为它们很难维护。
  2. 国家、城市等信息不会经常更改,也不是流数据。因此,将它们存储在数据库中比将它们存储在主题中更有意义。 如果它与订单相结合,它可以使 sense 将它们存储在主题中,即订单由 countrycity 等可以在 Kafka 流中使用 map() 完成。

Could you demonstrate a good topic usage?

因为订单是流数据,新订单会被添加、更改等,你可以有一个名为 orders 的主题,其中键为 order_id,值为 Order 对象,其中 Order 对象包含 countrycity 等属性

现在,您可以使用此主题并以不同方式存储数据:

  1. 维护国家及其相应 Order 对象(或)order_id 的数据结构,如 table 或地图(持久或内存中) s 使用它你可以得到订单对象。

    请注意,由于每个国家/地区可能有很多订单,因此数据结构应该类似于国家/地区和订单列表。

  2. 很简单,就是将订单数据作为 table 直接存储到 RBDMS 中,以 order_id 作为主键并将 Order 对象映射到一个数据库 table。然后使用SQL或者ORM框架,就可以查询了。

流式 Kafka 数据(主题)也可以聚合、分组、连接,可以使用 Kafka 流放入 table(持久或内存中)等。

你可以看一些Kafka streams examples

您可能还想查看 KSQL,它允许您在 Kafka 流之上拥有 SQL。