| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 深入kafka设计原理-kafka基础概念 -> 正文阅读 |
|
[大数据]深入kafka设计原理-kafka基础概念 |
kafka基础概念kafka应用场景kafka是LinkedIn最初设计并开源出来的分布式事件流平台, 它主要支持发布和订阅消息、持久存储消息以及追溯事件流等. kafka生态非常的成熟, 一般kafka可以有以下场景: 消息系统 流式处理平台 事件存储系统 kafka基本概念kafka主要分为生产者producer、服务器broker和消费者consumer三大元素. 生产者producer主要是构建消息并发送到服务器broker、服务器broker接收消息并存储在本地磁盘、消费者consumer从服务器broker获取消息并处理. 整体架构图如下: ? 主题Topic和分区Partition Kafka通过分区实现了消息的多副本保存以及伸缩性, 同一个主题分区的副本消息会尽可能保存在不同的服务器实例上, 用于达到某个服务器实例崩坏, 分区数据依然可用的目的. 一般的主题都会有多个分区, 不同的消息落到不同分区, 这样消费者端可以并行消费, 极大提高性能. 而且每一个分区的消息可以保证顺序性, 先发送到分区的消息将先消费, 可以很好的适配某些需要顺序性处理的业务. 服务器Broker 生产者Producer和消费者Consumer 选择kafka的理由多生产者和多消费者 高性能高吞吐量 除了分区设计带来的高并发性, kafka支持通过批量和压缩消息来提高整个网络的利用率. 生产者可以指定压缩类型, 所有发送的消息都会经过对应的压缩算法进行压缩后发送. 为了更加的高效, kafka在发送前还会将消息进行批量组装, 每次发送前都是将多个消息一起压缩后再发送, 极大的减少带宽占用. 服务器端在接收到压缩后的消息, 不需要进行解压缩, 只会按照压缩后原始存在磁盘中, 而后再消费者的请求中将压缩后的消息发给消费者, 消费者再采用同样的压缩算法进行解压. 高可靠性 顺序性、持久化和消息回溯 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/21 9:23:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |