kafka是什么意思

Python032

kafka是什么意思,第1张

kafka的意思是:卡夫卡。

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据

这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。

kafka的架构师jay kreps对于kafka的名称由来是这样讲的,由于jay kreps非常喜欢franz kafka。并且觉得kafka这个名字很酷,因此取了个和消息传递系统完全不相干的名称kafka,该名字并没有特别的含义。

kafka的诞生,是为了解决linkedin的数据管道问题,起初linkedin采用了ActiveMQ来进行数据交换,大约是在2010年前后,那时的ActiveMQ还远远无法满足linkedin对数据传递系统的要求。

经常由于各种缺陷而导致消息阻塞或者服务无法正常访问,为了能够解决这个问题,linkedin决定研发自己的消息传递系统,当时linkedin的首席架构师jay kreps便开始组织团队进行消息传递系统的研发。

卡夫卡本身有什么明显的缺点。如果回到几年前,Kafka、0.8版本,也许可以说他缺少了一些功能,比如认证、SSL端到端加密、相对易用的管理和操作工具等等;和现役MQ 1历史上积累的工具相比,差很多。不过最新版本的卡夫卡已经弥补了这些问题,各种功能工具也逐渐完备。

如果说卡夫卡有什么缺点的话,那可能就是操作维护略显复杂。您可能需要安装许多组件并调整一些操作系统参数来调整Kafka。一些好处(如消息重放)需要额外的开发。对于一些一致性控制,卡夫卡选择在底层暴露一些细节,让集成的开发者来控制。不能拆包。对于小团队来说,这样的运维成本有些高。但是对于一个高性能的系统来说,这些作品是理所当然的。

另外,Kafka并不支持Java的那些“标准消息传递”协议,所以如果应用场景一定要使用这些标准,你就只能和Kafka说再见了。(但是在这里,我必须吐出来。除了抽象层,那些标准协议根本无法解决消息传递系统中的许多实际问题。但是Kafka确实解决了那些问题,比如HA、自动客户端重新连接、自动重复数据删除等。)

————————————————

版权声明:本文为CSDN博主“赵涵老师”原创文章,遵循CC 4.0 BY-SA版权协议。转载请附上原始来源和本声明的链接。

原文链接:https://blog.csdn.net/qfzhaohan/article/details/121338147