Kafka介绍
Kafka是由LinkedIn开发的一个分布式基于发布/订阅的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。
Kafka是什么?举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100个鸡蛋,消费者1秒钟只能吃50个鸡蛋,那要不了一会,消费者就吃不消了(消息堵塞,最终导致系统超时),消费者拒绝再吃了,”鸡蛋“又丢失了,这个时候我们放个篮子在它们中间,生产出来的鸡蛋都放到篮子里,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失了,都在篮子里,而这个篮子就是”kafka“。鸡蛋其实就是“数据流”,系统之间的交互都是通过“数据流”来传输的(就是tcp、http什么的),也称为报文,也叫“消息”。消息队列满了,其实就是篮子满了,”鸡蛋“放不下了,那赶紧多放几个篮子,其实就是kafka的扩容。
就类似微博,有人发布消息,有人消费消息,这就是一个Kafka的场景。
Kafka和其他主流分布式消息系统的对比
操作步骤
1. 安装Kafka之前需要安装zookeeper集群
2. 下载Kafka安装压缩包
Kafka2.11安装包下载地址,下载完毕后,上传到主节点的/opt目录下
Kafka其他版本安装包下载地址
3. 解压Kafka并更换目录名
# cd /opt
# tar -xzvf kafka_2.11-0.10.2.1.tgz
# mv kafka_2.11-0.10.2.1 kafka2.11
# chmod 777 -R /opt/kafka2.11 #为kafka目录进行授权12345
4. 配置环境变量
# vim /etc/profileexport KAFKA_HOME=/opt/kafka2.11export PATH=$PATH:$KAFKA_HOME/bin #在最后添加这两行Kafka的配置
# source /etc/profile #使配置生效123456
5. 修改Kafka的server.properties配置
# cd /opt/kafka2.11/config
# vim server.properties修改如下:
broker.id=1 #每台服务器的broker.id都不能相同message.max.byte=5242880 #在log.retention.hours=168属性下加上如下三行配置default.replication.factor=3replica.fetch.max.bytes=5242880zookeeper.connect=192.168.210.70:2181,192.168.210.71:2181,192.168.210.72:2181 #修改zookeeper引用外部的zookeeper123456789101112
6. 将上述在其余节点也布置一下
# cd /opt
# scp -r kafka2.11 root@hadoop1:/opt/
# scp -r kafka2.11 root@hadoop2:/opt/注意:修改环境变量,修改配置文件的broker.id12345
7. 启动服务
#从后台启动Kafka集群(3台都需要启动)
# cd /opt/kafka2.11/bin #进入到kafka的bin目录
# ./kafka-server-start.sh -daemon ../config/server.properties1234
主节点:
两个从节点:
CIO之家 www.ciozj.com 公众号:imciow