⼀、Kafka介绍
Kafka是最初由Linkedin公司开发,是⼀个分布式、⽀持分区的(partition)、多副本的 (replica),基于zookeeper协调的分布式消息系统,它的最⼤的特性就是可以实时的处理 ⼤量数据以满⾜各种需求场景:⽐如基于hadoop的批处理系统、低延迟的实时系统、 Storm/Spark流式处理引擎,web/nginx⽇志、访问⽇志,消息服务等等,⽤scala语⾔编 写,Linkedin于2010年贡献给了Apache基⾦会并成为顶级开源 项⽬。
流媒体平台具有三个关键功能:
发布和订阅记录流,类似于消息队列或企业消息传递系统。
以容错持久的方式存储记录流。
在记录流发生时对其进行处理。
Kafka通常用于两大类应用:
构建实时流数据管道,在系统或应用程序之间可靠地获取数据
构建实时流应用程序,以转换或响应数据流
为了理解卡夫卡是如何做到这一点的,让我们潜入并自下而上地探索卡夫卡的能力。
首先几个概念:
Kafka 作为群集在可跨多个数据中心的一台或多台服务器上运行。
Kafka 群集将记录流存储在称为主题的类别中。
每条记录都由一个键、一个值和一个时间戳组成。
官方介绍的特性:
核心能力
生态系统
信任和易用性
二、Kafka的使⽤场景
- ⽇志收集:⼀个公司可以⽤Kafka收集各种服务的log,通过kafka以统⼀接⼝服务的⽅式 开放给各种consumer,例如hadoop、Hbase、Solr等。
- 消息系统:解耦和⽣产者和消费者、缓存消息等。
- ⽤户活动跟踪:Kafka经常被⽤来记录web⽤户或者app⽤户的各种活动,如浏览⽹⻚、 搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过 订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖 掘。
- 运营指标:Kafka也经常⽤来记录运营监控数据。包括收集各种分布式应⽤的数据,⽣产 各种操作的集中反馈,⽐如报警和报告。
三、Kafka集群搭建
实验环境:
一台Cenos7模拟
配置文件:
server.properties
server1.properties
server2.properties
启动kafka服务
进入kafa bin文件目录
./kafka-server-start.sh -daemon ../config/server.properties #启动第一个kafka
./kafka-server-start.sh -daemon ../config/server1.properties #启动第二个kafka
./kafka-server-start.sh -daemon ../config/server2.properties #启动第三个kafka
检查kafka 集群是否搭建成功,需要进入zookeeper 服务器中查看/brokers/ids 如下:
完毕!