设计 Kafka 主题 - 许多主题与一个大主题 [英] Desigining Kafka Topics - Many Topics vs One Big Topic

查看:109
本文介绍了设计 Kafka 主题 - 许多主题与一个大主题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑到一系列不同的事件,推荐的方法是

Considering a stream of different events the recommended way would be

  • 一个包含所有事件的大主题
  • 针对不同类型活动的多个主题

哪个选项会更好?

我了解消息不在主题的同一分区中,这意味着没有顺序保证,但是在进行此操作时是否有任何其他要考虑的因素决定?

I understand that messages not being in the same partition of a topic it means there are no order guarantee, but are there any other factors to be considered when making this decision?

推荐答案

主题是一个逻辑抽象,应该包含相同类型的消息.假设您监控网站并捕获点击流事件,另一方面,您有一个数据库将其更改填充到更改日志主题中.您应该有两个不同的主题,因为点击流事件与您的数据库更改日志无关.

A topic is a logical abstraction and should contain message of the same type. Let's say, you monitor a website and capture click stream events and on the other hand you have a database that populates it's changes into a changelog topics. You should have two different topics because click stream events are not related to you database changelog.

这有很多优点:

  • 您的数据将具有不同的格式,您将需要不同的(反)序列化器来写入读取数据(使用单个主题,您将需要混合序列化器,并且在读取数据时不会获得类型安全)
  • 您将有不同的消费者应用程序,一个应用程序可能只对点击流事件感兴趣,而第二个应用程序只对数据库更改日志感兴趣,而第三个应用程序对两者都感兴趣.如果您有多个主题,应用程序一和应用程序二只订阅他们感兴趣的主题——如果您只有一个主题,应用程序一和应用程序二需要阅读所有内容并过滤他们不感兴趣的内容,增加经纪人,网络,客户端可以加载吗

这篇关于设计 Kafka 主题 - 许多主题与一个大主题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆