创建Kafka主题要求?

时间:2020-06-14 23:27:38

标签: apache-kafka kafka-consumer-api

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

我可以创建100多个以国家/地区名称命名的主题,还是十亿个以城市名称作为标题的主题?

主题呈现有哪些要求?

您能演示一个很好的主题用法吗?

1 个答案:

答案 0 :(得分:-1)

我可以创建100多个国家/地区和十亿个主题 带有城市名称的主题?

  1. 创建太多主题不是一个好的设计,因为很难维护它们。
  2. 国家,城市等信息不会经常更改,也不会流式传输数据。因此,将它们存储在数据库中比将它们存储在主题中更有意义。 如果将其与订单组合,则可以使感觉将其存储在主题中,即订单可以通过 country city 等进行键入map()在Kafka信息流中。

您能演示一个很好的主题用法吗?

由于订单是流数据,因此将添加,更改新订单,因此可以有一个名为orders的主题,其中的键将为order_id,而值将为{{1} }对象,其中Order对象包含诸如Ordercountry等属性。

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

  1. 维护该国家及其对应的city对象(或)Order的数据结构,例如表格或地图(永久性或内存中),您可以使用该结构来获取订单对象。

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

  2. 非常简单,就是将订单数据直接存储到RBDMS中作为表,其中以order_id作为主键,并将order_id对象映射到数据库表。然后使用SQL或ORM框架,可以查询它们。

流式Kafka数据(主题)还可以使用Kafka流进行汇总,分组,合并,可以放在表(持久性或内存中)等中。

您可以看看一些Kafka streams examples

您可能还想看看KSQL,它使您可以在Kafka流上使用SQL。