您的位置:首页 > 其它

Kafka分布式消息系统

2016-03-26 11:51 267 查看

什么是Apache kafka?
    
系统应用用户的活动数据、请求数据、交互数据、运行维护数据如性能监测、服务器CPU指标这些大量的数据都在无时无刻的产生,Kafka便是有着一套成熟的消息处理方案的消息系统,支持高吞吐量的分布式发布订阅消息模式,它可以处理消费者规模的网站中的所有动作流数据。也是Apache的顶级开源框架。

应用领域

    
已被多家公司用作多类型的数据管道和消息系统,如淘宝、支付宝、百度等;并且一些大数据计算框架如笔者前面介绍的storm、spark都支持与kafka的集成。主要应用场景是kafka作为消息接受系统,将负责接收大量数据,传输给storm进行数据计算处理。



     具体在项目中的应用部署,kafka主要应用在数据计算框架和客户端请求中间,前端程序将消息push到Kafka
服务器集群的某一broker中,通过订阅模式,数据处理框架从Kafka中获取数据进行计算。

Kafka相关概念

AMQP协议:
    
Advanced Message Queuing Protocol,高级消息队列协议提供了消息交互规范,它和kafka或这rabbitMQ、activeMQ的关系就类如JPA规范和hibernate以及多个实现JPA规范的持久层框架一样。
kafka架构:
    
Producer:消息生产者,负责发布消息到Kafka
broker
    
Broker :Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.
    
Consumer:消息消费者,向Kafka
broker读取消息。



kafka的消息分两个层次:
Topic:
     Kafka将消息以topic为单位进行组织。如同生活中我们将消息分类为娱乐消息、体育消息、财经消息,kafka将一种消息类别组织为一个topic,一般系统以不同业务将消息进行topic划分。
Partition:
    
一个topic中的消息数据按照多个分区进行组织,分区是kafka消息队列的最小组织单位。按照先进先出FIFO队列进行消息管理。



Kafka消息处理流程



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: