Kafka开篇

2023-09-17 09:53:43

前言

从本篇开始对个人Kafka学习做一个总结, 目标有这么几个。

  1. 从概念架构角度, 对消息中间件形成概要认知;
  2. 从使用角度, 掌握其常见用法;
  3. 从性能角度, 探究其高性能实现机制;

消息中间件的用途

  1. 从消息生产和消费的角度, 平衡消费者和消费者的速率差。基于该点可以做到削峰填谷, 比如流量突发, 日志处理等。
  2. 从系统解耦的角度, 解耦生产者和消费者的时空耦合。基于该点可以解耦系统依赖, 进而实现异步化处理。

消息中间件的概念架构

  1. 消息中间件类似于消息的临时中转站;
  2. 中转站需要接收生产者发送的消息, 并将消息以某种形式发送给消费者;
  3. 如果QoS级别要做到不丢失消息, 中转站则必须支持持久化存储;
  4. 如果中间件工作于分布式系统中, 则需要考虑可用性和伸缩性问题, 涉及集群元数据和存储数据;

Kafka的概念架构

在这里插入图片描述

  1. Kafka工作在分布式环境下;
  2. 输入消息和输出消息都通过broker来完成;
  3. Kafka通过topic和partion两级颗粒度管理消息;
  4. 元数据的高可用和伸缩通过Zookeeper来保证, 高版本中移除了Zookeeper的依赖, 由每个存储节点来维护;
  5. 存储数据的高可用和伸缩通过Partion和Replicaton Set来保证;

小结

本文作为Kafka系列的开篇, 介绍消息中间件的场景用途和概念架构,Kafka的顶层架构。后续会对整个过程相关的对象, 以及收发过程中存在的问题做更进一步的介绍, 感谢您的阅读。

更多推荐

前端中blob文件流和base64的区别

在前端中,base64和fileBlob是用于处理文件数据的两种不同方式。1.Base64编码Base64是一种将二进制数据转换为文本字符串的编码方式。它将文件数据转换为一串由ASCII字符组成的字符串。在前端中,可以使用JavaScript的btoa()和atob()函数来进行Base64编码和解码。优点:-Base

基於RISC-V QEMU 仿真運行Linux 系統環境搭建

前言文章詳細說明如何從堶零開始基於RISC-VQEMU仿真運行Linux系統環境搭建,是Linux小白入門教程不二之選,歡迎留言討論,轉發請注明原文出處~1.準備QEMU仿真環境--RISC-V64bits安裝包下載地址:https://www.qemu.org/安裝命令及安裝成功效果如下所示,target-list設

RabbitMQ常见的应用问题

文章目录1.消息可靠性保障2.消息的幂等性保障1.消息可靠性保障在实际生产环境中,可能会由于网络问题导致消息接收异常产生某种影响,基于这种情况我们需要保障消息的可靠性。RabbitMQ中的消息可靠性也称为消息补偿,如下图所示,可以保证消息的可靠性。分为9种种步骤实现消息补偿1、生产者处理业务逻辑,将数据写入到数据库。2

【云原生】kubernetes应用程序包管理工具Helm

Helm什么是Helm安装Helm重要概念使用Helm1简介官网地址:HelmHelm是一个Kubernetes应用程序包管理工具,它允许你轻松管理和部署Kubernetes应用程序。Helm通过使用称为Charts的预定义模板来简化Kubernetes应用程序的部署和管理。Chart包含了一组Kubernetes对象

【云原生 | 58】Docker三剑客之Docker Swarm中的调度器

🍁博主简介:🏅云计算领域优质创作者🏅2022年CSDN新星计划python赛道第一名🏅2022年CSDN原力计划优质作者🏅阿里云ACE认证高级工程师🏅阿里云开发者社区专家博主💊交流社区:CSDN云计算交流社区欢迎您的加入!目录1、spread调度策略2、binpack调度策略👑👑👑结束语👑👑👑

[Django-1] 快速建立项目

初始化Django初始化项目创建app项目和app的关系下面的代码一般放在view.py中项目启动项目中中的urls.py和app中的urls.py的关系ModelDjango生成表查询理解初始化项目python-mpipinstallDjangocd到想要创建项目的目录django-adminstartproject

【云原生之Docker实战】使用Docker部署flatnotes笔记工具

【云原生之Docker实战】使用Docker部署flatnotes笔记工具一、flatnotes介绍1.1flatnotes简介1.2flatnotes特点二、本地环境介绍2.1本地环境规划2.2本次实践介绍三、本地环境检查3.1检查Docker服务状态3.2检查Docker版本3.3检查dockercompose版本

036:vue导出页面生成pdf文件

第036个查看专栏目录:VUE------elementUI专栏目标在vue和elementUI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。(1)提供vue2的一些基本操作:安装、引用,模板使用,computed,watch,生命周期(beforeCreate,created,befo

Hadoop sqoop

0目录1.安装sqoop2.补充sqoop流程1.安装sqoop解压、改名[root@kb129install]#tar-xvf./sqoop-1.4.7.tar.gz-C/opt/soft/[root@kb129soft]#mvsqoop-1.4.7/sqoop147拷贝配置文件[root@kb129conf]#pw

[k8s] kubectl port-forward 和kubectl expose的区别

kubectlport-forward和kubectlexpose是Kubernetes命令行工具kubectl提供的两种不同方式来公开服务。kubectlport-forwardkubectlport-forward命令用于在本地主机和集群内部的Pod之间建立一个临时的端口转发通道。该命令将本地机器上的一个端口绑定到

DVWA靶机,通过XSS盗取cookie登录

文章目录一发现XSS漏洞1.1登录DVWA,找到XSS(DOM)模块,测试XSS是否存在。1.2在选项的传参后面加入一串js代码,也就是可以XSS弹出的代码。payload如下:二、盗取cookie2.1在XSS平台上搭建一个测试项目。这里用的是免费的XSS平台:选择【我的项目】->【创建】,创建一个测试项目:2.2配

热文推荐