Apache Kafka是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统,使用Scala与Java语言编写,能够将消息从一个端点传递到另一个端点,较之传统的消息中间件(例如ActiveMQ、RabbitMQ),Kafka具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息处理应用程序
1、Kafka架构
kafka-伪集群搭建
2、kafka高吞吐率实现
Kafka与其它MQ相比,其最大的特点就是高吞吐率。为了增加存储能力,Kafka将所有的消息都写入到了低速大容的硬盘。按理说,这将导致性能损失,但实际上,kafka仍可保持超高的吞吐率,性能并未受到影响。其主要采用了如下的方式实现了高吞吐率。
顺序读写:Kafka将消息写入到了分区partition中,而分区中消息是顺序读写的。顺序读写要远快于随机读写。
零拷贝:生产者、消费者对于kafka中消息的操作是采用零拷贝实现的。
批量发送:Kafka允许使用批量消息发送模式。
消息压缩:Kafka支持对消息集合进行压缩。

二、下载与安装

 
1、选择 Download  ->   Scala 2.11  - kafka_2.11-2.2.1.tgz (ascsha512)  
kafka-伪集群搭建
2、鼠标右键复制链接地址
kafka-伪集群搭建
3、执行命令
wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.6.0/kafka_2.12-2.6.0.tgz
4、结果
 kafka-伪集群搭建

三、解压与配置

1、执行解压命令
tar -zxvf kafka_2.12-2.6.0.tgz -C /usr/local/
cd /usr/local
mv kafka_2.12-2.6.0 kafka
2、复制配置修改server1.properties配置
cd /usr/local/kafka/config
cp server.properties server1.properties
vim server1.properties
 
 修改的地方 
broker.id=1
 
listeners=PLAINTEXT://:9091
 
log.dirs=/usr/local/data/kafka-logs-1
 
default.replication.factor=2 #新增
 
 复制1的配置 到2 3 
cp server1.properties server2.properties
cp server1.properties server3.properties
 
修改broker.id 为 2 3  
log.dirs路径 
/usr/local/data/kafka-logs-3
/usr/local/data/kafka-logs-2
 
mkdir -p /usr/local/data/kafka-logs-3
mkdir -p /usr/local/data/kafka-logs-2
mkdir -p /usr/local/data/kafka-logs-1
 
3. 启动集群及测试
/usr/local/kafka/bin/kafka-server-start.sh -daemon ./config/server1.properties
/usr/local/kafka/bin/kafka-server-start.sh -daemon ./config/server2.properties
/usr/local/kafka/bin/kafka-server-start.sh -daemon ./config/server3.properties
 
注:如果单机伪集群内存不够,可以修改启动脚本,将红框内的内存改小些,默认为1G
vim ./bin/kafka-server-start.sh
kafka-伪集群搭建
 
如果不熟悉kafka集群,则可以在启动时不加 -daemon参数,观察kafka启动过程 
如果在启动中报错,kafka会在安装目录下生成一个错误log,可以通过查看该文件排错直至启动 
kafka-伪集群搭建
 
连接zookeeper测试
/usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2182,127.0.0.1:2183,127.0.0.1:2184
 
[zk: 127.0.0.1:

相关文章: