美文网首页大数据学习笔记
kafka 集群使用笔录

kafka 集群使用笔录

作者: 国服最坑开发 | 来源:发表于2020-03-12 19:41 被阅读0次

缘起:

今天业务说推送功能延时很严重.
遇到问题不要慌, 先来一波日志分析, 并发现了问题所在:
Kafka消息消费能力有限, 导致队列里有N多消息未来得及即时处理,
也就引发了延时处理数据的外在表现.

解决方案:

既然单节点Kafka 只能接一个消费端, 那么我们就来一组Kafka吧.

Round 1

我们搭建了三节点的Kafka集群, 也起用了三个消费端项目.
本以为这个任务就这么轻易的被解决了.

但是, 直接被打脸了.

为毛只有一个端能收到数据, 其他端 都不动呢...

Round 2

首先想到的是, 听说过partition , 但是没去配置, 莫非是这里的原因了呗.

broker.id=2
advertised.listeners=PLAINTEXT://10.10.1.107:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/app/kafka/kafka-logs
num.partitions=3
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.retention.bytes=10737418240
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=10.10.1.107:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

先来一波配置, 加重启.

恩, 看起来是没问题, 三消费端重启一波.

咦 ?
为啥还不行, 明明每个消费端, 已经指定了消息的partition了.

Round 3

难道说, 生产者不是提交后, 自动向三个partition里写数据的么?
果然是我太天真了,

生产者, 居然有这样的API存在 :

    @Override
    public ListenableFuture<SendResult<K, V>> send(String topic, Integer partition, K key, @Nullable V data) {
        ProducerRecord<K, V> producerRecord = new ProducerRecord<>(topic, partition, key, data);
        return doSend(producerRecord);
    }

不管怎样, 先试一下吧, 生产端, int partitionId = (int) (new Date().getTime() % 3); 通过这样随机选定一个partition 号. 然后再向Kafka上传.

各种重启后, 三个消费端, 终于可以读到数据了~~~~~~

监测一段时间后, 发现吞吐能力十分稳定.
本次升级任务基本完成 .

后记

一个topic分parition上传, 消费端再分partition进行消费.
这么做, 跟分成多个topic上传, 有啥区别呢......

相关文章

  • kafka 集群使用笔录

    缘起:今天业务说推送功能延时很严重.遇到问题不要慌, 先来一波日志分析, 并发现了问题所在:Kafka消息消费能力...

  • 阿里云kafka集群

    zookeeper集群 Zookeeper 使用 kafka集群 下载kafka_2.11-2.0.1.tgz包 ...

  • Kafka 跨集群同步方案

    该方案解决Kafka跨集群同步、创建Kafka集群镜像等相关问题,主要使用Kafka内置的MirrorMaker工...

  • Kafka相关文集

    Kafka 运维 kafka集群配置 kafka的安装(包括zookeeper) 原理及使用 Kafka之sync...

  • Ranger-Kafka插件安装

    Ranger-Kafka插件安装,使用Ranger0.7.0版本,集成Kafka插件到Kafka集群,Kafka ...

  • 【Kafka零基础学习】Producer授权

    1、使用环境 kafka版本1.0.1kafka集群使用SASL_PLAINTEXT安全认证Broker属性aut...

  • kafka命令行的管理使用

    启动kafka集群 首先要启动好kafka集群1、集群时间同步2、启动zookeeper集群3、启动kafka集群...

  • Apache Kafka 集群搭建与使用

    Apache Kafka 集群搭建与使用 继续之前的 Apache Kafka 部署与启动 ,单机的kafka的t...

  • Flume连接Kafka

    使用flume读取linux的文本文件,将数据发送到kafka 安装好zk集群,安装好kafka集群,安装好flu...

  • 如何使用Docker内的kafka服务

    基于Docker可以很轻松的搭建一个kafka集群,其他机器上的应用如何使用这个kafka集群服务呢?本次实战就来...

网友评论

    本文标题:kafka 集群使用笔录

    本文链接:https://www.haomeiwen.com/subject/uhfsoctx.html