kafka基本介绍

1 卡夫卡消息队列简介

1.1 消息队列

1.1.1 基本特性

  1. 可扩展

    • 在不需要下线的情况下进行扩容
    • 数据流分区(partition)存储在多个机器上
  2. 高性能

    • 单个broker就能服务上千客户端
    • 单个broker每秒种读/写可达每秒几百兆字节
    • 多个brokers组成的集群将达到非常强的吞吐能力
    • 性能稳定,无论数据多大
  3. 持久存储

    • 存储在磁盘上
    • 冗余备份到其他服务器上以防止丢失

1.1.2 消息格式

  1. 一个topic对应一种消息格式,因此消息用topic分类
  2. 一个topic代表的消息有1个或者多个patition(s)组成
  3. 一个partition中

    • 一个partition应该存放在一到多个server上

      • 如果只有一个server,就没有冗余备份,是单机而不是集群
      • 如果有多个server
        • 一个server为leader
        • 其他servers为followers
        • leader需要接受读写请求
        • followers仅作冗余备份
        • leader出现故障,会自动选举一个follower作为leader,保证服务不中断
        • 每个server都可能扮演一些partitions的leader和其它partitions的follower角色,这样整个集群就会达到负载均衡的效果
    • 消息按顺序存放
    • 消息顺序不可变
    • 只能追加消息,不能插入
    • 每个消息都有一个offset,用作消息ID, 在一个partition中唯一
    • offset有consumer保存和管理,因此读取顺序实际上是完全有consumer决定的,不一定时线性的
    • 消息有超时日期,过期则删除

1.1.3 生产者 producer

  • producer将消息写入kafka
  • 写入要指定topic和partition
  • 消息如何分到不同的partition,算法由producer指定

1.1.4 消费者 consumer

  • consumer读取消息并作处理
  • consumer group
    • 这个概念的引入为了支持两种场景:每条消息分发一个消费者,每条消息广播给所有消费者
    • 多个consumer group订阅一个topic,该topci的消息广播给所有consumer group
    • 一条消息发送到一个consumer group后,只能由该group的一个consumer接收和使用
    • 一个group中的每个consumer对应一个partition可以带来如下好处
      • 可以按照partition的数目进行并发处理
      • 每个partition都只有一个consumer读取,因而保证了消息被处理的顺序是按照partition的存放顺序进行,注意这个顺序受到producer存放消息的算法影响

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 15:03:44

kafka基本介绍的相关文章

Kafka入门介绍

1. Kafka入门介绍 1.1 Apache Kafka是一个分布式的流平台.这到底意味着什么? 我们认为,一个流平台具有三个关键能力: ① 发布和订阅消息.在这方面,它类似一个消息队列或企业消息系统.(生产和消费消息) ② 以容错的方式存储消息流.(存储消息) ③ 当消息流发生时处理它们.(处理消息) 1.1.1 kafka的优势 它应用于两大类应用: ① 构建实时的流数据管道,可靠地获取系统和应用程序之间的数据.(获取数据) ② 构建实时流的应用程序,对数据流进行转换或反应.(处理数据)

消息队列之kafka(基础介绍)

一.关于JMS 1. JMS 的基础 ??JMS是Java提供的一套技术规范.即Java消息服务(Java message service).应用程序接口.是一个Java平台中关于面向消息中间件的API.用于在两个应用程序之间或者分布式系统中发送消息,进行异步通信.Java消息服务是一个与具体平台无关的API.??用来异构系统集成通信,缓解系统瓶颈. 提高系统的伸缩性.增强系统用户体验.使得系统模块化和组件化变得可行并更加灵活.JAVA2EE十三大规范:https://blog.csdn.net

【转帖】Kafka入门介绍

https://www.cnblogs.com/swordfall/p/8251700.html 最近在看hdoop的hdfs 以及看了下kafka的底层存储,发现分布式的技术基本上都是相同的. 都是通过增加一个coordinator的节点作为存储元数据, 将实体数据放到datanode 里面来提高容量.而且也跟微服务类似,将一个单体应用拆开分多份,放到不同的node节点中来 并且通过replication 来保证高可用.通过服务注册中心统一进行管理. 微服务 hadoop kafka 都是通过

Kafka简要介绍

介绍: Kafka是一个高吞吐量的分布是消息系统 ,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础.现在它已为多家不同类型的公司作为多种类型的数据管道(data pipeline)和消息系统使用. 现在Kafak作为apache的项目,被apache托管. 企业应用的背景: 企业集成的基本特点是把企业中现存的本不相干的各种应用进行集成.例如:一个企业可能想把财务系统和仓管系统进行集成,减少部门间结算和流通的成

kafka详细介绍,安装,配置

1.简介 Kafka is a distributed,partitioned,replicated commit logservice.它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现.kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker.无论是kafka集群,还是producer和consumer都依赖于zookeep

kafka 基础介绍

kafka 基础 kafka有四个核心API: 应用程序使用 Producer API 发布消息到1个或多个topic(主题). 应用程序使用 Consumer API 来订阅一个或多个topic,并处理产生的消息. 应用程序使用 Streams API 充当一个流处理器,从1个或多个topic消费输入流,并生产一个输出流到1个或多个输出topic,有效地将输入流转换到输出流. Connector API允许构建或运行可重复使用的生产者或消费者,将topic连接到现有的应用程序或数据系统.例如,

kafka综合介绍

设计目标 高吞吐率.即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输. 支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输 同时支持离线数据处理和实时数据处理 Scale out:支持在线水平扩展 以时间复杂度为O(1)的方式提供消息持久化能力 性能比较 对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间.测试数据分为128Bytes.512Bytes.1K和10K四个不同大小的

kafka具体解释一、Kafka简单介绍

背景: 当今社会各种应用系统诸如商业.社交.搜索.浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临例如以下几个挑战: 怎样收集这些巨大的信息 怎样分析它 怎样及时做到如上两点 以上几个挑战形成了一个业务需求模型,即生产者生产(produce)各种信息,消费者消费(consume)(处理分析)这些信息,而在生产者与消费者之间,须要一个沟通两者的桥梁-消息系统. 从一个微观层面来说,这样的需求也可理解为不同的系统之间怎样传递消息. Kafka诞生:由 linked-in 开源 kaf

kafka 简单介绍

Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以topic为单位进行归纳. 将向Kafka topic发布消息的程序成为producers. 将预订topics并消费消息的程序成为consumer. Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker. producers通过网络将消息发送到Kafka集群,集群向消费者提供消