什么是Kafka?大系统没有它就有些麻烦了

什么是Kafka? 大系统没有它就有些麻烦了

这一期我们谈一下kafka。

我们先设定一下我们的场景。

我们有一个应用需要访问一些资源,比如说数据源。

当我们的应用比较少,比如说只有一个,数据库也比较少,只有一个的时候, 不存在任何问题。

我们想取数据,我们直接去数据库里取就好了。

但是,当我们的应用越来越多,数据源也越来越多的时候。每个应用可能需要访问多个数据源。有可能每个访问都用不同的方式和协议。可以想象一下。这种情况下会导致我们的程序非常复杂。我们获取数据库1需要一个特定的配置,获取访问数据库2也需要一个配置,有可能访问其他的数据资源,也会需要一个配置。这些不同的配置会使得我们的程序维护起来非常麻烦。

在现实中具体的例子比如说,我们有信息网站会获取数据,订单系统会获取数据,财务状况会获取数据,用户的输入请求会获取数据。数据的来源会是多种多样的,有可能来自某个数据库,有可能来自第三方的分析数据,也有可能是来自邮件系统,也有可能是来自你的审查系统。

解决上述这种复杂局面的一个方法,就是使用kafka。你可以把它理解成一个中间层。经过配置以后,你的应用程序不管是哪一种,只要获取数据, 都可以向kafka要。

而kafka接到数据请求指令以后, 会转到对应的数据源上, 经过这个中间层机制以后,在应用端的程序就会变的简单很多。

因为使用了kafka, 简化了你的程序设计。同时他又支持多个数据源,多个服务器,这样就大大增强了程序设计的,可分发性和可扩展性以及容错处理能力。

在可扩展性上,它支持横向可扩展,意思是说,你可以增加很多很多的服务器。

作为中间层,它的数据响应性能是很强的, 这个可能是因为它内部做了一些缓冲的处理机制。

目前有很多大公司都在使用kafka, 比如linkedin, netflix, airbnb, yahoo, walmart, mda等等。

在这些大公司中啊,使用案例都不太一样,因为这些公司的业务是不同的。比较典型的业务,有下面几个。消息管理系统, 活动跟踪系统, 位置数据收集系统,程序日志数据系统,数据流处理系统等等。

Kafka的最大作用就是消除了系统之间的依赖性,也就是耦合性。

除此之外,kafka还可以跟其他的大数据技术,比如Spark, Flink, Storm, Hadoop等等,集成使用。

这一期就说这些,希望对大家有所帮助。

这里是丁哥开讲,欢迎关注防止失联。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190811A02PKV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券