kafka基础命令及api使用

Posted hxuhongming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka基础命令及api使用相关的知识,希望对你有一定的参考价值。

一、Kafka 0.11

参考文档
(1)https://kafka.apache.org/0110/documentation.html

二、kafka 0.8
1、命令行操作
(1)新建topic

> bin/kafka-topics.sh --create --zookeeper hadoop1:2181,hadoop2:2181,hadoop3:2181 --replication-factor 1 --partitions 1 --topic msg_format_v0

(2)发送消息

bin/kafka-console-producer.sh --broker-list hadoop1:9092,hadoop2:9092,hadoop3:9092 --topic msg_format_v0

2、API使用
(1)pom依赖

    <dependency>
      <groupId>org.apache.kafka</groupId>
      <artifactId>kafka-clients</artifactId>
      <version>0.8.2.1</version>
    </dependency>

(2)生产者api使用

import org.apache.kafka.clients.producer.*;
import java.util.Properties;

public class TestProducer {

    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "hadoop1:9092,hadoop2:9092,hadoop3:9092");
        props.put("acks", "all");
        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);
        //topic: 目标topic;  key: message的序号;   value: 写入的message信息;
        producer.send(new ProducerRecord<>("msg_format_v0", "key", "value"));

        //当不需要指定key值时,采用下面的方法
        //Producer<Object, String> producer2 = new KafkaProducer<>(props);
        //producer2.send(new ProducerRecord<>("msg_format_v1", "value"));

        producer.close();

    }
}

参考文档
(1)https://kafka.apache.org/082/documentation.html#producerapi

以上是关于kafka基础命令及api使用的主要内容,如果未能解决你的问题,请参考以下文章

MySQL系列:kafka停止命令

橘子学kafka之基础命令使用

vue3.2 基础及常用方法

Java调用Kafka生产者,消费者Api及相关配置说明

Kafka1.0X之基础API的使用

大数据(6f)图解Kafka生产者和消费者API