一、数据湖背景中的消息层

1、消息层

  • 数据湖中的消息层应该具有以下功能:
  • 该层的一项核心功能是对源头和终端进行解耦
  • 能够处理来自应用服务器节点每秒几百MB的高速信息流
  • 能够处理TB甚至PB级数据
  • 能够低延迟、高吞吐的处理消息
  • 能够保证信息按照时间有序传输向多个消费者传递相同消息的能力。
  • 能够对运营统计数据进行分析,聚合来自不同数据源的数据并分析
  • 借助廉价硬件实现高性能
  • 能够实现最低程度的数据增加与转换

2、技术路线图

2020-10-02【学习笔记】【企业数据湖】七、基于Apache Kafka构建消息层(1)

3、什么是Apache Kafka

详情见wiki百科,Apache Kafka

简述一下吧:ApacheKafka就是一个提供了一个中间层,解耦了数据源和数据消费者,同时提供消息层应有的数据处理能力。

二、为什么使用ApacheKafka

1、Kafka简史

Kafka最初是由LinkedIn的一个工程团队开发的,随后在2011年初,作为Apache软件基金会的一个开源项目发布。kafka是linkedin的消息传输平台。该项目于2012年升级为Apache顶级项目。

2、kafka的优势

  • 高吞吐
  • 低延迟
  • 容错性
  • 可伸缩性
  • 分布式
  • 消息分发能力
  • 高并发
  • 默认持久性
  • 对消费者友好
  • 批量处理能力
  • 能够处理数据湖通常需要的各种用例
  • 专为用于商用软件设计
  • 有助于对数据处理流水线解耦
  • 有助于实时处理数据数据流水线
  • 开源,且有非常活跃的社区
  • 能够与spark很好的协作
  • 为了将消息流式传输给消费者,可以通过操作系统的特性进行提速

3、kafka的劣势

  • 没有一整套管理和监控工具
  • broker会使用某些系统调用想consumer传递消息,如果对消息进行处理,则会降低系统性能
  • kafka仅匹配确切的topic名称,不支持通配符匹配
  • 其他语言所需的api由不同的个人或企业维护,可能导致问题的出现
  • kafka的broker及其方法往往被认为过于简单。不利于部署和维护
  • 本质上,kafka不关心消息大小,但是当其过大时,将会影响内存使用效率,吞吐量和性能
  • 随着集群规模的提升,性能和反应速度会下降
  • 缺乏对消息系统范式的支持,如请求,响应、点对点对列等

相关文章:

  • 2021-12-15
  • 2022-12-23
  • 2021-09-29
  • 2022-12-23
  • 2021-05-25
  • 2021-11-23
  • 2022-12-23
猜你喜欢
  • 2021-10-23
  • 2021-11-07
  • 2021-12-29
  • 2021-12-08
  • 2021-10-24
  • 2021-05-31
  • 2022-12-23
相关资源
相似解决方案