Kafka - 应该选择哪种Kakfa? Apache/Confluent/CDH/HDP

发布时间 2023-08-29 11:03:25作者: frank_cui

三种kafka的优缺点

  • Apache Kafka,也称社区版 Kafka。优势在于迭代速度快,社区响应度高,使用它可以让你有更高的把控度;缺陷在于仅提供基础核心组件,缺失一些高级的特性。
    • 社区版 Kafka 只提供一种连接器,即读写磁盘文件的连接器,而没有与其他外部系统交互的连接器,在实际使用过程中需要自行编写代码实现
    • 没有提供任何监控框架或工具。显然在线上环境不加监控肯定是不可行的,你必然需要借助第三方的监控框架实现对 Kafka 的监控
      • 两种kafka监控软件,一个是 kafka tools ,能够清晰的看到kafka存储结构。一个是 granafa,能看到消费的折线图
  • Confluent Kafka,Confluent 公司提供的 Kafka。优势在于集成了很多高级特性且由 Kafka 原班人马打造,质量上有保证;缺陷在于相关中文文档资料不全,普及率较低,没有太多可供参考的范例。
  • CDH/HDP Kafka,大数据云公司提供的 Kafka,内嵌 Apache Kafka。优势在于操作简单 (所有的操作都可以在前端 UI 界面上完成,这些平台提供的监控界面也非常友好),节省运维成本;缺陷在于把控度低,演进速度较慢。

 

如果你是创业公司的架构师,你怎么选择?

Q:设想你是一家创业公司的架构师,公司最近准备改造现有系统,引入 Kafka 作为消息中间件衔接上下游业务。作为架构师的你会怎么选择合适的 Kafka 发行版呢?

 

A1:通常来说,创业公司多是CDH;大厂一般使用Apache Kafka,并且自己做了定制和改造。

1. 如果是非常紧急的项目,优先选择商业版,毕竟花了钱以后,有人support。

2. 如果是研究性质或者时间相对宽松的项目,选择Apache Kafka,可以在和社区不断交流的过程中加深理解,根据项目需求,做一些定制。

 

A2:因为是创业公司改造现有架构,那么我需要考虑这样几点:

1. 紧急程度有多高,如果替换比较慢对业务有多大影响.

2. 有多少开发人员能够参与这个工作.

3. 后期运维能不能跟得上. 如果紧急程度不高,且有足够的开发参与,运维也给力,那么我会考虑上原生的apache kafka,然后通过自研的组件打通全流程。

反之我会考虑购买现成的产品,毕竟拿来直接用且有人做运维也能节省成本,还能使产品快速上线。何乐而不为呢?而且如果很紧急,我们的产品还是部署在阿里云上,那么我直接买阿里云的现成的服务,这样更适合创业团队。