首页 > 其他分享 >Kafka集群搭建、注意事项及示例

Kafka集群搭建、注意事项及示例

时间:2023-12-12 19:45:43浏览次数:28  
标签:示例 -- 注意事项 9092 Kafka topic props kafka

1. 安装Zookeeper:
  • Kafka依赖于Zookeeper来进行集群协调。确保安装了Zookeeper,并配置好。
2.下载和解压Kafka:
  • 从官方网站下载Kafka,并解压到所需的目录。
3.配置Kafka:
  • 修改Kafka的配置文件以适应集群环境。主要修改server.properties文件,设置broker.id、listeners、zookeeper.connect等参数。
4.启动Kafka服务器:
  • 分别在每个节点上启动Kafka服务器。
点击查看代码
bin/kafka-server-start.sh config/server.properties
5.创建Topic:
  • 创建一个或多个Topic,可以在其中的任一节点上执行。
点击查看代码
bin/kafka-topics.sh --create --topic your-topic --partitions 3 --replication-factor 2 --bootstrap-server localhost:9092
6.验证集群状态:
  • 可以使用以下命令检查集群状态:
点击查看代码
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
bin/kafka-topics.sh --describe --topic your-topic --bootstrap-server localhost:9092

注意事项:

1.Broker ID唯一性:
  • 每个Kafka节点的broker.id必须是唯一的,且集群中的每个节点都应该有一个唯一的标识。
2.Zookeeper连接配置:
  • 确保Kafka配置文件中的zookeeper.connect参数正确指向Zookeeper集群。
3.Topic分区和副本配置:
  • 根据需求设置Topic的分区数和副本数。副本数可以保证数据的冗余和可用性。
4.网络配置:
  • 确保Kafka节点之间的网络能够正常通信,特别是防火墙设置。
5.版本一致性:
  • 确保Kafka集群的各个节点使用相同版本的Kafka。

示例:

生产者示例:
点击查看代码
import org.apache.kafka.clients.producer.*;

import java.util.Properties;

public class KafkaProducerExample {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "node1:9092,node2:9092,node3:9092");
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        Producer<String, String> producer = new KafkaProducer<>(props);

        String topic = "your-topic";
        String key = "key1";
        String message = "Hello, Kafka!";

        ProducerRecord<String, String> record = new ProducerRecord<>(topic, key, message);

        producer.send(record, new Callback() {
            @Override
            public void onCompletion(RecordMetadata metadata, Exception exception) {
                if (exception == null) {
                    System.out.println("Message sent to partition " + metadata.partition() + " with offset " + metadata.offset());
                } else {
                    exception.printStackTrace();
                }
            }
        });

        producer.close();
    }
}

消费者示例:
点击查看代码
import org.apache.kafka.clients.consumer.*;

import java.time.Duration;
import java.util.Collections;
import java.util.Properties;

public class KafkaConsumerExample {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "node1:9092,node2:9092,node3:9092");
        props.put("group.id", "your-consumer-group");
        props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

        Consumer<String, String> consumer = new KafkaConsumer<>(props);

        String topic = "your-topic";
        consumer.subscribe(Collections.singletonList(topic));

        while (true) {
            ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
            for (ConsumerRecord<String, String> record : records) {
                System.out.printf("Consumed record with key %s and value %s%n", record.key(), record.value());
            }
        }
    }
}

以上示例中,生产者将消息发送到指定的Topic,而消费者则从同一Topic中消费消息。请注意替换示例代码中的占位符(如your-topic、node1:9092,node2:9092,node3:9092等)为你实际的配置信息。

标签:示例,--,注意事项,9092,Kafka,topic,props,kafka
From: https://www.cnblogs.com/arek/p/17897664.html

相关文章

  • 前端实现Excel导出功能的详细示例
    前言在前端开发中,有时我们需要将数据导出为Excel文件,以便用户可以在本地进行查看和编辑。本文将详细介绍如何在前端实现Excel导出功能,并给出一个详细的示例代码。准备工作在开始之前,我们需要引入一个用于处理Excel文件的库。在本示例中,我们将使用xlsx库,它是一个功能强大且易于......
  • 【flink番外篇】3、fflink的source(内置、mysql、kafka、redis、clickhouse)介绍及示例(2
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......
  • 【flink番外篇】3、flink的source(内置、mysql、kafka、redis、clickhouse)介绍及示例(3)-
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......
  • 如何写简历-学习如何在 2023 年撰写简历所需的所有技巧、工具、模板和示例
    学习如何在2023年撰写简历所需的所有技巧、工具、模板和示例拥有一份经过精心打磨和精心撰写的简历就像在求职过程中拥有超能力一样。 当大多数人走上招聘阶梯时,你却披上了深红色的斗篷,以超音速的速度向上翱翔。本关于如何撰写简历的指南概述了创建此类令人惊叹的简历的最重......
  • Typescript中Unknown类型的说明&注意事项
    unknown是TypeScript中的一种顶级类型,它表示一个未知的值。与any类型不同,unknown类型更加类型安全。当一个值被标记为unknown类型时,它只能赋值给unknown或any类型。这意味着我们不能对unknown类型的值执行任何操作,除非我们首先进行类型检查或类型断言。以下是一个......
  • go-zero开发入门-API网关鉴权开发示例
    本文是go-zero开发入门-API网关开发示例一文的延伸,继续之前请先阅读此文。在项目根目录下创建子目录middleware,在此目录下创建文件auth.go,内容如下://鉴权中间件packagemiddlewareimport("context""errors""net/http")varErrInvalidToken=errors.Ne......
  • VMware workstation 17安装虚拟机ubuntu原始镜像.iso注意事项
    1在安装虚拟机向导对话框,命名虚拟机位置:A虚拟机名称:这里选ubuntu64位B位置(L):该选项要注意:安装时会清除该位置的内容,并且安装完后打开该位置就全部是虚拟机的文件了,跟windows的C盘一样,不能放其他文件了。我选择的位置时E盘,安装完后,打开E盘,里面很多ubuntu......
  • 幺半群同态一个示例的双向分析
    全体自然数(含0)在加法下构成一个幺半群,记作(N,+),而全体正整数在乘法下也构成一个幺半群,记作(Z+,·).假设映射f:N→ Z+满足 ①    ∀x,y∈N,  f(x+y)=f(x)·f(y). 令y=0,代入①有f(x)=f(x)·f(0),由此可知f(0)=1,即f把 (N,+)中的单位......
  • K8S-部署Kafka
    nfs&rpc离线包下载链接:https://pan.baidu.com/s/1NtsBd_5W4NVfL3A2BvwqUA提取码:0000#master&slave#上传rpm文件到此目录mkdir-p/opt/software/nfs_rpc#安装NFSrpm-Uvh*.rpm--nodeps--force#mastermkdir-p/data/{kafka,zookeeper}chmod755-R/data/*cat>>/etc......
  • kafka消费端速度慢解决方案
    一、增加patition数量,有多少个patition就会启多少个消费者线程去消费,跟消费者服务节点的数量无关,只能patition有关。二、patition一样的情况下,改为批量消费,一次拉取多条数据,max.poll.records,利用多线程去处理数据,避免单线程处理批量数据时间过长,导致超时。 提交方式问题:enab......