Kafka 概述 核心组件及特性

什么是Kafka

  • Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。
  • Kafka最初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。
  • Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。
  • Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。
  • 无论是kafka集群,还是producer和consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性

    在讨论kafka 的特性之前,我们需要理解发布订阅消息的概念及其重要性。在这作者简要说明一下,发布-订阅消息队列的特征是消息的sender(publisher)并不直接将data(message)发送给receiver, publisher 以某种方法对消息进行分类,而receiver (subscriber) 会订阅接收特定类别的消息。Pub/Sub 系统通常会有broker(消息被发布到的中心点)来进行实现,消息将被发送至broker。

    Kafka 核心组件

    参照下图来看下Kafka的几个核心组件,之后作者会对这些组件进行详细的介绍
    这里写图片描述

  • Topic:每一类消息的主题,Kafka将消息按照主题分类
  • Producer:发送消息者
  • Consumer:消费消息者(必须订阅后才可以消费,一个消费者可以消费1个或多个主题)
  • broker:发送的消息保存在一组服务器上,称之为Kafka集群,集群中的每一个Kafka就是一个blocker

Message 和 Batches

Kafka 中最基本的数据单元是消息message,如果使用过数据库,那么可以把Kafka 中的消息理解成数据库里的一条记录。消息是由字符数组组成的,kafka 并不关系它内部是什么,索引消息的具体格式与Kafka 无关。消息可以有一个可选的key,这个key 也是个字符数组,与消息一样,对于kafka 也是透明的。key 用来确定消息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值