kafka项目实例

 一.Kafka概述web

  Kafka是Linkedin于2010年12月份建立的开源消息系统,它主要用于处理活跃的流式数据。活跃的流式数据在web网站应用中很是常见,这些活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索状况等内容。 这些数据一般以日志的形式记录下来,而后每隔一段时间进行一次统计分析。安全

  传统的日志分析系统是一种离线处理日志信息的方式,但若要进行实时处理,一般会有较大延迟。而现有的消息队列系统可以很好的处理实时或者近似实时的应用,但未处理的数据一般不会写到磁盘上,这对于Hadoop之类,间隔时间较长的离线应用而言,在数据安全上会出现问题。Kafka正是为了解决以上问题而设计的,它可以很好地进行离线和在线应用。服务器

1.1 Kfka部署结构:并发

 

1.2 Kafka关键字:负载均衡

•Broker : Kafka消息服务器,消息中心。一个Broker能够容纳多个Topic。oop

•Producer :消息生产者,就是向Kafka broker发消息的客户端。网站

•Consumer :消息消费者,向Kafka broker取消息的客户端。spa

•Zookeeper :管理Producer,Broker,Consumer的动态加入与离开。设计

•Topic :能够为各类消息划分为多个不一样的主题,Topic就是主题名称。Producer能够针对某个主题进行生产,Consumer能够针对某个主题进行订阅。日志

•Consumer Group: Kafka采用广播的方式进行消息分发,而Consumer集群在消费某Topic时, Zookeeper会为该集群创建Offset消费偏移量,最新Consumer加入并消费该主题时,能够从最新的Offset点开始消费。

•Partition:Kafka采用对数据文件切片(Partition)的方式能够将一个Topic能够分布存储到多个Broker上,一个Topic能够分为多个Partition。在多个Consumer并发访问一个partition会有同步锁控制。

(图2)

1.3 消息收发流程:

•启动Zookeeper及Broker.

•Producer链接Broker后,将消息发布到Broker中指定Topic上(能够指定Patition)。

•Broker集群接收到Producer发过来的消息后,将其持久化到硬盘,并将该消息保留指定时长(可配置),而不关注消息是否被消费。

•Consumer链接到Broker后,启动消息泵对Broker进行侦听,当有消息到来时,会触发消息泵循环获取消息,获取消息后Zookeeper将记录该Consumer的消息Offset。

 

1.4 Kafka特性:

•高吞吐量

•负载均衡:经过zookeeper对Producer,Broker,Consumer的动态加入与离开进行管理。

•拉取系统:因为kafka broker会持久化数据,broker没有内存压力,所以,consumer很是适合采起pull的方式消费数据

•动态扩展:当须要增长broker结点时,新增的broker会向zookeeper注册,而producer及consumer会经过zookeeper感知这些变化,并及时做出调整。

•消息删除策略:数据文件将会根据broker中的配置要求,保留必定的时间以后删除。kafka经过这种简单的手段,来释放磁盘空间。

二. Kafka启动命令:

启动Zookeeper服务:

zookeeper-server-start.bat ../../config/zookeeper.properties

启动Broker服务:

kafka-server-start.bat ../../config/server.properties

经过Zookeeper的协调在Broker中建立一个Topic(主题)

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic

查询当前Broker中某个指定主题的配置信息

kafka-run-class.bat kafka.admin.TopicCommand --describe --zookeeper localhost:2181 --topic testTopic

启动一个数据生产者Producer

kafka-console-producer.bat --broker-list localhost:9092 --topic testTopic  

启动一个数据消费者Consumer

kafka-console-consumer.bat --zookeeper localhost:2181 --topic testTopic --from-beginning

 

Zookeeper配置文件,zookeeper.properties配置片断

Broker配置文件,server.properties配置片断

相关文章
相关标签/搜索