我想知道简单的主题和分区topic.As之间的区别根据我的理解平衡负载,主题已经被分区,每个消息将有偏移量和消费者将确认,以确保以前的消息已经consumed.In的情况下没有分区和消费者不匹配的再平衡由卡夫卡做它有效地管理。
如果创建了多个主题而不是分区,是否会影响操作效率。
发布于 2015-01-07 22:05:02
从kafka documentation
日志中的分区有多种用途。首先,它们允许日志扩展到单台服务器所能容纳的大小。每个单独的分区必须适合托管它的服务器,但是一个主题可以有许多分区,这样它就可以处理任意数量的数据
对于任何给定的主题,拥有多个分区允许Kafka将其分布在Kafka集群中。因此,处理来自不同分区的数据的请求可以在整个集群中的多个服务器之间进行划分。此外,可以跨多个服务器复制每个分区,以最大限度地减少数据丢失。再次从文档页面
日志的分区分布在Kafka集群中的服务器上,每个服务器处理数据和共享分区的请求。每个分区都跨可配置数量的服务器进行复制,以实现容错。
因此,只有一个分区的主题不允许您使用这些灵活性。还请注意,在现实生活环境中,您可以使用不同的主题来保存不同类别的消息(尽管也可以有一个具有多个分区的单个主题,其中每个分区可以在生成时使用messgae键拥有特定类别的消息)。
我不认为创建多个主题而不是分区会对整体性能有太大影响。但是想象一下,您想要跟踪用户在站点上发布的所有tweet。然后,您可以有一个名为"User_tweet“的主题,该主题具有多个分区,以便在生成消息时,Kafka可以将数据分布在多个分区上,并且在消费者端,您只需要让一组消费者从同一主题中提取数据。相反,保留"User_tweet_1","User_tweet_2","User_tweet_3“只会在产生和消费消息的同时让事情变得复杂。
https://stackoverflow.com/questions/27816043
复制相似问题