Kafka基本命令、操作

Kafka笔记

一.创建一个主题
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --create --partitions 1 --replication-factor 3
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --alter --partitions 3
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --describe

注意:分区只能增加,不能减少

二.生产者

连接

bin/kafka-console-producer.sh --bootstrap-server hadoop102:9092
 --topic first
三.消费者

连接

bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092
 --topic first
四.基本语法

1.后台启动kafka

kafka-server-start.sh -daemon config/server.properties

2.创建topic

kafka-topics.sh --create --zookeeper hadoop1:2181 --replication-factor 1 --partitions 1 --	topic test20200818

3.查看topic

kafka-topics.sh  --zookeeper hadoop1:2181 --list

4.查看topic详情

kafka-topics.sh --zookeeper hadoop1:2181 --describe --topic kb07demo

5.删除topic

kafka-topics.sh --zookeeper hadoop1:2181 --delete --topic test3

6.启动product

kafka-console-producer.sh --topic kb07demo --broker-list hadoop1:9092

7.启动consumer

kafka-console-consumer.sh --bootstrap-server hadoop1:9092 --topic kb07demo --from-beginning

8.查看分区数据

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list hadoop1:9092 --topic kb07demo -time -1 --offsets 1
五.零散知识

1.一个log文件默认大小为1G

2.一般把mysql的表名作为key用来分区,将一个表分到同一个分区中

3.可以配置一个kafka2(脱离zookeeper)

修改/opt/module/kafka2/config/kraft/server.properties

初始化bin/kafka-server-start.sh -daemon config/kraft/server.properties
### Kafka基本操作教程 #### 创建主题 (Topic) 为了向Kafka集群发布消息,首先需要创建一个或多个主题。这可以通过命令行工具完成: ```bash kafka-topics.sh --create --topic test_topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1 ``` 上述命令将在本地运行的Kafka实例上创建名为`test_topic`的主题,具有三个分区和复制因子为一[^3]。 #### 发布消息 (Producer) 生产者负责将消息发送至特定主题。下面是一个简单的Java代码片段展示如何配置并启动一个Kafka生产者客户端: ```java Properties props = new Properties(); props.put("bootstrap.servers", "localhost: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); for(int i = 0; i < 100; i++) producer.send(new ProducerRecord<>("test_topic", Integer.toString(i), Integer.toString(i))); producer.close(); ``` 这段程序会连接到位于`localhost:9092`的Kafka服务器,并向之前创建好的`test_topic`发送一百条记录[^1]。 #### 订阅与接收消息 (Consumer) 消费者订阅感兴趣的一个或多个主题,并读取消息。这里给出一段基础的例子说明怎样设置消费者端点来监听新到达的信息: ```java Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("group.id", "test_group"); props.put("enable.auto.commit", "true"); props.put("auto.commit.interval.ms", "1000"); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); consumer.subscribe(Collections.singletonList("test_topic")); while (true) { ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100)); for (ConsumerRecord<String, String> record : records) System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value()); } ``` 此段脚本将持续轮询来自`test_topic`的新消息直到手动终止进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值