chillout

Kafka是一个分布式的消息队列,具体如下图,他需要zookeeper来管理一下,所以在安装kafka前我们要先安装zookeeper,一般kafka安装包中都会自带一个简单版的zookeeper。

 

zookeep负责管理分布式的存储模块,broke、topic、consumer都会在zookeep中注册。

Kafka架构图:

 

这块看网上的图和文字真的看不懂,建议在b站找个视频讲解15分钟就搞懂了。

 

kafka的主要特征,解耦(大概是扩展性强)、削峰(缓解数据峰值时候的压力)

分为两种模式 点对点模式和发布订阅模式

发布订阅模式中也分为两种,一种是producer主动推信息,一种是consumer主动拉取信息(拉取信息需要消费者执行一个拉取的轮训,即便没有消息也要执行轮训)

 

zookeeper的作用

帮助kafka存储一些数据,记录消费职位,服务器挂掉之后,会通过zookeeper上的信息重新从上次的位置继续消费,从而防止数据丢失。

0.9版本之前offset存储在zk,0.9之后存储在本地(默认存7天,168小时)

因为这样需要频繁的和zk交互,zk反应比较慢,所以改版存储在本地(存在一个kafka broker中)

 

================================================

下载kafka安装包,个人习惯放在/opt中,之后解压安装包,官网下的是kafka_2.12-2.6.0.tgz用tar xvfz kafka_2.12-2.6.0.tgz 解压,解压后进入解压的文件夹

 

配置文件在config中:

kafka配置文件是server.properties

zookeeper的是zookeeper.properties

消费者的是consumer.properties

生产者的是producer.properties

 

首先要配置zookeeper.properties

datadir是缓存数据的保存地点

clientport是zookeeper端口

dataLogDir是日志的保存地点

 

之后配置server.properties

Broker.id是集群中broker的唯一id,每个机器的不能一样,这里我就启一个,所以就不动了

host.name是服务器ip地址,虚拟机实验就localhost就行,剩下的要配置ip地址

zookeeper.connect 是zk地址,注意看看路径对不对

Port 端口号(listeners=PLAINTEXT)也是端口,默认就行

log.dirs   kafka数据存放地址

 

 

配置好后先运行zookeeper,再运行kafka

开启zookeeper

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

输出日志的开启方法:

nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper-run.log 2>&1 &    (这样在本目录会有个日志)

 

开启kafka

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

输出日志的开启方法:

nohup bin/kafka-server-start.sh config/server.properties > kafka-run.log 2>&1 &          (这样在本目录会有个日志)

 

使用jps -l查看是否运行成功:

显示:[root@localhost bin]# jps

7797 Kafka

7564 QuorumPeerMain //QuorumPeerMain是zookeeper的守护进程

 

 

创建一个topic

./kafka-topics.sh --create --zookeeper  localhost:2181 --replication-factor 1 --partitions 1 --topic test     //注意这里2181是config目录中zookeeper.properties配置clientPort端口,replication-factor是每个partition的副本个数  --partitions是对应topic下分区数量

返回结果:Created topic "test"

显示topic:

./kafka-topics.sh -list -zookeeper localhost:2181

 

创建一个生产者:

./kafka-console-producer.sh --broker-list localhost:9092 --topic test//--broker -list是你broker服务器所在的IP地址和端口 --topic选择topic

输入完成后会进入输入面板,在输入面板中输入信息,按ctrl c结束

 

在消费者中查看:

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

查看topic test中的历史消息,这样就可以看到刚刚发送的

 --from-beginning是把缓存的记录都同步过来,删掉这个就是显示的实时接收的数据

 =======================================================================================================

server.properties中字段对应的中文解释:https://blog.csdn.net/lizhitao/article/details/25667831

我参考的这三个教程搭建kafka。

https://www.cnblogs.com/zhaoshizi/p/12154518.html

https://www.cnblogs.com/enhance/p/11233164.html

https://blog.csdn.net/sinat_32023305/article/details/83860441

分类:

技术点:

相关文章:

  • 2021-12-04
  • 2021-11-30
  • 2022-12-23
  • 2021-11-26
  • 2022-12-23
  • 2021-07-15
  • 2021-08-31
  • 2021-11-18
猜你喜欢
  • 2021-07-09
  • 2021-10-16
  • 2022-12-23
  • 2022-02-18
  • 2021-08-14
  • 2022-02-27
  • 2022-02-08
相关资源
相似解决方案