学习kafka的基本信息总结 (2)

监控:主机通过Kafka发送与系统和应用程序健康相关的指标,然后这些信息会被收集和处理从而创建监控仪表盘并发送警告。除此之外,LinkedIn还利用Apache Samza实现了一个能够实时处理事件的富调用图分析系统。

分析: 为了更好地理解用户行为,改善用户体验,LinkedIn公司将用户查看了哪个页面、点击了哪些内容等信息发送到每个数据中心的Kafka集群上,并通过Hadoop进行分析、生成日常报告。

作为分布式应用程序或平台的构件(日志):大数据仓库解决方案Pinot等产品将Kafka作为核心构件(分布式日志),分布式数据库Espresso将其作为内部副本并改变传播层。

日志聚合: kafka的特性决定它非常适合作为“日志收集中心”;application可以将操作日志“批量”“异步”的发送到kafka集群中,而不是保存在本地或者DB中;kafka可以批量提交消息/压缩消息等,这对producer端而言,几乎感觉不到性能的开支.此时consumer端可以使hadoop等其他系统化的存储和分析系统。

Kafka深入 基本术语

topic:将Kafka中的消息分类,一类消息可以称为topic,topic也可以看作消息队列

produce:将消息发布到Kafka对应topic中的进程

consumer:订阅Kafka的某个topic,并从该topic中消费消息

broker:Kafka由一个或多个服务器构成的分布式系统,每个服务器称作broker。一台物理机器可能有多个broker。 

1524797774053-609.png

图从上层结构反映:producers通过网络向Kafka集群发送消息,Kafka又将消息发送给consumers。Produce和Kafka集群,以及Kafka集群和consumer之间是通过TCP协议通信的。

Topic和日志

Topic是属于同一类消息的集合,Kafka采用分区的方法维护每个topic,格式如下: 每个分区都是一个有序的,不变的消息队列。分区中的消息在本分区中都有一个唯一序列id,该序列id称为offset。新的消息直接添加到分区的末尾。 Kafka会保留设置时间范围内的所有消息记录,尽管某些记录已经被consumer消费过。每个consumer会保存其在日志中的位置信息,该位置信息称为offset,offset由consumer管 

1524797782790-442.png

理。Consumer增加offset的值,依次读取队列中新的消息。但是,consumer控制offset,使其能够读取任意offset的消息。 Consumer这种读取消息的机制,使得consumer非常灵活,可以随时读取topic中任意位置的消息,consumer的运行和Kafka集群以及其他consumer没有影响。 Partition是物理上的分区,每个partition有若干segment组成。具体参考如下:

单broker分布情况

多broker分布情况

分布式

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywsfd.html