kafka的安装与使用
Posted richest_qi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka的安装与使用相关的知识,希望对你有一定的参考价值。
Kafka是一个分布式发布订阅的消息系统。
基本概念
- topic(主题),数据所属类别
- partition(分区),一个topic可以划分为多个partition
- offset,每个partition都有一个偏移量
- 副本,是partition的备份,仅用于防止数据丢失,不会被消费者消费。另外,单机版的kafka不能给patition设置副本,因为副本需分布在不同的机器上。
- broker(kafka服务器)
kafka集群包含一个或多个服务器,一个服务器就称之为一个broker。
每个broker用于存储topic中的数据。如果一个topic有多个partition,那么就有多个broker,每个broker用于存储一个partition中的数据,从而维护整个系统的负载均衡。 - producer,消息的生产者,即数据的发布者。producer把消息发布到topic里,broker接收到消息并把消息追加到topic的partition里。
- customer,消费者,即数据的接收者。
kafka的安装
- 从官网下载版本:kafka_2.13-2.8.0.tgz
- 将压缩包kafka_2.13-2.8.0.tgz上传至linux服务器的
/usr/local
目录下 - 解压kafka_2.13-2.8.0.tgz至当前目录:
tar -zxvf kafka_2.13-2.8.0.tgz
-x
,同--extract
,extract files from an archive。-f
,--force-local
,archive file is local even if it has a colon。-xf
,extract all files from an archive。-z
,同--unzip
。-v
,同--verbose
,verbosely list files processed,详细列出。其中, verbosely是冗长的意思。
- 修改配置文件:
config/server.properties
- broker.id
broker是kafka集群中的服务器,id
则是服务器的唯一标识。
单机版本中,可以将broker.id
可以设置为任意整数,比如broker.id=1
。 - log.dirs,kafka的日志目录
新建目录kafka_log,且与kafka_2.13-2.8.0同目录,将log.dirs设置为/usr/local/kafka_log
。
- broker.id
kafka的使用
- 启动ZooKeeper
[root@localhost kafka_2.13-2.8.0]# bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
- 启动kafka broker
[root@localhost kafka_2.13-2.8.0]# bin/kafka-server-start.sh config/server.properties
- 查看进程
[root@localhost kafka_2.13-2.8.0]# jps
4051 Jps
3398 Kafka
3292 QuorumPeerMain
可以看到有两个进程运行在终端,其中,QuorumPeerMain
是ZooKeeper的进程,另一个是Kafka进程。
- 创建一个topic
[root@localhost kafka_2.13-2.8.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic hello-kafka
Created topic hello-kafka.
创建了一个名为hello-kafka
的topic,其中,包含一个partition(分区)和一个replication-factor(副本因子)。
注意,config/server.properties
中有:
zookeeper.connect=localhost:2181
- 列出kafka服务器上的topics
[root@localhost kafka_2.13-2.8.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181
hello-kafka
- 启动消费者以接收消息
[root@localhost kafka_2.13-2.8.0]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic hello-kafka --from-beginning
- 启动生产者以发送消息
[root@localhost kafka_2.13-2.8.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic hello-kafka
- 查看topic的相关信息
[root@localhost kafka_2.13-2.8.0]# bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic hello-kafka
Topic: hello-kafka TopicId: P-bZ-KwWTuejAyLrnXAMXg PartitionCount: 1 ReplicationFactor: 1 Configs:
Topic: hello-kafka Partition: 0 Leader: 1 Replicas: 1 Isr: 1
参考文章
以上是关于kafka的安装与使用的主要内容,如果未能解决你的问题,请参考以下文章
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途
SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段