- 博客(237)
- 收藏
- 关注
原创 从零开始的 Kafka 学习(五)| 消息分区、可靠性、去重&有序
(1)开启幂等性后,为了保证数据不会重复,那么就需要给每一个请求批次的数据增加唯一性标识,kafka 中,这个标识采用的是连续的序列号数字 sequencenum,但是不同的生产者 Producer 可能序列号是一样的,所以仅仅靠 seqnum 还无法唯一标记数据,所以还需要同时对生产者进行区分,所以 Kafka 采用申请生产者 ID (producerid)的方式对生产者进行区分。注意,这里的同样的一条数据,指的不是内容一致的数据,而是指的不断重试的数据。如果不是,那么说明数据已经乱了,发生异常。
2025-03-29 10:53:58
853
原创 从零开始的 Kafka 学习(四)| 生产消息
如果 Kafka 通过主线程代码将一条数据放入到缓冲区后,需等待数据的后续发送操作的应答状态,才能发送下一条数据的场合,我们就称之为同步发送。根据前面提供的配置信息创建生产者对象,通过这个生产者对象向 Kafka 服务器节点发送数据,而具体的发送是由生产者对象创建时,内部构件的多个组件实现的,多个组件的关系类似与生产者消费者模式。(1)数据生产者(KafkaProducer):生产者对象,用于对我们的数据进行必要的转换和处理,将处理后的数据放入到数据收集器中,类似于生产者消费者模式下的生产者。
2025-03-25 12:45:47
867
2
原创 从零开始的 Kafka 学习(三)| 创建主题
Kafka 的topic也存在类似的问题,也就是说,如果一个topic 划分了多个分区 partition,那么这些分区怒就会均匀地分布在不同的 broker 节点上,一旦某一个 broker 节点出现了问题,那么在这个节点上的分区就会出现问题,那么 Topic 的数据就不完整了。主题创建后,需要找到一个用于存储分区数据的位置,根据上面ZooKeeper 存储的节点配置信息可以知道,当前主题的分区数量为3,副本数量为1,那么数据存储的位置就是每个分区 Leader 副本所在的 broker 节点。
2025-03-16 11:41:17
1064
1
原创 从零开始的 Kafka 学习(二)| 集群启动
ZooKeeper 中的 /controller 节点就会自动被删除,而其他那些 Slave 节点因为增加了监听器,所以当监听到 /controller 节点被删除后,就会马上向 ZooKeeper 发出创建 /controller 节点的请求,一旦创建成功,那么该Broker 就变成了新的 Controller 节点了。方案是不错,但是问题就在于选哪一个Slave节点呢?Broker启动时,会通过 ZK 客户端对象向 ZK 注册当前的 Broker 节点ID,注册后,创建的 ZK节点为临时节点。
2025-03-06 22:21:26
781
原创 从零开始的 Kafka 学习(一)| 概念,Java API
在当前的Web软件开发中,多节点分布式的架构设计已经成为必然,那么如何保证架构中不同的节点所运行的环境,系统配置是相同的,就是一个非常重要的话题。永久节点就是无论客户端是否连接上ZooKeeper都一直存在的节点,而临时节点指的是客户端连接时创建,断开连接后删除的节点。生产者和消费者彼此之间不直接通信,而通过阻塞队列来进行通信,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不着生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个消息缓冲区,平衡了生产者和消费者的处理能力。
2025-03-02 16:33:25
1100
原创 Java 拉取并解析Kafka的Topic,Insert到InfluxDB
【代码】Java 拉取并解析Kafka的Topic,Insert到InfluxDB。
2024-10-14 16:46:52
418
原创 Echarts 散点图的 tooltip 自定义formatter方法(展示X、Y、value之外的数据)
3.完整代码:主要就是将需要展示的字段数据拼好放到tooltipInfo里。1.效果展示,如图,tooltip的构成是指标名+实际值+【目标值】
2024-08-23 17:12:09
1218
原创 TypeError:迭代不可迭代实例的尝试无效。 为了可迭代,非数组对象必须具有[Symbol.iterator]()方法。
出现这个错误的原因是,myMap 可能不是一个真正的 Map 实例,而是一个普通的对象({})。如果是普通的对象,可以通过 Object.entries 方法来进行遍历。报错信息:TypeError: Invalid attempt to iterate non-iterable instance.
2024-07-19 15:27:09
897
原创 el-tree横向纵向滚动条
给容器一个高度,然后样式加上overflow: scroll,这样纵向滚动条就出来了。el-tree未展开时样式。el-tree展开时样式。横向的加上下面的样式。
2023-10-25 14:50:02
2038
3
原创 从零开始的Hadoop学习(六)| HDFS读写流程、NN和2NN工作机制、DataNode工作机制
这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦NameNode节点断电,就会产生数据丢失。但是,如果长时间添加数据到Edits中,会导致该文件数据过大,效率降低,而且一旦断电,恢复元数据需要的时间过长。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。(1)一个数据块在 DataNode 上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。
2023-09-01 11:22:24
738
原创 从零开始的Hadoop学习(五)| HDFS概述、shell操作、API操作
1)HDFS 产生背景随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。2)HDFS定义HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件:其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
2023-08-31 15:22:46
843
原创 从零开始的Hadoop学习(四)| SSH无密登录配置、集群配置
1)各个模块分开启动/停止(配置 ssh 是前提)常用整体启动/停止 HDFS整体启动/停止 YARN2)各个服务组件逐一启动/停止分别启动/停止 HDFS 组件启动/停止 YARN。
2023-08-29 16:12:41
3448
原创 从零开始的Hadoop学习(三)| 集群分发脚本xsync
(a) 在hadoop102上,将hadoop102中/opt/module/jdk1.8.0_212目录拷贝到hadoop103上。(b) 在hadoop103上,将hadoop102中/opt/module/hadoop-3.1.3目录拷贝到hadoop103上。© 在hadoop103上操作,将hadoop102中/opt/module目录下所有目录拷贝到hadoop104上。(b) 同步hadoop102中的/opt/module/hadoop-3.1.3到hadoop103。
2023-08-28 09:20:00
1185
原创 从零开始的Hadoop学习(二)| Hadoop介绍、优势、组成、HDFS架构
HDFS(Hadoop Distributed File System)的架构概述。NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
2023-08-25 08:46:22
1386
原创 从零开始的Hadoop学习(一) | 大数据概念、特点、应用场景、发展前景
这是大数据区分于传统数据挖掘的最显著特征。根据IDC的"数字宇宙"的报告,预计到2025年,全球数据使用量将达到163ZB。在如此海量的数据面前,处理数据的效率就是企业的生命。内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的。这种类型的多样性也让数据被分为结构化数据和非结构化数据,相对于以往便于存储的。当前,典型个人计算机硬盘的容量为TB量级,而一些大。等,这些多类型的数据对数据的处理能力提出了更高要求。价值密度的高低与数据总量的大小成反比。
2023-08-24 11:35:42
214
原创 实现公共字段自动填充
*** 自定义注解,用于标识某个方法需要进行功能字段自动填充处理//数据库操作类型:UPDATE INSERT OperationType value();/*** 数据库操作类型/*** 更新操作* 插入操作/**/*** 切入点} /*** 前置通知,在通知中进行公共字段的赋值log . info("开始进行公共字段自动填充...");
2023-07-06 16:51:28
566
1
原创 Echarts实时监控(动态排序折线图)
吾之初為,記之以便後日視資。效果展示示例代码<template> <div class="app-container"> <el-row> <el-col :span="24"> <b>Echarts实时监控</b> <el-card style="height: 600px" id="realTime"> </el-card> <
2023-06-16 11:00:27
1338
原创 GaussDB 100jar包(gsjdbc100-V100R003C20SPC113.jar)
链接:https://pan.baidu.com/s/1XuvLcd_F1tO5uJiLL3ODtQ?
2023-05-25 09:20:33
638
原创 Java设计模式其二(创建型模式-单例) | 穷其道者,归处亦同
双重检查锁模式是一种非常好的单例实现模式,解决了单例、性能、线程安全问题,上面的双重检查锁模式看上去完美无缺,其实是存在问题,在多线程的情况下,可能会出现空指针问题,出现问题的原因是JVM在实例化对象的时候会进行优化和指令重排序操作。枚举类实现单例模式是极力推荐的单例实现模式,因为枚举类型是线程安全的,并且只会装载一次,设计者充分的利用了枚举的这个特性来实现单例模式,枚举的写法非常简单,而且枚举类型是所用单例实现中唯一一种不会被破坏的单例实现模式。instance对象是随着类的加载而创建的。
2023-05-17 15:53:15
137
原创 Java设计模式其一(概述、UML图、软件设计模式) | 穷其道者,归处亦同
软件设计模式(Software Design Pattern),是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是解决特定问题的一系列套路,是代码设计经验的总结,具有一定的普遍性,可以反复使用。类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。
2023-05-12 16:51:25
642
原创 InvalidDefinitionException: No serializer found for class java.io.CharArrayReader(Clob数据插入问题)
列表的数据上移下移功能
2022-09-07 20:16:01
760
原创 jacob解决freemaker导出word文档手机无法预览问题(附下载地址)
jacob解决freemaker导出word文档手机无法预览问题(附下载地址)
2022-06-29 17:02:09
691
2
原创 Freemarker 模板导出(带图片)
1. 依赖 <!--FreeMarker--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependenc.
2022-02-24 16:22:09
1539
2
原创 EasyPoi 模板导出Excel (带图片) 以及一些踩坑记录
最近都是在写导出,那么为什么要用 easypoi呢,我用freemarker模板导出写好后,发现图片不行,word转Base64编码就行,excel不行,只能换一种了,一个导出弄一天。做个记录,你知道的越多,不知道的越多。EasyPoi官网展示效果(正面 sheet)(反面 sheet)1. EasyPoi模板导出1.1 准备模板用{{}}包裹变量就行,注意一点,图片所在的单元格不用提前合并。这边有个遍历填充的第一个单元格:{{$fe: maplist t.familyName
2022-02-17 10:31:42
7812
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人