大数据
文章平均质量分 83
尚硅谷铁粉
IT学习资料分享
展开
-
MySql的安装与使用详细步骤
图解MySQL程序结构一、MySql数据库产品的介绍MySQL产品的特点MySQL数据库隶属于MySQL AB公司,总部位于瑞典,后被oracle收购。优点:成本低:开放源代码,一般可以免费试用性能高:执行很快简单:很容易安装和使用二、MySql数据库的安装DBMS分为两类:基于共享文件系统的DBMS (Access)基于客户机——服务器的DBMS(MySQL、Oracle、SqlServer)MySQL的版本社区版(免费)企业版(收费)...转载 2022-05-06 15:05:30 · 356 阅读 · 0 评论 -
大数据时代,如何防止数据丢失?
在大数据的领域中,数据显得尤其的重要。在每一个组件、每一个步骤中,我们都要对数据进行妥善的处理、保护,才能得到更有说服力、有意义的数据。所以数据丢失,就成为了一件非常严重的事情;所以在我们的生产环境中,防止数据丢失就显得尤其重要。第1章 引言Kafka作为我们消息队列的中间件,基于订阅和发布的消息队列;解除生产者(消息源)和消费者(数据接收处)的耦合关系,消除某时段数据传输速度高峰值,启动一个缓冲的作用。Kafka以时间复杂度O(1)的方式提供消息持久化能力,即使应对TB级以上数据也能保证一原创 2022-04-29 14:46:01 · 1491 阅读 · 0 评论 -
Django环境搭建
python 环境准备安装python配置python环境变量在系统变量中添加python的环境变量配置path使环境变量生效django—windows下环境准备pip install Django(这里已经安装过了)升级pip可以用pip install --upgrade pip命令查看django版本django创建web应用创建站点(切换到你要创建的目录如:D:\py_workspace)Django-admi原创 2022-04-28 14:23:01 · 123 阅读 · 0 评论 -
SQL查询的底层运行原理分析
SQL 语言无处不在。SQL 已经不仅仅是技术人员的专属技能了,似乎人人都会写SQL,就如同人人都是产品经理一样。如果你是做后台开发的,那么CRUD就是家常便饭。如果你是做数仓开发的,那么写SQL可能占据了你的大部分工作时间。我们在理解 SELECT 语法的时候,还需要了解 SELECT 执行时的底层原理。只有这样,才能让我们对 SQL 有更深刻的认识。本文分享将逐步分解SQL的执行过程,希望对你有所帮助。数据准备本文旨在说明SQL查询的执行过程,不会涉及太复杂的SQL操作,主要涉及两张表:citi转载 2022-05-06 08:30:39 · 797 阅读 · 0 评论 -
MySQL高可用配置
MySQL中存储着Hive所有表格的元数据信息,一旦MySQL中的数据丢失或损坏,会对整个数据仓库系统造成不可挽回的损失,为避免这种情况的发生,我们可以选择每天对元数据进行备份,进而实现MySQL HA(High Availability高可用)。MySQL的HA方案不止一种,本文介绍较为常用的一种——基于keepalived的MySQL HA。MySQL的HA离不开其主从复制的技术。主从复制是指一台服务器充当主数据库服务器(master),另一台或多台服务器充当从数据库服务器(slave),从服务转载 2022-05-06 08:30:57 · 461 阅读 · 0 评论 -
Hive实现数据抽样的三种方法
在大规模数据量的数据分析及建模任务中,往往针对全量数据进行挖掘分析时会十分耗时和占用集群资源,因此一般情况下只需要抽取一小部分数据进行分析及建模操作。Hive提供了数据取样(SAMPLING)的功能,能够根据一定的规则进行数据抽样,目前支持数据块抽样,分桶抽样和随机抽样,具体如下所示:1. 数据块抽样(tablesample()函数)1) tablesample(n percent) 根据hive表数据的大小按比例抽取数据,并保存到新的hive表中。如:抽取原hive表中10%的数据(注意:测试过.转载 2022-04-25 11:42:11 · 554 阅读 · 0 评论 -
Kafka 的存储机制以及可靠性
一、kafka的存储机制kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还细分为若干个segment。所谓的分区其实就是在kafka对应存储目录下创建的文件夹,文件夹的名字是主题名加上分区编号,编号从0开始。1、segment所谓的segment其实就是在分区对应的文件夹下产生的文件。一个分区会被划分成大小相等的若干segment,这样一方面保证了分区的数据被划分到多个文件中保证不会产生体积过大的文件;另一方面可以基于这些segment文件进行历史数转载 2022-04-24 15:07:59 · 296 阅读 · 0 评论 -
scala安装及环境配置
Scala 语言可以运行在Window、Linux、Unix、 Mac OS X等系统上。Mac OS X 和 Linux 上安装 Scala第一步:Java 设置确保你本地已经安装了 JDK 1.5 以上版本,并且设置了 JAVA_HOME 环境变量及 JDK 的 bin 目录。我们可以使用以下命令查看是否安装了 Java:$ java -versionjava version "1.8.0_31"Java(TM) SE Runtime Environment (build 1.转载 2022-04-21 14:36:29 · 540 阅读 · 0 评论 -
大数据技术Talend输出Mysql数据到HDFS
1. 配置talend和大数据集群的连接1) 修改Windows本地hosts文件,添加以下内容192.168.1.100 hadoop100192.168.1.101 hadoop101192.168.1.102 hadoop102192.168.1.103 hadoop103192.168.1.104 hadoop1042) 找到“元数据”下面HadoopCluster右键单击,选择 “create Hadoop cluster”3) 本案例基于apache原生had转载 2022-04-19 14:27:52 · 274 阅读 · 0 评论 -
HDFS-HA自动故障转移工作机制
学习了使用命令hdfs haadmin -failover手动进行故障转移,在该模式下,即使现役NameNode已经失效,系统也不会自动从现役NameNode转移到待机NameNode,下面学习如何配置部署HA自动进行故障转移。自动故障转移为HDFS部署增加了两个新组件:ZooKeeper和ZKFailoverController(ZKFC)进程,如图3-20所示。ZooKeeper是维护少量协调数据,通知客户端这些数据的改变和监视客户端故障的高可用服务。HA的自动故障转移依赖于ZooKeeper的以下功能转载 2022-04-15 10:47:53 · 407 阅读 · 0 评论 -
Mysql子查询详解
子查询某些情况下,当进行一个查询时,需要的条件或数据要用另外一个 select 语句的结果,这个时候,就要用到子查询。例如:为了给主查询(外部查询)提供数据而首先执行的查询(内部查询)被叫做子查询。一般根据子查询的嵌入位置分为,where型子查询,from型子查询,exists型子查询。1、where型子查询where型子查询即把内层sql语句查询的结果作为外层sql查询的条件.子查询要包含在括号内。建议将子查询放在比较条件的右侧。单行操作符对应单行子查询,多行操作符对应转载 2022-04-08 14:51:25 · 395 阅读 · 0 评论 -
关于在hive任务中number of reducers的探讨
1.在默认情况下(set mapreduce.job.reduces=-1),实际运行计算过程中reducer的数量会由所读取文件的大小来决定。文件默认大小是256M,即每256M对应一个reduce。比如当文件大小为1G时,会启用4个reducer处理数据;当文件大小为400M时,会启用2个reducer来处理。2.在进行分区或者sort by 操作时,需要设置mapreduce.job.reduces的数量,此时实际启用的reducer的个数等于设置值。3.1 在进行分桶操作的情况下,当 s..转载 2022-03-30 14:30:25 · 199 阅读 · 0 评论 -
Spark的job、stage和task的机制论述
Spark任务调度机制论述在生产环境下,Spark集群的部署方式一般为YARN-Cluster模式。 Driver线程主要是初始化SparkContext对象,准备运行所需的上下文,然后一方面保持与ApplicationMaster的RPC连接,通过ApplicationMaster申请资源,另一方面根据用户业务逻辑开始调度任务,将任务下发到已有的空闲Executor上。当ResourceManager向ApplicationMaster返回Container资源时,ApplicationMaster转载 2022-03-29 10:07:02 · 464 阅读 · 0 评论 -
MapReduce的Shuffle过程及Hadoop优化(包括:压缩、小文件、集群优化)
一、Shuffle机制1)Map方法之后Reduce方法之前这段处理过程叫Shuffle2)Map方法之后,数据首先进入到分区方法,把数据标记好分区,然后把数据发送到环形缓冲区;环形缓冲区默认大小100m,环形缓冲区达到80%时,进行溢写;溢写前对数据进行排序,排序按照对key的索引进行字典顺序排序,排序的手段快排;溢写产生大量溢写文件,需要对溢写文件进行归并排序;对溢写的文件也可以进行Combiner操作,前提是汇总操作,求平均值不行。最后将文件按照分区存储到磁盘,等待Reduce...转载 2022-03-25 14:27:16 · 196 阅读 · 0 评论 -
Spark启动及提交流程内部核心原理剖析
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎,并且拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于需要迭代MapReduce的算法。接下来带大家探索一下Spark启动及提交流程的内部核心原理。Netty在探索Spark启动及提交流程的内部核心原理之前,我们得先简单介绍一下Spark内部的通信框架----NettySpark中通信框架的发展:转载 2022-03-23 11:39:53 · 278 阅读 · 0 评论 -
大数据使用Airflow实现简单的工作流调度
Airflow是一个以编程方式编写,安排和监视工作流的平台。使用Airflow将实用工作流任务编写的有向无环图(DAG)。一个流程计划程序在遵循指定的依赖项同时在一组工作线程上执行任务。丰富的用户使查看生产运行的管道问题,监视中的故障以及正在显示的故障时需要对进行解决改变的容易。1、编写Dag任务脚本1. 启动阿里云服务器,并启动hadoop集群。2. 集群集群节点间ssh免密登录。[root@airflowairflow]# vim /etc/hosts.转载 2022-03-17 09:59:34 · 497 阅读 · 0 评论 -
推荐算法,基于隐语义模型的协同过滤推荐之商品相似度矩阵
项目采用ALS作为协同过滤算法,根据MongoDB中的用户评分表计算离线的用户商品推荐列表以及商品相似度矩阵。通过ALS计算商品相似度矩阵,该矩阵用于查询当前商品的相似商品并为实时推荐系统服务。离线计算的ALS 算法,算法最终会为用户、商品分别生成最终的特征矩阵,分别是表示用户特征矩阵的U(m x k)矩阵,每个用户有 k个特征描述;表示物品特征矩阵的V(n x k)矩阵,每个物品也由 k 个特征描述。V(n x k)表示物品特征矩阵,每一行是一个 k 维向量,虽然我们并不知道每一个维度的特征意转载 2022-03-15 15:28:53 · 627 阅读 · 0 评论 -
Flink 任务调度机制几个重要概念
调度器是 Flink 作业执行的核心组件,管理作业执行的所有相关过程,包括 JobGraph 到 ExecutionGraph 的转换、作业生命周期管理(作业的发布、取消、停止)、作业的 Task 生命周期管理(Task 的发布、取消、停止)、资源申请与释放、作业和 Task 的 Failover 等。调度有几个重要的组件: 调度器:SchedulerNG 及其子类、实现类 调度策略:SchedulingStrategy 及其实现类 调度模式:ScheduleMode 包含原创 2022-03-07 14:16:30 · 214 阅读 · 0 评论 -
Hadoop运维工具箱之HDFS集群扩容
1、添加白名单白名单:表示在白名单的主机IP地址可以,用来存储数据。企业中:配置白名单,可以尽量防止黑客恶意访问攻击。配置白名单步骤如下:1)在NameNode节点的/opt/module/hadoop-3.1.3/etc/hadoop目录下分别创建whitelist 和blacklist文件(1)创建白名单[atguigu@hadoop102 hadoop]$ vim whitelist在whitelist中添加如下主机名称,假如集群正常工作的节点为102 103转载 2022-03-04 11:06:59 · 230 阅读 · 0 评论 -
Hive 数据倾斜问题定位排查及解决
多数介绍数据倾斜的文章都是以大篇幅的理论为主,并没有给出具体的数据倾斜案例。当工作中遇到了倾斜问题,这些理论很难直接应用,导致我们面对倾斜时还是不知所措。今天我们不扯大篇理论,直接以例子来实践,排查是否出现了数据倾斜,具体是哪段代码导致的倾斜,怎么解决这段代码的倾斜。当执行过程中任务卡在 99%,大概率是出现了数据倾斜,但是通常我们的 SQL 很大,需要判断出是哪段代码导致的倾斜,才能利于我们解决倾斜。通过下面这个非常简单的例子来看下如何定位产生数据倾斜的代码。表结构描述先来了解下这些表中我原创 2022-02-15 14:24:56 · 1136 阅读 · 0 评论 -
HiveSQL高级进阶10大技巧
直接上干货,HiveSQL高级进阶技巧,重要性不言而喻。掌握这10个技巧,你的SQL水平将有一个质的提升,达到一个较高的层次!1.删除:insert overwrite tmp select * from tmp where id != '666';2.更新:直接上干货,HiveSQL高级进阶技巧,重要性不言而喻。掌握这10个技巧,你的SQL水平将有一个质的提升,达到一个较高的层次!insert overwrite tmp select id,label, if(i转载 2022-02-14 13:20:25 · 596 阅读 · 0 评论 -
Kafka消息存储机制
Kafka 消息以 Partition 作为存储单元,那么在 Partition 那消息是以什么样的格式存储的呢,如何处理 Partition 中的消息,又有哪些安全策略来保证消息不会丢失呢,这一篇我们一起看看这些问题。Partition 文件存储方式#每个 Topic 的消息被一个或者多个 Partition 进行管理,Partition 是一个有序的,不变的消息队列,消息总是被追加到尾部。一个 Partition 不能被切分成多个散落在多个 broker 上或者多个磁盘上。它作为消息管理名义原创 2022-02-14 09:12:49 · 715 阅读 · 0 评论 -
Hive往表写入数据的八种方法
1.使用insert......select......\语法:insert overwrite table dest_table partition(dt='xxxxxx')selectc1,c2from src_tablewhere......复制代码select中的字段顺序与dest_table的一定要一致,字段名与dest_table的最好要一致。映射时是以字段顺序为准,不以字段名或字段别名为准。 insert overwrite是覆盖目的路径下已存在的数据文件。 inse.转载 2022-02-09 11:37:21 · 14947 阅读 · 0 评论 -
Hadoop常见错误及解决方案
1)防火墙没关闭、或者没有启动YARNINFO client.RMProxy: Connecting to ResourceManager at hadoop108/192.168.10.108:80322)主机名称配置错误3)IP地址配置错误4)ssh没有配置好5)root用户和atguigu两个用户启动集群不统一6)配置文件修改不细心7)未编译源码Unable to load native-hadoop library for your platform...转载 2022-02-08 11:10:46 · 406 阅读 · 0 评论 -
Hadoop运行环境搭建
一、虚拟机环境准备1. 克隆虚拟机2. 修改克隆虚拟机的静态IP3. 修改主机名4. 关闭防火墙5. 创建atguigu用户6. 配置atguigu用户具有root权限(详见《尚硅谷大数据技术之Linux》)7.在/opt目录下创建文件夹(1)在/opt目录下创建module、software文件夹[atguigu@hadoop...转载 2022-02-07 11:44:05 · 197 阅读 · 0 评论 -
HBase的 rowkey 设计原则
hbase所谓的三维有序存储的三维是指:rowkey(行主键),column key(columnFamily+qualifier),timestamp(时间戳)三部分组成的三维有序存储。rowkey是行的主键,而且hbase只能用个rowkey,或者一个rowkey范围即scan来查找数据。所以 rowkey的设计是至关重要的,关系到你应用层的查询效率。rowkey是以字典顺序排序的,存储的是字节码。Rowkey设计原则1.Rowkey的唯一原则必须在设计上保证其唯一性。由于在HBas原创 2022-01-21 14:10:28 · 2988 阅读 · 2 评论 -
MyBatis的功能架构是怎样的
Mybatis的功能架构分为三层:(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。二、my转载 2022-01-21 14:00:17 · 476 阅读 · 0 评论 -
Flume日志采集框架构成组件
框架结构Flume 的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形成。flume构成组件ClientClient生产数据,运行在一个独立的线程。Event一个数据单元,消息头和消息体组成。(Events可以是日志记录、 avro 对象等。)FlowEvent从源点到达...转载 2022-01-20 11:43:01 · 283 阅读 · 0 评论 -
Flume简介和架构安装配置详解
flume简介Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的软件。Flume 的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)。为了保证输送的过程一定成功,在送到目的地(sink)之前,会先缓存数据(channel),待数据真正到达目的地(sink)后,flume 在删除自己缓存的数据。Flume 支持定制各类数据发送方,用于收集各类型数据;同时,Flume 支持定制各种数据接受方,用于最终存储数据。原创 2022-01-19 11:28:29 · 3204 阅读 · 0 评论 -
流处理组件Flume使用攻略
Flume概述Flume是一种日志采集工具。是一种分布式,可靠且可用的服务,可用于有效的手机,聚合和移动大量日志数据,它具有基于流数据的简单灵活架构,它具有可靠性机制和许多故障转移和恢复机制,具有强大的容错能力;它使用简单的可拓展数据模型,允许在线分析应用程序。Flume是Hadoop生态圈中的一个组件。主要应用于实时数据的流处理,比如一旦有某事件触发(如本地交易引起的数据改动)可以将实时的日志数据发向Hadoop文件系统HDFS中。Flume可以将数量庞大的数据从各项数据资源中集中起来存储的工原创 2022-01-18 12:00:02 · 183 阅读 · 0 评论 -
Kafka的生产集群部署
方案背景假设每天集群需要承载10亿数据。一天24小时,晚上12点到凌晨8点几乎没多少数据。使用二八法则估计,也就是80%的数据(8亿)会在16个小时涌入,而且8亿的80%的数据(6.4亿)会在这16个小时的20%时间(3小时)涌入。QPS计算公式:640000000 ÷ (3x60x60) = 60000,也就是说高峰期的时候Kafka集群要扛住每秒6万的并发。磁盘空间计算,每天10亿数据,每条50kb,也就是46T的数据。保存2个副本(在上一篇中也提到过其实两个副本会比较好,因为follo转载 2022-01-17 11:13:22 · 364 阅读 · 0 评论 -
Flink是如何支持批流一体的
实现批处理的技术许许多多,从各种关系型数据库的sql处理,到大数据领域的MapReduce,Hive,Spark等等。这些都是处理有限数据流的经典方式。而Flink专注的是无限流处理,那么他是怎么做到批处理的呢?无限流处理:输入数据没有尽头;数据处理从当前或者过去的某一个时间 点开始,持续不停地进行另一种处理形式叫作有限流处理,即从某一个时间点开始处理数据,然后在另一个时间点结束。输入数据可能本身是有限的(即输入数据集并不会随着时间增长),也可能出于分析的目的被人为地设定为有限集(即只分析..原创 2022-01-14 11:31:18 · 377 阅读 · 0 评论 -
Kafka的集群搭建步骤
进到Kafka的config文件夹下,会发现有很多很多的配置文件,可是都不需要你来修改,你仅仅需要点开一个叫作server.properties的文件就够了。【broker.id】每个broker都必须自己设置的一个唯一id,可以在0~255之间【log.dirs】这个极为重要,Kafka的所有数据就是写入这个目录下的磁盘文件中的,如果说机器上有多块物理硬盘,那么可以把多个目录挂载到不同的物理硬盘上,然后这里可以设置多个目录,这样Kafka可以数据分散到多块物理硬盘,多个硬盘的磁头可以并行写,这样转载 2022-01-13 10:01:52 · 159 阅读 · 0 评论 -
深入解析Kafka的offset管理
Kafka中的每个partition都由一系列有序的、不可变的消息组成,这些消息被连续的追加到partition中。partition中的每个消息都有一个连续的序号,用于partition唯一标识一条消息。Offset记录着下一条将要发送给Consumer的消息的序号。Offset从语义上来看拥有两种:Current Offset 和 Committed Offset。Current OffsetCurrent Offset保存在Consumer客户端中,它表示Consumer希望收到的下一转载 2022-01-11 10:33:19 · 11141 阅读 · 0 评论 -
Kafka架构及基本原理简析
Kafka简介Kafka是一个由Scala和Java编写的企业级的消息发布和订阅系统,最早是由Linkedin公司开发,最终开源到Apache软件基金会的项目。Kafka是一个分布式的,支持分区的,多副本的和多订阅者的高吞吐量的消息系统,被广泛应用在应用解耦、异步处理、限流削峰和消息驱动等场景。本文将针对Kafka的架构和相关组件进行简单的介绍。在介绍Kafka的架构之前,我们先了解一下Kafk的核心概念。Kafka核心概念在详细介绍Kafka的架构和基本组件之前,需要先了解一下Kafka的一些转载 2022-01-10 11:27:00 · 241 阅读 · 0 评论 -
kafka的优缺点都有那些
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。(1)优点:kafka的优点非常多 高性能:单机测试能达到 100w tps; 低延时:生产和消费的延时都很低,e2e的延时在正常的cluster中也很低; 可用性高:replicate + isr + 选举 机制保证; 工具链成熟:监控 运维 管理 方案齐全; ..原创 2022-01-07 11:18:10 · 7240 阅读 · 0 评论 -
如何使用JDBC API操作数据库
1使用JDBC API操作数据库的基本步骤分析使用JDBC API操作数据库,进行CRUD基本步骤都相似。加载和注册驱动获取数据库连接准备操作执行SQL的Statement对象执行SQL调用Statement对象的executeUpdate(String sql)执行SQL语句进行插入、修改、删除操作调用Statement对象的executeQuery(String sql)执行SQL语句进行查询操作处理执行结果CUD操作,根据返回的int值判断结果查询操作,根据返回原创 2022-01-06 11:36:06 · 236 阅读 · 0 评论 -
HBase 优化如何操作
在介绍读流程之后,我们再结合有赞业务上的实践来介绍如何优化读请求,既然谈到优化,就要先知道哪些点可会影响读请求的性能,我们依旧从客户端和服务端两个方面来深入了解优化的方法。1、客户端层面HBase 读数据共有两种方式,Get 与 Scan。在通用层面,在客户端与服务端建连需要与 zookeeper 通信,再通过 meta 表定位到 region 信息,所以在初次读取 HBase 的时候 rt 都会比较高,避免这个情况就需要客户端针对表来做预热,简单的预热可以通过获取 table 所有的 regi转载 2022-01-05 11:04:37 · 329 阅读 · 0 评论 -
基于 Flink 和 Drools 的实时日志处理
背景日志系统接入的日志种类多、格式复杂多样,主流的有以下几种日志: filebeat采集到的文本日志,格式多样 winbeat采集到的操作系统日志 设备上报到logstash的syslog日志 接入到kafka的业务日志 以上通过各种渠道接入的日志,存在2个主要的问题: 格式不统一、不规范、标准化不够 如何从各类日志中提取出用户关心的指标,挖掘更多的业务价值 为了解决上面2个问题,我们基于flink和drools规则引擎做了实时的日志处理服务。转载 2022-01-04 11:23:28 · 754 阅读 · 1 评论 -
Kafka 消息存储与索引设计
消息中间件的性能好坏,它的消息存储的机制是衡量该性能的最重要指标之一,而 Kafka 具有高性能、高吞吐、低延时的特点,动不动可以上到几十上百万 TPS,离不开它优秀的消息存储设计。下面我按照自己的理解为大家讲解 Kafka 消息存储设计的那些事。在 Kafka 的设计思想中,消息的存储文件被称作日志,我们 Java 后端绝大部分人谈到日志,一般会联想到项目通过 log4j 等日志框架输出的信息,而 Kafka 的消息日志类似于数据库中的提交记录,他们会按照时间顺序进行追加,Kafka 的消息也是严格按转载 2021-12-30 10:34:45 · 289 阅读 · 0 评论