Kafka_数据分发中间件

目录

 

一、前言

二、Kafka概述

2.1 产生背景

2.2 kafka的作用

2.3 kafka特点

2.4 kafka典型应用场景

2.5 Flume 与 Kafka 的区别

三、Kafka 设计架构

3.1 基本架构

3.2 各个组件详解

1、Kafka Producer

2、Kafka Broker

3、Kafka Consumer

4、Zookeeper

3.3 关键技术点

1、可控的可靠性级别

2、数据多副本

3、高效的持久化机制

4、数据传输优化:批处理与 zero-copy 技术

5、可控的消息传递语义


一、前言

  数据采集上来后,需要送到后端的组件进行进一步的分析,前段的采集和后端的处理往往是多对多的关系。为了简化传送逻辑,增强灵活性,在前端的采集和后端的处理之间需要一个消息中间件来负责消息转发,以保障消息可靠性,匹配前后端的速度差。

二、Kafka概述

kafka官网地址

kafka文档地址

2.1 产生背景

  Kafka 是 LinkedIn 于 2010 年 12 月开源的消息系统,主要用于处理活跃的流式数据。活跃的流式数据在Web网站应用中很常见,这些数据包括网站的PV、用户访问了什么内容、搜索了什么内容等,这些数据通常以日志的形式被记录下来,然后每隔一段时间进行一次统计处理。

  传统的日志分析系统提供了一种离线处理日志消息的可扩展方案,但若要进行实时处理,通常会有较大延迟。而现有的消息(队列)系统能够很好地处理实时或者近似实时地应用,但未处理的数据通常不会写到磁盘,这对于Hadoop之类(一小时或者一天只处理一部分数据)的离线应用而言,可能存在问题。Kafka正式为了解决以上问题而设计的,它能够很好地处理离线和在线应用。

2.2 kafka的作用

1、消息中间件:避免生产者和消费者直接互通产生的彼此高度依赖,使得两者中任何一个有变化,都不会影响另一方。

2、消息队列:缓存生产者产生的数据,使得消费者可以重复消费历史数据(比如数据处理后发现结果存在问题,需要重新读取数据进行处理);平滑生产者产生数据速度和消费者处理速度的不对等。

3、发布订阅系统:消费者可订阅某类主题的数据,当生产者产生对应主题的数据后,所有订阅者会快速获取到数据,即消费者可快速获取新增数据。另外,可随时增加新的消费者而无需进行任何系统层面的修改。

4、消息总线:所有收集到的数据会流经Kafka,之后由Kafka分流后,进入各个消费者系统。

2.3 kafka特点

1、高性能:相比于RabbitMQ等其他消息队列,Kafka优秀的设计实现使得它具有更高的性能和吞吐率。经LinkedIn对比测试,单台机器同等配置下,以单位时间内处理的消息数为指标,Kafka 比 RabbitMQ 等消息队列高 40~50 倍。

2、良好的扩展性:Kafka 采用分布式设计架构,数据经分片后写入多个节点,既可以突破单节点数据存储和处理的瓶颈,也可以实现容错等功能。

3、数据持久性:数据消息均会持久化到磁盘上,并通过多副本策略避免数据丢失。Kafka采用了顺序写、顺序读和批量写等机制,提升磁盘操作的效率。

2.4 kafka典型应用场景

1、消息队列:与RabbitMQ和ZeroMQ等开源消息队列相比,Kafka具有高吞吐量、自动分区、多副本以及良好的容错性等特点,这使得它非常适合大数据应用场景。

2、流式计算框架的数据源:在流式计算框架(如Storm、Spark Streaming等),为了保证数据不丢失,具备“at least once”数据发送语义,通常在数据源中使用一个高性能的消息队列,从而形成了“分布式消息队列 + 分布式流式计算框架”的实时计算框架。

3、分布式日志收集系统中的Source或Sink:可与日志收集组件 Flume 或 Logstash 组合使用,担任Source 或 Sink 的角色,Flume或Logstash提供可配置化的Source和Sink,Kafka提供分布式高可用的消息系统,进而形成一个在扩展性、吞吐率等方面都非常优秀的分布式系统。

4、Lambda Architecture 中的 Source:同时为批处理和流式处理两条流水线提供数据源,各种流式数据直接写入Kafka,之后由Hadoop批处理集群和Storm流式处理集群分别读取,进行相应的处理,最终将结果合并后,呈现给用户。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值