kafka基础操作

Kafka

解压,配置文件server.properties,地址,存储位置,分区等等

先启动zookeeper

kafka-server-start.sh /opt/soft/kafka211/config/server.properties或nohup kafka-server-start.sh /opt/soft/kafka211/config/server.properties &

查看主题

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

创建主题

kafka-topics.sh --create --zookeeper 192.168.153.133:2181 --topic mydemo --partitions 1 --replication-factor 1

创建生产者

kafka-console-producer.sh --topic mydemo --broker-list chen133:9092

创建消费者

kafka-console-consumer.sh --bootstrap-server chen133:9092 --topic mydemo --from-beginning

查看消息数量

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list chen133:9092 --topic mydemo -time  -1 --offsets 1

查看主题具体情况

kafka-topics.sh --zookeeper chen133:2181 --describe --topic mydemo

查看所有主题

kafka-topics.sh --zookeeper chen133:2181 --describe

进入zookeeper

zkCli.sh -server chen133:2181

[zk: chen133:2181(CONNECTED) 4] ls /brokers

[ids, topics, seqid]

[zk: chen133:2181(CONNECTED) 5] ls /brokers/topics

[mydemo2, __consumer_offsets, mydemo]

[zk: chen133:2181(CONNECTED) 8] ls /brokers/topics/mydemo2/partitions

[0, 1, 2]

感觉Kafka原理好难理解谁能教教我

### 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`的新消息直到手动终止进程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

s_schen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值