首页技术文章正文

Kafka是什么?kafka有什么优点?

更新时间:2020-05-29 来源:黑马程序员 浏览量:

Kafka是一个高吞吐量的分布式发布订阅消息系统,它在实时计算系统中有着非常强大的功能。通常情况下,使用Kafka构建系统或应用程序之间的数据管道,用来转换或响应实时数据,使数据能够及时地进行业务计算,得出相应结果。

 

1590724018089_kafa.jpg


Kafka是由Apache软件基金会开发的一个开源流处理平台,它使用Scala和Java语言编写,是一个基于Zookeeper系统的分布式发布订阅消息系统,该项目的设计初衷是为实时数据提供一个统一、高通量、低等待的消息传递平台。在0.10版本之前,Kafka只是一个消息系统,主要用来解决应用解耦、异步消息等问题,在0.10版本之后,Kafka推出了连接器与流处理的功能,使其逐渐成为一个流式数据平台。

 

ApacheKafka作为分布式消息系统,可以处理大量的数据,并能够将消息从一个端点传递到另外一个端点。Kafka系统在大数据领域中的应用非常普遍,它能够在离线和实时两种大数据计算架构中处理数据,这得益于Kafka的众多优点,其优点具体如下。

 

(1)解耦。Kafka具备消息系统的优点,只要生产者和消费者数据两端遵循接口约束,就可以自行扩展或修改数据处理的业务过程。

(2)高吞吐量、低延迟。即使在非常廉价的机器上,Kafka也能做到每秒处理几十万条消息,而它的延迟最低只有几毫秒。

(3)持久性。Kafka可以将消息直接持久化在普通磁盘上,且磁盘读写性能优异。

(4)扩展性。Kafka集群支持热扩展,Kaka集群启动运行后,用户可以直接向集群添。

(5)容错性。Kafka会将数据备份到多台服务器节点中,即使Kafka集群中的某一台加新的Kafka服务节点宕机,也不会影响整个系统的功能。

(6)支持多种客户端语言。Kafka支持Java、.NET、PHP、Python等多种语言。

 

在大数据计算系统的开发场景中,若需要对接外部数据源时,就可以使用Kafka系统,如读者熟悉的日志收集系统和消息系统,Kafka读取日志系统中的数据,每得到一条数据,就可以及时地处理一条数据,这就是常见的流式计算框架。在流式计算框架中,Kafka一般用来缓存数据,它与Apache旗下的Spark、Storm等计算框架有着非常好的集成,这些计算框架可以接收Kafka中的缓存数据并进行计算,实时得出计算结果。

1577370495235_学IT就到黑马程序员.gif


Kafka使用消费组(ConsumerGroup)的概念统一了点对点消息传递模式和发布订阅消息传递模式,当Kafka使用点对点模式时,它可以将待处理的工作任务平均分配给消费组中的消费者成员;当使用发布订阅模式时,它可以将消息广播给多个消费组。Kafka采用多个消费组结合多个消费者,既可以扩展消息处理的能力,也允许消息被多个消费组订阅。

猜你喜欢:

机器学习可以应用于哪些领域?

什么是机器学习?

大数据系统中的消息传递模式

分享到:
在线咨询 我要报名
和我们在线交谈!