其他分享
首页 > 其他分享> > kafka介绍和使用

kafka介绍和使用

作者:互联网

1 Kafka简介

​Kafka是最初由Linkedin公司开发,它是一个分布式、可分区、多副本,基于zookeeper协调的分布式日志系统;常见可以用于web/nginx日志、访问日志,消息服务等等。Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。主要应用场景是:日志收集系统和消息系统

​Kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。Kafka就是一种发布-订阅模式。将消息保存在磁盘中,以顺序读写方式访问磁盘,避免随机读写导致性能瓶颈。

2 Kafka特性

3 Kafka集群架构

保证有一台新的broker会成为controller角色。


* offset
* 偏移量
MARKDOWN 复制 全屏

消费者在对应分区上已经消费的消息数(位置),offset保存的地方跟kafka版本有一定的关系。
kafka0.8 版本之前offset保存在zookeeper上。
kafka0.8 版本之后offset保存在kafka集群上。
它是把消费者消费topic的位置通过kafka集群内部有一个默认的topic,名称叫 __consumer_offsets,它默认有50个分区。

Kafka集群安装部署

 

1 集群安装部署

2 kafka集群启动和停止

kafka命令行的管理使用

 

kafka集群起停脚本

 

脚本位置

cd /home/hadoop/bin

脚本内容

vi kafka.sh

#输入以下内容
#!/bin/bash
case $1 in
"start" ){
  for(( i = 1;i <= 3;i = $i +1));do
    echo ============ hadoop0$i kafka $1 ===================
    ssh hadoop$i "source /etc/profile;nohup kafka-server-start.sh /bigdata/install/kafka/config/server.properties >/dev/null 2>&1 &"
  done
};;
"stop" ){
  for(( i = 1;i <= 3;i = $i +1));do
    echo ============ hadoop0$i kafka $1 ===================
    ssh hadoop$i "source /etc/profile;kafka-server-stop.sh"
  done
};;
esac

修改文件权限

chmod 777 kafka.sh

执行脚本,验证脚本

# 先确保已经启动了zookeeper
kafka.sh start
xcall jps

# 输出以下内容
============= hadoop1 jps =============
9616 Jps
9267 Kafka
9191 QuorumPeerMain
============= hadoop2 jps =============
8291 Kafka
8213 QuorumPeerMain
8632 Jps
============= hadoop3 jps =============
7129 Kafka
7053 QuorumPeerMain
7470 Jps

kafka.sh stop
xcall jps

# 输出以下内容
============= hadoop1 jps =============
9191 QuorumPeerMain
9740 Jps
============= hadoop2 jps =============
8213 QuorumPeerMain
8748 Jps
============= hadoop3 jps =============
7585 Jps
7053 QuorumPeerMain

 

标签:--,broker,介绍,Kafka,topic,2181,使用,kafka
来源: https://www.cnblogs.com/hanease/p/16219091.html