centos7.9 安装使用kafka

安装kafka之前需要安装java8+以上版本

yum install java-1.8.0-openjdk.x86_64
yum install java-1.8.0-openjdk-devel.x86_64

安装kafka

软件下载地址:https://kafka.apache.org/downloads

我下载的是当前的最新版 3.4.0

单节点单代理配置

1. 解压

tar -xzf kafka_2.13-3.4.0.tgz
cd kafka_2.13-3.4.0

2. 启动zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties

3. 启动kafka Broker (kafka实例)需新打开一个终端窗口

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

4. 使用zookeeper终端查看kakfa节点等信息 需新打开一个终端窗口

bin/zookeeper-shell.sh localhost:2181

#输出
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is disabled

WATCHER::

WatchedEvent state:SyncConnected type:None path:null


#查看节点ids
ls /

ls /brokers/ids
#输出
[0]

5.  创建kafka主题 topic  

  • kafka实例默认端口9092
  • 此版本kafka需要如下命令创建,--zookeeper命令v2.8版本之后已废弃 localhost:9092为kakfa服务节点实例
bin/kafka-topics.sh --create --topic test_topic --bootstrap-server localhost:9092
  • 之前版本可能需要如下命令
bin/kafka-topics.sh --create --zookeeper  localhost:2181 --replication-factor 1  --partitions 1 --topic test_topic

6. 查看已创建的主题topic 列表

bin/kafka-topics.sh --list --bootstrap-server localhost:9092
  • 之前版本可能需要如下命令
bin/kafka-topics.sh --list --zookeeper localhost:2181

7. 启动生产者producer发送消息

在config / producer.properties 文件中指定默认生产者属性

bin/kafka-console-producer.sh --topic test_topic --bootstrap-server localhost:9092
  • 之前版本可能需要如下命令
  • --broker-list(代理列表) - 我们要发送邮件的代理列表。 在这种情况下,我们只有一个代理。 Config / server.properties 文件包含代理端口 ID,因为我们知道我们的代理正在侦听端口 9092,因此您可以直接指定它。
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic

8. 启动消费者consumer接收消息  需新打开一个终端窗口

在config / consumber.properties 文件中指定了缺省使用者属性

bin/kafka-console-consumer.sh --topic test_topic --from-beginning --bootstrap-server localhost:9092
  • 之前版本可能需要如下命令
bin/kafka-console-consumer.sh --zookeeper localhost:2181 —-topic test_topic --from-beginning

单节点多代理配置(后续更新)

--zookeeper 和 --bootstrap.server 区别

  • --zookeeper  : 是旧版Kafka的参数(v2.8以前)
  • --bootstrap.server : 新版Kafka的参数。Kafka开发团队重写了ZooKeeper的Quorum控制器代码并嵌入到Kafka中。所以从v2.8版本开始,Kafka不再依赖ZooKeeper。(bootstrap.servers参数,只在启动客户端连接Kafka服务时使用。并且,即使列表里面填了多个节点,只要有一个可用就行了。)
  • 旧版(

    kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181/kafka --create --topic ..

    旧版用--zookeeper参数,主机名(或IP)和端口用ZooKeeper的2181,也就是server.properties文件中zookeeper.connect属性的配置值. ps:使用--zookeeper参数还需要指定kafka的Broker路径,注意不是在根目录下,是在/kafka路径下。

  • 新版(>v2.2):

    kafka-topics.sh --bootstrap-server node1:9092 --create --topic ..

    新版用--bootstrap-server参数,主机名(或IP)和端口用某个节点的即可,即主机名(或主机IP):9092。9092是Kafka的监听端口

其他参考:

https://www.w3cschool.cn/apache_kafka/apache_kafka_introduction.html

你可能感兴趣的:(kafka,kafka)