Kafka分布式消息系统
2016-03-26 11:51
267 查看
什么是Apache kafka?
系统应用用户的活动数据、请求数据、交互数据、运行维护数据如性能监测、服务器CPU指标这些大量的数据都在无时无刻的产生,Kafka便是有着一套成熟的消息处理方案的消息系统,支持高吞吐量的分布式发布订阅消息模式,它可以处理消费者规模的网站中的所有动作流数据。也是Apache的顶级开源框架。
已被多家公司用作多类型的数据管道和消息系统,如淘宝、支付宝、百度等;并且一些大数据计算框架如笔者前面介绍的storm、spark都支持与kafka的集成。主要应用场景是kafka作为消息接受系统,将负责接收大量数据,传输给storm进行数据计算处理。
![](https://img-blog.csdn.net/20160326114805470?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
具体在项目中的应用部署,kafka主要应用在数据计算框架和客户端请求中间,前端程序将消息push到Kafka
服务器集群的某一broker中,通过订阅模式,数据处理框架从Kafka中获取数据进行计算。
Advanced Message Queuing Protocol,高级消息队列协议提供了消息交互规范,它和kafka或这rabbitMQ、activeMQ的关系就类如JPA规范和hibernate以及多个实现JPA规范的持久层框架一样。
kafka架构:
Producer:消息生产者,负责发布消息到Kafka
broker
Broker :Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.
Consumer:消息消费者,向Kafka
broker读取消息。
![](https://img-blog.csdn.net/20160326114513073?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
kafka的消息分两个层次:
Topic:
Kafka将消息以topic为单位进行组织。如同生活中我们将消息分类为娱乐消息、体育消息、财经消息,kafka将一种消息类别组织为一个topic,一般系统以不同业务将消息进行topic划分。
Partition:
一个topic中的消息数据按照多个分区进行组织,分区是kafka消息队列的最小组织单位。按照先进先出FIFO队列进行消息管理。
![](https://img-blog.csdn.net/20160326114535917?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
什么是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消息处理流程
相关文章推荐
- 内存映射文件原理
- java判断字段是否final修饰
- ExtJs之Ext.Model的MemoryProxy
- Android实现XML解析技术
- Excel启动提示向程序发送命令出现问题
- 第五周上机实践项目——项目1-三角形类雏形-(2)
- Spring AOP应用
- linux挂载的磁盘类型
- 构建之法阅读笔记03
- C日记——快速排序
- 【学习C++】2.cin与Enter
- Android SlidingMenu 开源项目 侧拉菜单的使用
- 移动开发的革命之路到底指向何方
- Java 中ThreadLocal类详解
- android项目中,java调用kotlin代码
- win10桌面和手机的扩展API,判断是否有实体后退键API
- win32平台而非linux平台下 深入分析Sleep(0)与Sleep(1)的区别
- iOS网络开发中的同步、异步和请求队列
- Java 对Map进行排序的实现方法
- Java图形界面基础-绘制乌龟可能会出现的问题以及浅谈Java中的静态属性