首页 > 其他分享 >【kafka】多节点服务监听同个topic,但消息始终只落在一个服务上

【kafka】多节点服务监听同个topic,但消息始终只落在一个服务上

时间:2024-01-20 23:55:39浏览次数:23  
标签:只落 消费 服务 分区 同个 kafka topic 数据

问题描述

如题,就是同一个topic,同一个服务,起了3个节点。
预期就是这三个节点(同个镜像),可以相对均衡地消费这个topic上的数据,以提升这个消费的速度。

但让人迷惑的事情就是,为什么始终只有一个服务监听到数据,另外两个服务始终监听不到数据呢?
把正常的这个停掉报,才会从剩下的两个服务中选一个来进行消费数据(说明之前这三个服务其实本来都能够正常消费数据的),但是当他们都启动的时候,消息始终只落在一个服务上,另外两个服务虽然正常启动,但就是不消费数据。那这样搞法,数据消费的性能上根本没有任何的提升啊!

咋玩?

后来,回想一下kafka分组 group 和 kafka分区,多个消费者消费数据的情况。。貌似突然想到了一个事情!

这个topic 该不会只有一个分区吧????!!!!!

image

就是这个图。

比如,现在起的3个节点的服务,是同一个GROUP A,
然后kafka集群,它是SERVER 1, 然后呢,它一开始只有一个分区。
注意:对于一个消费者组,同一个分区的数据,只会由一个消费者去消费。即使这个消费者组下面有10消费者都好,这个TOPIC的分区,只会有一个消费者对对应。
对应到这个图,意思就是 C1 和 C2 是不会同步消费P0 的数据的。 P0 只能被 GROUP A 的C1 或者 C2 消费。

突然懂了。

动手!把这个TOPIC的分区数改为3,
emmmmm 再把服务重启一下,emmmmm, NICE, 好了! 每个消费者都能取到数据了,算是比较均衡地消费了,也符合了预期。

标签:只落,消费,服务,分区,同个,kafka,topic,数据
From: https://www.cnblogs.com/aaacarrot/p/17977383

相关文章

  • kafka-Kafka3.4版本创建topic出现zookeeper is not a recognized option
    问题描述:在linux云服务器上搭建了一套kafka3.0集群,然后按照以前的创建topic指令:./kafka-topics.sh--zookeeperhadoop01:2181,hadoop02:2181,hadoop03:2181--replication-factor1--partitions1--topictest然而,却出现了这样一个异常提示:Exceptioninthread"main"jopt......
  • 分享两种Pulsar消息积压topic级别策略老化办法
    本文分享自华为云社区《Pulsar消息积压topic级别策略老化的两种方案》,作者:张俭。Pulsar像大多数消息中间件一样,支持按时间和大小对消息积压进行老化。但是默认的策略只能在namespace级别配置。本文将介绍如何在topic级别实现老化策略的两种方案。方案一:开启TopicLevelPolicy......
  • 分享两种Pulsar消息积压topic级别策略老化办法
    本文分享自华为云社区《Pulsar消息积压topic级别策略老化的两种方案》,作者:张俭。Pulsar像大多数消息中间件一样,支持按时间和大小对消息积压进行老化。但是默认的策略只能在namespace级别配置。本文将介绍如何在topic级别实现老化策略的两种方案。方案一:开启TopicLevelPolicy来......
  • RabbitMQ Topic交换机
     代码示例:1.新建两个队列 2.创建交换机,名字叫hmall.topic,类型选择topic 3.hmall.topic交换机绑定第一步的两个队列,绑定过程中填写RoutingKey  4.编写消费者代码监听这两个队列@RabbitListener(queues="topic.queue1")publicvoidlistenQueue05(Str......
  • 【Spring】SpringBoot+RabbitMQ(direct/fanout/topic)の構築方法
     ■POM.xmlの中で、下記の内容を追加<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><dependency>......
  • kafka中如何创建topic?
    通过如下的命令创建topickafka-topics.sh\--bootstrap-server<Kafka集群地址>\--create\--topic<Topic名称>\--partitions<分区数>\--replication-factor<副本因子>  示例bin/kafka-topics.sh\--bootstrap-server122.12......
  • 什么是kafka中topic、分区、副本、偏移量、消息保留策略
    Kafka是一个开源的分布式流式数据平台,也成为分布式消息队列。用于高吞吐量、低延迟的数据发布和订阅。 1、什么是topic(主题)? 在Kafka中,Topic(主题)是数据发布和订阅的基本单位,它代表了相同类型的消息流。 一个Topic可以看作是一个逻辑上的数据流管道,消息的生产者(Prod......
  • 【Linux专题】同个ip同个服务器搭建多个站点https
    原创: 厦门微思网络Nginx配置文件多站点https配置文件如下:worker_processes4;events{worker_connections100000;}http{includemime.types;default_typeapplication/octet-stream;sendfileon;tcp_nopushon;tcp_nodelayon;keepalive_......
  • java——kafka随笔——broker&主题-topic&分区-partition理解
                  首先,让我们来看一下基础的消息(Message)相关术语:名称解释Broker消息中间件处理节点,⼀个Kafka节点就是⼀个broker,⼀个或者多个Broker可以组成⼀个Kafka集群TopicKafka根据topic对消息进⾏归类,发布到Kafka集群的每条消息都......
  • Rabbitmq消息队列:Topic话题模式简单应用
    一、生产者声明topic话题模式的交换机,分别发送几条消息到不同的路由key。packagetest.topic;importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importutils.RabbitmqConUtil;publicclassGive{//定义交换机privatefinals......