Kafka核心技术与实战
胡夕
人人贷计算平台部总监,Apache Kafka Contributor
立即订阅
8408 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么要学习Kafka?
免费
Kafka入门 (5讲)
01 | 消息引擎系统ABC
02 | 一篇文章带你快速搞定Kafka术语
03 | Kafka只是消息引擎系统吗?
04 | 我应该选择哪种Kafka?
05 | 聊聊Kafka的版本号
Kafka的基本使用 (3讲)
06 | Kafka线上集群部署方案怎么做?
07 | 最最最重要的集群参数配置(上)
08 | 最最最重要的集群参数配置(下)
客户端实践及原理剖析 (14讲)
09 | 生产者消息分区机制原理剖析
10 | 生产者压缩算法面面观
11 | 无消息丢失配置怎么实现?
12 | 客户端都有哪些不常见但是很高级的功能?
13 | Java生产者是如何管理TCP连接的?
14 | 幂等生产者和事务生产者是一回事吗?
15 | 消费者组到底是什么?
16 | 揭开神秘的“位移主题”面纱
17 | 消费者组重平衡能避免吗?
18 | Kafka中位移提交那些事儿
19 | CommitFailedException异常怎么处理?
20 | 多线程开发消费者实例
21 | Java 消费者是如何管理TCP连接的?
22 | 消费者组消费进度监控都怎么实现?
深入Kafka内核 (5讲)
23 | Kafka副本机制详解
24 | 请求是怎么被处理的?
25 | 消费者组重平衡全流程解析
26 | 你一定不能错过的Kafka控制器
27 | 关于高水位和Leader Epoch的讨论
管理与监控 (12讲)
28 | 主题管理知多少?
29 | Kafka动态配置了解下?
30 | 怎么重设消费者组位移?
31 | 常见工具脚本大汇总
32 | KafkaAdminClient:Kafka的运维利器
33 | Kafka认证机制用哪家?
34 | 云环境下的授权该怎么做?
35 | 跨集群备份解决方案MirrorMaker
36 | 你应该怎么监控Kafka?
37 | 主流的Kafka监控框架
38 | 调优Kafka,你做到了吗?
39 | 从0搭建基于Kafka的企业级实时日志流处理平台
高级Kafka应用之流处理 (3讲)
40 | Kafka Streams与其他流处理平台的差异在哪里?
41 | Kafka Streams DSL开发实例
42 | Kafka Streams在金融领域的应用
结束语 (1讲)
结束语 | 以梦为马,莫负韶华!
特别放送 (2讲)
加餐 | 搭建开发环境、阅读源码方法、经典学习资料大揭秘
用户故事 | 黄云:行百里者半九十
Kafka核心技术与实战
登录|注册

04 | 我应该选择哪种Kafka?

胡夕 2019-06-11
在专栏上一期中,我们谈了 Kafka 当前的定位问题,Kafka 不再是一个单纯的消息引擎系统,而是能够实现精确一次(Exactly-once)处理语义的实时流处理平台。
你可能听说过 Apache Storm、Apache Spark Streaming 亦或是 Apache Flink,它们在大规模流处理领域可都是响当当的名字。令人高兴的是,Kafka 经过这么长时间不断的迭代,现在已经能够稍稍比肩这些框架了。我在这里使用了“稍稍”这个字眼,一方面想表达 Kafka 社区对于这些框架心存敬意;另一方面也想表达目前国内鲜有大厂将 Kafka 用于流处理的尴尬境地,毕竟 Kafka 是从消息引擎“半路出家”转型成流处理平台的,它在流处理方面的表现还需要经过时间的检验。
如果我们把视角从流处理平台扩展到流处理生态圈,Kafka 更是还有很长的路要走。前面我提到过 Kafka Streams 组件,正是它提供了 Kafka 实时处理流数据的能力。但是其实还有一个重要的组件我没有提及,那就是 Kafka Connect。
我们在评估流处理平台的时候,框架本身的性能、所提供操作算子(Operator)的丰富程度固然是重要的评判指标,但框架与上下游交互的能力也是非常重要的。能够与之进行数据传输的外部系统越多,围绕它打造的生态圈就越牢固,因而也就有更多的人愿意去使用它,从而形成正向反馈,不断地促进该生态圈的发展。就 Kafka 而言,Kafka Connect 通过一个个具体的连接器(Connector),串联起上下游的外部系统。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Kafka核心技术与实战》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(35)

  • lmtoo
    kafka eagle 也是非常不错的监控软件,好像也是国人写的,一直在更新,而且不比kafka manager差
    2019-06-11
    28
  • yellowcloud
    老师,您好,目前我们使用kafka时,使用的监控工具是kafka manager,后面也尝试过 kafka eagle,但是总是感觉这两款工具做的不尽如人意,有的甚至已经很长时间不维护了,老师能不能推荐下好的监控工具呢?

    作者回复: 试试JMXTrans + InfluxDB + Grafana

    2019-06-12
    18
  • cricket1981
    我们用的是confluent套件,线上用到了kafka, schema registry和ksql,其中ksql用于实时指标计算。
    2019-06-12
    1
    7
  • 风中花
    一口气看完4篇,有种从入门到放弃得感觉,感觉越来越重,越来越迷茫! 调整下,调整下,继续坚持下吧,集成得对于菜鸟合适只想用用,如果真得想玩转它控制它还是社区版本。或者有钱整个全套收费得也是一省百省。呵呵

    作者回复: 别放弃!有的时候坚持一下就过去了。我当初看源码就是这样的体会:)

    2019-06-11
    1
    3
  • 永光
    按照文章说的,我理解现在国内大部分用的都是apache kafka 是这样吧?

    作者回复: 就我这边观察到的,Confluent很少,创业公司多是CDH,大厂一般使用Apache Kafka,并且自己做了定制和改造

    2019-06-11
    3
  • 13501018051
    如果你仅仅需要一个消息引擎系统亦或是简单的流处理应用场景,同时需要对系统有较大把控度,那么我推荐你使用 Apache kafka,目前kafka的监控软件还挺多的单集群Kafka Offset Monitor,多集群kafka manager,grafana+prometheus+kafka Exporter
    2019-06-11
    3
  • a、
    我会选择apache kafka,因为只是用kafka做消息中间件衔接上下游,所以我不需要
    2019-06-11
    3
  • 莫问流年
    我会选择Apache Kafka,原因是只需要Kafka作为消息引擎衔接上下游业务,这种基本功能就社区版就可以保证。而且社区版的社区活跃,遇到问题可以得到更及时的响应。随着业务的开展和深入,我们也可以对其更好的把控。
    2019-06-11
    2
  • 铭毅天下
    conflunt的优势:原版人马打造,完善的 同步机制。国内也有公司在用,只不过资料少,就得多看英文资料。
    感觉:cinfluent更新也很快,应该是kafka未来!
    2019-06-19
    1
  • Skrpy
    哈哈哈,我还在读本科大三,不过非常想接触Kafka和Flink这些时下流行的大数据处理引擎,或者说流处理引擎。因为上一个学期在研讨课上给同学们分享了关于Flink的粗浅理解,在自学的过程中我也开始对“真正的”流处理引擎很感兴趣,提到Flink的地方总有“Kafka作为消息发布订阅”的字眼,于是有了许多联想,也感到学计算机真的要学很多东西。同时我也对开源这种精神和那些大神们充满崇敬和向往。但是现在自己觉得学到的东西还是太浅了,或者课堂上的基础知识也不知道如何自己实现和应用。但是有这样一种危机感,让我觉得必须一直学习,一直更新换代才行。由于之前自己的一些学习,对老师这5讲的内容还是接受得不错的,也很期待能学到从原理到实战的系统的知识。😁😁😁
    2019-06-11
    1
  • 大坏狐狸
    i'm right here waiting for you
    2019-06-11
    1
  • Garfield
    对于中小企业来说,CDH/HDP kafka是比较适合的,所有服务都上云,运维团队都省了。特别方便。
    2019-06-11
    1
  • 莱茵金属
    我想问下kafka性能测试工具有哪些?

    作者回复: 没有特别好的工具。Kafka自己提供了kafka-producer-perf-test和kafka-consumer-perf-test脚本可以做producer和consumer的性能测试。另外LinkedIn开源了一款名为kafka-monitor的端到端系统测试工具,也可以用来测试Kafka集群end-to-end的性能。有些遗憾的是这个工具几乎没什么人维护了,你可以试试吧(https://github.com/linkedin/kafka-monitor)

    2019-06-11
    1
  • 高志强
    最近接触使用到了两种kafka监控软件,一个是 kafka tools ,能够清晰的看到kafka存储结构。一个是 granafa,能看到消费的折线图。感觉棒棒哒~

    作者回复: 👍

    2019-12-05
  • 江湖夜雨
    看到这里总感觉还没有切入到kafka正题
    2019-11-30
  • 朱广彬
    老师,Client/Broker 跨版本具体会带来什么性能影响呢?Kafka 在1.1版本后做了协议兼容,允许Client/Broker 协议不一致。如果生产上Client/Broker 协议不一致,除了新协议的功能上不兼容,性能上有什么影响呢?比如Client 是1.1而Broker 是2.3,会不会影响比如Zero copy 而导致性能下降?

    作者回复: 功能上是兼容的,只是性能上可能会有影响,因为可能出现需要把消息格式向下转换成老版本的额外中间步骤,增加了延时,降低了TPS

    2019-09-03
  • 兔2🐰🍃
    胡老师,您好,请问如果有需要用作数据持久化存储,这些版本里面,应该关注哪个亦或是其他消息引擎?

    作者回复: 都可以的,只是用法不是太主流

    2019-08-22
  • 蓝心
    弱弱的问一句,此专栏适合的人群是哪些呢?个人之前没有接触过kafka,理解的入门应该从基本的安装,命令使用等开始,此专栏是否会有涉及?是否涉及小白人群?谢谢

    作者回复: 主要还是面向对Kafka有一定基础的

    2019-08-17
  • godtrue
    课前思考
    kafka还有好几种嘛?这个种类是在实现语言不同,还是版本不同?那有什么特点呢?
    课后思考
    1:读完之后发现,这里的kafka分类是按照开发的组织机构来分的,注意有三种。
    1-1:Apache Kafka
    1-2:Confluent Kafka
    1-3:CDH/HDP kafka
    他们各有优缺点,选择时根据自身情况来判断,如果,老师能列个表,将他们的开发组织,优劣势汇总一下,就更容易理解记忆啦😄
    如果我是这个架构师,首先选择Apache kafka,作为消息引擎系统应该足够,毕竟我们才开始,我又是架构师。后面看情况,公司发展的好赚钱多,就用CDH/HDP kafka 功能全效率高。最后考虑Confluent kafka 毕竟高级特性不一定用的到,合适的才是最好的——功能够花钱少,就合适。
    2019-08-11
  • chjxbt
    想问一下作者,文章中所说的社区是指哪个网站?有地址链接吗?我自己百度的kafka社区出来好几个中文社区看起来都不是很活跃的

    作者回复: 我说的是kafka官方社区,主要是邮件组

    2019-08-09
收起评论
35
返回
顶部