CentOS7搭建Kafka环境

Kafka是一个分布式流平台,基于Zookeeper的分布式消息系统;
具有高吞吐量、高性能、实时及高可用等特点
由服务器和客户端组成,通过高性能的TCP网络协议进行通信。

一、安装JDK

下载地址: https://www.oracle.com/java/technologies/javase-downloads.html

下载JDK
image.png
image.png
上传安装包

将下载好的文件上传到centOS系统上,自定义上传路径:

mkdir /opt/software
image

安装lrzsz

yum install -y lrzse
image

执行命令 "rz" 上传刚刚下载的jdk包;(注:如果传输失败了,切换到root权限去传输,切换命令:"su root" ,回车输入对应密码)

解压

创建安装目录

mkdir /opt/install 

解压文件;命令:tar -zxvf 解压包名称 -C 解压目录

tar -zxvf jdk-8u301-linux-x64.tar.gz -C ../install/

配置环境变量
复制箭头指示的路径

image

编辑profile文件

vi /etc/profile

添加下面几行

image

刷新profile文件,并查看jdk版本确认是否安装完成

source  /etc/profile
java -version
image

二、安装ZooKeeper

下载地址:http://zookeeper.apache.org/

image
image
image
image

上传后解压,同jdk
启动命令:
切到安装目录的bin目录

./zkServer.sh start
image

查看是否启动成功

image

三、安装Kafka

下载Kafka安装包--kafka_2.11-2.4.0.tgz
传输并解压 同上

image
image

四、Kafka基本概念

Topic: 一个虚拟的概念,由1到多个Patitions组成(就是一个用来存放消息的地方)

Kafka 中的topic总是多producer多consumer;一个topic可以有零个、一个或多个向其写入事件的producer,以及零个、一个或多个订阅这些事件的consumer。可以根据需要随时读取主题中的事件——与传统消息传递系统不同,事件在消费后不会被删除。 相反,您可以通过每个主题的配置设置来定义 Kafka 应该保留您的事件多长时间,之后旧事件将被丢弃

Parttion: 实际消息存储单位

一个topic分布在位于不同 Kafka 代理的多个上。它允许客户端应用程序同时从/向多个代理读取和写入数据。当一个新事件发布到一个topic时,它实际上被附加到该topic的partition之一。并且 Kafka给定topic partition的任何consumer将始终以与写入事件完全相同的顺序读取该分区的事件。

Producer: 消息生产者---那些向 Kafka 发布(写入)事件的客户端应用程序
Consumer: 消息消费者---订阅(读取和处理)这些事件的那些客户端应用程序。

五、Kafka基本命令

#启动: 加"&"表示后台运行
./bin/kafka-server-start.sh config/server.properties &
#停止
./bin/kafka-server-stop.sh
#创建Topic
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic  topic-name
#查看已创建的topic
./bin/kafka-topics.sh --list --zookeeper localhost:2181
#发送消息  这边的IP换成自己本机的IP
./bin/kafka-console-producer.sh --broker-list 192.168.75.128:9092 --topic topic-name
#接收消息
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.75.128:9092 --topic topic-name --from-begining

Kafka优点

  • 高吞吐量
    使用延迟低至2ms的机器集群在网络有限的吞吐量上交付消息。
  • 可伸缩
    将生产集群规模扩大到1000个代理、每天数万亿条消息、pb级数据和数十万个分区。弹性伸缩贮存加工。
  • 持久性
    将数据流安全地存储在分布式、持久、容错的集群中。
  • 高可用性
    在可用性区域上有效地扩展集群,或者跨地理区域连接独立的集群。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容