在kafka官网上对kafka的 定义叫:A distributed publish-subscribe messaging system。publish-subscribe是发布和订阅的意思,所以更准确的说kafka是一个消息订阅和发布的系统。publish- subscribe这个概念很重要,因为kafka的设计理念就可以从这里说起。
Kafka有哪些吸引程序员去使用的特点:
在Apache网站给出以下介绍
1. Fast(高吞吐量的,一个Kafka的broker每秒能读写数百M的数据)
A single Kafka broker can handle hundreds of megabytes of reads and writes per second from thousands of clients.
2.Scalable(可扩展的,不须停机就可扩展)
Kafka is designed to allow a single cluster to serve as the central data backbone for a large organization. It can be elastically and transparently expanded without downtime. Data streams are partitioned and spread over a cluster of machines to allow data streams larger than the capability of any single machine and to allow clusters of co-ordinated consumers
3.Durable(持久化的)
Messages are persisted on disk and replicated within the cluster to prevent data loss. Each broker can handle terabytes of messages without performance impact.
4.Distributed by Design(分布式的)
Kafka has a modern cluster-centric design that offers strong durability and fault-tolerance guarantees.
我们将消息的发布(publish)暂时称作producer,将消息的订阅(subscribe)表述为consumer,将中间的存储阵列称作broker,这样我们就可以大致描绘出这样一个场面:
生产者将数据生产出来,丢给broker进行存储,消费者需要消费数据了,就从broker中去拿出数据来,然后完成一系列对数据的处理。
乍一看这也太简单了,不是说了它是分布式么,难道把producer、broker和consumer放在三台不同的机器上就算是分布式了么。我们看kafka官方给出的图:
多个broker协同合作,producer和consumer部署在各个业务逻辑中被频繁的调用,三者通过zookeeper管理协调请求和转发。 这样一个高性能的分布式消息发布与订阅系统就完成了。图上有个细节需要注意,producer到broker的过程是push,也就是有数据就推送到 broker,而consumer到broker的过程是pull,是通过consumer主动去拉数据的,而不是broker把数据主动发送到 consumer端的。
整个系统运行的顺序:
1. 启动zookeeper的server
2. 启动kafka的server(broker),注册在zookeeper上
3. Producer如果生产了数据,会先通过zookeeper找到broker,然后将数据存放进broker
4. Consumer如果要消费数据,会先通过zookeeper找对应的broker,然后消费。
相关推荐
**KAFKA分布式消息系统在Windows环境下的搭建与应用** KAFKA是一个高吞吐量的分布式消息系统,由LinkedIn开发并开源,现在是Apache软件基金会的顶级项目。它主要设计用于处理实时流数据,允许应用程序发布和订阅...
Kafka是一种高吞吐量的分布式消息队列系统,它最初由LinkedIn开发,后来成为了Apache软件基金会的顶级项目。Kafka的主要设计目标是提供低延迟、高可扩展性和容错性的消息传递服务。在大数据处理场景中,Kafka常用于...
**基于分布式的发布订阅消息系统Kafka** Kafka是一种高性能、可扩展的分布式消息系统,由LinkedIn开发并贡献给了Apache软件基金会。它被设计为一个实时处理大量数据的平台,适用于大数据流处理、日志聚合、网站活性...
总结,Kafka分布式发布订阅消息系统v3.3.1不仅在性能和稳定性上有所提升,也为开发者提供了更丰富的功能和更好的使用体验。无论是进行大数据处理、系统集成还是学习分布式系统原理,Kafka都是一个值得深入研究的重要...
1. 发布和订阅操作批量处理,利用系统Page Cache减少内存拷贝。 2. 利用sendfile系统调用优化网络传输,避免额外的内存拷贝。 3. 消费者可以累积确认消息,当确认某偏移量,表示之前消息已被接收,Broker 更新...
《Kafka分布式发布订阅消息系统 v2.6.3 深度解析》 Apache Kafka是一款高吞吐、低延迟的分布式发布订阅消息系统,它最初由LinkedIn开发,并于2011年开源,后来成为了Apache顶级项目。Kafka v2.6.3是其稳定且功能...
Kafka 和 ZooKeeper 可以一起使用,提供一个高性能、可扩展性强、可靠的分布式消息系统。Kafka 负责消息的传递和存储,而 ZooKeeper 负责分布式应用的协调和管理。这样可以提供一个更可靠、更高效的分布式系统。 ...
Kafka 是一种分布式消息系统,最初由 LinkedIn 开发,现在是 Apache 软件基金会的顶级项目。Kafka 主要设计目标是处理大规模实时数据,它适用于日志聚合、流处理和作为微服务间的通信桥梁。 Kafka 的核心概念包括...
**Kafka分布式消息系统在Linux环境下的应用与实践** Kafka是一种高性能的分布式消息系统,由LinkedIn开发并贡献给了Apache软件基金会。它被设计为一个可扩展、容错且低延迟的消息中间件,广泛用于大数据实时处理、...
参与翻译(4人):fbm, 飞翔的猴子, Khiyuan, nesteaa 感谢这些同志们的辛勤工作,翻译的真不错,目前见到的最好的Kafka中文文章
综上所述,这个名为`kafkaDemo`的项目实现了Spring Boot与Kafka的集成,能够轻松地发布和订阅消息,同时也支持动态修改Kafka配置和适应不同JDK版本,是构建分布式系统中的理想组件。通过理解和实践这个项目,开发者...
华为大数据认证,消息队列Kafka
是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。 消息的发布(publish)称作producer,消息的订阅(subscribe)称作consumer,中间的存储阵列称作broker。 多个broker协同合作,producer、consumer和...
Kafka是一种高性能、分布式的消息发布与订阅系统,被广泛应用于日志收集、流处理、消息传递等多个领域。为了提高系统的可用性与扩展性,通常会采用分布式集群的方式部署Kafka。本文将详细介绍如何在三台CentOS服务器...
作为下一代分布式消息系统,Kafka 提供了发布/订阅消息队列的机制。Kafka 的这些特点为构建可靠的分布式系统和大数据处理提供了坚实的基础。 首先,分布式系统的核心在于能够分布在多个物理机器上运行,分布式系统...
Kafka的主要特点包括消息持久化、支持多消费者和发布/订阅模型,以及对分布式系统的良好支持。 1. **完全分布式部署**:在5台虚拟机上设置Kafka集群,我们需要配置每台机器上的`server.properties`文件,确保正确的...
为您提供kafka分布式发布订阅消息系统下载,kafka是一种高吞吐量的分布式发布订阅消息系统。她有如下特性:1、通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定...
教程视频:Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统
kafka是一种高吞吐量的分布式发布订阅消息系统。 她有如下特性: 1、通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。 2、高吞吐量:即使是非常普通的硬件...
Kafka的核心特性在于其分布式、分区化、多副本的设计,以及与Zookeeper的紧密协作,使其成为一种强大的日志收集系统和消息中间件。 Kafka的设计目标极具前瞻性,它旨在以O(1)的时间复杂度实现消息的持久化,确保...