Apache Kafka开发入门指南

作者:chszs,转载需注明。博客主页: http://blog.csdn.net/chszs

Apache Kafka可以帮助你解决在发布/订阅架构中遇到消费数百万消息的问题。
如今,商业应用、社交应用以及其它类型的应用产生的实时信息在不断增长,这些信息需要以简单的方式快速、可靠地路由到各种类型的接收者。在大多数情况下,产生信息和消费信息的应用都是自然分开的,彼此不可互相访问。
需要一种机制,让信息的生产者和消费者能无缝地集成。
在大数据时代,收集数据也是一个挑战——因为数据量太大。第二个挑战是分析数据,它通常分为:
1)用户行为数据
2)应用程序性能跟踪
3)日志形式的活动数据
4)事件消息

消息订阅是一种机制,可以连接各种应用程序,帮助消息在彼此之间路由。
Kafka是一个实时消息传输的解决方案,可处理大量实时信息,并把这些信息快速路由到各种消费者。Kafka提供了信息生产者和消费者之间的无缝集成,无需对生产者的信息进行阻塞,也无需告诉生产者那些消费者的位置。

Apache Kafka是一个开源、分布式的消息发布/订阅系统,其主要设计特性如下:
1)消息持久化
要从大数据中获取真正的价值,那么不能丢失任何信息。Apache Kafka设计上是时间复杂度O(1)的磁盘结构,它提供了常量时间的性能,即使是存储海量的信息(TB级)。
2)高吞吐
记住大数据,Kafka的设计是工作在标准硬件之上,支持每秒数百万的消息。
3)分布式
Kafka明确支持在Kafka服务器上的消息分区,以及在消费机器集群上的分发消费,维护每个分区的排序语义。
4)多客户端支持
Kafka系统支持与来自不同平台(如java、.NET、PHP、Ruby或Python等)的客户端相集成。
5)实时
生产者线程产生的消息对消费者线程应该立即可见,此特性对基于事件的系统(比如CEP系统)是至关重要的。
注:CEP即Complex Event Processing,复杂事件处理。

Apache Kafka提供了一个实时的发布/订阅解决方案,它客服了消费实时大数据的挑战,这些数据量可能在数量级的增长、真实的数据。Kafka还支持在Hadoop系统上做并行数据载入。

下面的视图显示了Apache Kafka消息系统支持的一个典型的大数据汇聚和分析的场景:

在生产者端,有数种不同的生产者:
1)前端Web应用产生的应用日志
2)生产者代理产生的Web分析日志
3)生产者适配器产生的传输日志
4)生产者服务产生的调用跟踪日志

在消费者端,有数种不同的消费者:
1)离线消费者:消费消息并在Hadoop或传统的数据仓库中存储消息用于离线分析
2)近乎实时的消费者:消费消息并在任意NoSQL数据库(如HBase或Cassandra)中存储消息用于近实时分析
3)实时消费者:在内存数据库中过滤消息,并在相关的群组中触发警告事件

Apache Kafka开发入门指南相关推荐

  1. Apache Kylin新手入门指南

    Apache Kylin新手入门指南 文章目录 Apache Kylin新手入门指南 1 Apache Kylin是什么 2 为什么使用Apache Kylin 3 Apache Kylin的易用性如 ...

  2. 以太坊是什么 - 以太坊开发入门指南

    本文首发于深入浅出区块链社区 原文链接:以太坊是什么 - 以太坊开发入门指南 很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及 ...

  3. 所有人都可以是开发人员——《Office 365开发入门指南》视频教程即将上市

    今天是春节假期的最后一天,在这里给全国的朋友们拜个晚年,祝大家身体健康,晚年幸福啊.这个春节大家过的怎么样啊,我自己是在老家过的年,家乡的年味还是比较浓的,也再次感谢朋友圈的大家给我看了各地的风光和不 ...

  4. 《Office 365开发入门指南》上市说明和读者服务

    写在最开始的话 拙作<Office 365开发入门指南>上周开始已经正式在各大书店.在线商城上市,欢迎对Office 365的开发.生态感兴趣的开发者.项目经理.产品经理参考本书,全面了解 ...

  5. Android SELinux开发入门指南之如何增加Native Binder Service权限

      Android SELinux开发入门指南之如何增加Native Binder Service权限 Android SELinux开发多场景实战指南目录: Android SELinux开发入门指 ...

  6. Android SELinux开发入门指南之正确姿势解决访问data目录权限问题

      Android SELinux开发入门指南之正确姿势解决访问data目录权限问题 Android SELinux开发多场景实战指南目录: Android SELinux开发入门指南之SELinux ...

  7. Android SELinux开发入门指南之如何增加Java Binder Service权限

      Android SELinux开发入门指南之如何增加Java Binder Service权限 Android SELinux开发多场景实战指南目录: Android SELinux开发入门指南之 ...

  8. unity 3d网络游戏实战(全).pdf_“游戏开发入门指南——Unity+”的食用指南

    虽然专栏的文章已在置顶中按内容分好类了([置顶]游戏开发入门指南专栏目录),但不排除仍然有初学者面对繁杂的内容感觉无从下手.因此额外带来一篇食用指南,旨在给想要通过本专栏学习游戏开发的同学一条相对容易 ...

  9. Pmac联合QT开发入门指南

    Pmac联合QT开发入门指南 1.Pcommserver介绍 2. 获取PcommServer.exe 3. 通过QT的dumpcp工具生成COM组件 4. QTcreator中操作 4.1 与PMA ...

最新文章

  1. [转]详细的mysql时间和日期函数
  2. idea设置类注释和方法注释
  3. 如何绘制深度学习-目标检测评估指标P-R(precision-recall)曲线?如何计算AP(average-precision)?
  4. 【thymeleaf 】在 thymeleaf 中使用 shiro 标签
  5. 前端微信签名验证工具_微信小程序API 用户数据的签名验证和加解密
  6. matlab 左上角,matlab – 访问’uitable`的左上角
  7. Android 系统(186)---最易懂的Android屏幕适配解决方案--总结版
  8. 3.2 选择最可能的句子
  9. (综述,讲得很好)基于3DMM的三维人脸重建技术总结
  10. 联想笔记本键盘亮屏幕不亮_笔记本电脑进入睡眠状态后无法通过鼠标或键盘来唤醒屏幕怎么解决...
  11. win10任务栏太宽而且调不了_win10系统任务栏变宽了的修复方法
  12. myEclipse10破解及过期处理
  13. 专利代理人的真实工作状况
  14. 对泊松分布的一点理解
  15. 【shell案例】学员管理系统
  16. ffmpeg 分离视频音频流 缺失sei信息
  17. 怎么把已经初始化的字符数组设置为空?
  18. 蓝图(Blueprint)理解
  19. UWB隧道人员定位技术-隧道定位监测系统-工地人员定位-新导智能
  20. 程序员用学位证吗_没有学位如何成为一名优秀的Java程序员

热门文章

  1. 【数据结构】迷宫问题实现(包含界面)
  2. 用matlab求函数极限,matlab求解极限问题(limit函数的用法)
  3. Vue3入门笔记----实现首页的展示内容
  4. putty上传文件到服务器
  5. 上海一级计算机查成绩,上海计算机一级考试成绩查询入口
  6. 常用编程语言汇总及其用途
  7. 软件测试人员面试指南(一)-测试简历如何编写
  8. 我自己下班回家赚钱的3个方式
  9. 群晖室开虚拟机安装于服务器,如何在虚拟机上安装黑群晖?
  10. 机器学习_正规方程(最小二乘法)的推导