自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 一文搞懂MySQL数据库时区概念以及相关配置

Connector/J 提供了多种处理时间戳和时区的方案,以确保时刻/时间点(time instant)在不同时区之间转换时能够正确保留。所有方案都能正确保留时刻/时间点(time instant),区别在于时区转换的处理方式和适用场景。选择哪种方案取决于应用架构、部署环境和时区管理需求。

2025-07-02 16:16:59 949

原创 思考题:JVM能否加载不同JAR但是相同限定名的类?

如上图所示,准备了完全相同UnSafeUtil类分别放在了demo1项目和demo2项目,在demo1项目和demo2项目中除getVersion方法不同之外其他完全一样;demo3项目引用了demo1项目和demo2项目,并打印getVersion的值;

2025-01-06 17:41:48 497

原创 Java Unsafe.park/unpark的隐藏逻辑

最近有时间看来下AQS源码,在看源码的过程中也有些自己的疑问。我举例的一个场景如下图所示:fill:#333;tryRelease一直令我我百思不得其解思考了好久,一度怀疑是否有看漏什么相关代码;直到我写了简单demo验证一下后,问题才开始变得清晰起来了;

2024-10-26 23:36:40 1017 1

原创 MySQL与JDBC之间的SQL预编译技术

MySQL与JDBC之间的SQL预编译技术先说一下SQL预编译的好处吧:减少每次执行语句时解析语句的开销。 通常,数据库应用程序处理大量几乎相同的语句,只对语句中的文字值或变量值进行更改Protection against SQL injection attacks. The parameter values can contain unescaped SQL quote and delimiter characters.不过在这之前我一直以为JDBC预编译技术是依赖数据库MySQL实现,现在

2022-05-19 15:31:47 799

原创 基于IDEA自带插件反编译JAR包

在软件开发中,软件逆向工程、安全分析、兼容性维护、学术研究、调试与故障排除、取证调查等场景都少不了需要反编译;

2025-07-01 10:57:12 319

原创 如何制作yum本地镜像源供无网环境使用?

在Linux系统中,yum是一个基于RPM的软件包管理器,它主要用于基于Red Hat的发行版如CentOS、Fedora等。如果你想要创建一个本地的yum仓库,以便在没有互联网连接的情况下安装软件包,你可以按照以下步骤来制作本地镜像源。

2025-03-22 18:54:47 448

原创 Elasticsearch 几个大版本分别新增了哪些功能

新增 Rollover API(自动滚动索引)、Reindex API(索引迁移)、Profile API(查询性能分析)。:支持存算分离,结合对象存储降低成本(如阿里云 Serverless 节省 70% 日志处理成本)。:支持 HNSW 和量化技术,提升大规模向量检索效率(如节省 90% 存储)。:集成机器学习(ES7)、向量搜索(ES8),支持生成式 AI 应用。:默认开启三层安全配置(TLS、认证、RBAC),一键生成证书。:从存储压缩(ES5)到向量量化(ES8),持续降低资源消耗。

2025-03-22 15:47:06 1433

原创 Java Unsafe实例获取方式

通过-Xbootclasspath/a 配置指定加载扩展类库jar包。

2025-01-06 11:57:30 197

原创 新版java JDK version和class file version(Class编译版本号)对应关系

【代码】新版java JDK version和class file version(Class编译版本号)对应关系。

2024-09-25 11:13:21 1025

原创 【正则表达式的用法记录】

【代码】【正则表达式的用法记录】

2024-08-20 10:03:00 273

原创 存储过程模板记录

【代码】存储过程模板记录。

2024-08-14 17:29:02 219

原创 曼彻斯特编码

曼彻斯特编码是一种双相编码。它也是通过电平的高低转换来表示“0”或“1”,每位中间的电平转换既表示了数据代码,也作为定时信号使用。用通俗的话来讲,曼彻斯特编码是用运用高低电平的变化进行编码数据,每个码元占两个电平信号并且这两个电平信号是不相同的。低电平->高电平表示0高电平->低电平表示1。...

2022-07-16 23:54:49 202

原创 JAVA使用BigDecimal需要注意的问题

浮点数比较,查看BigDecimal源码通过BigDecimal构造方法我们得出浮点数仅存在一个double类型的构造方法,float类型的值会通过Java向上转型自动转换为double类型走double类型的构造方法,这么一个看下面三个比较返回的都是true。System.out.println(new BigDecimal(23.11).equals((new BigDecimal(23.11))));System.out.println(new BigDecimal(23.11F).equal

2022-05-26 15:59:17 167

原创 JAVA 关键字 assert

JAVA 关键字 assert为什么assert 两个完全不相等的对象或者基本类型却不报错,例如图下assert new Object() == new Object();assert 1 == 2;预期的会报错,结果是没有任何反应究其原因其实是jvm 启动未添加 -ea 参数用来开启断言一般来说,通过IDE开发工具(IDEA)在执行测试方式时会主动打开 -eajava -ea ...省略... -<className>但如果没有使用这些工具将面临比较尴尬的困境, 而且问题

2022-05-26 15:59:02 1154

原创 Mybaits 源码分析之Mapper参数解析

Mybaits 源码分析之Mapper参数解析该文章是基于mybatis-spring-boot-starter讨论的,基于@MapperScan完成mapper加载,具体如何完成可参考其他文章,不在本篇文章的讨论范围内涉及到的类TokenHandler 处理tokenGenericTokenParser 根据openToken,closeToken把token一个一个解析,并交由TokenHandler管理SqlSource 存储sql语句以及SQL使用到的参数的对象BoundSql ma

2022-05-18 22:36:20 299

【分布式存储】Google之Chubby锁服务

内容概要:本文介绍了Google开发的Chubby锁服务,旨在为松散耦合的分布式系统提供粗粒度锁和高可靠的小规模数据存储。Chubby基于Paxos共识算法实现高可用性和一致性,采用类似分布式文件系统的接口,支持建议锁、事件通知和一致的客户端缓存机制。其核心设计理念侧重于可靠性与易用性,而非高性能。文章详细阐述了Chubby的系统架构、会话与租约机制、缓存策略、故障转移处理及扩展机制,并分享了实际使用中的经验教训,如被广泛用作命名服务、Java客户端适配问题以及对滥用客户端的治理策略。; 适合人群:分布式系统研究人员、云计算平台开发者、系统架构师以及对分布式协调服务(如ZooKeeper、etcd)原理感兴趣的工程师;具备一定分布式基础知识的技术人员。; 使用场景及目标:①理解分布式系统中领导者选举、配置管理、服务发现等协调问题的工程解决方案;②学习如何通过租约、缓存一致性、故障恢复等机制保障分布式服务的高可用性;③借鉴Chubby在实际应用中暴露的设计误区与优化策略,指导类似系统的构建与运维。; 阅读建议:本文偏重工程实践与演化过程,建议结合Paxos协议、分布式缓存、租约机制等背景知识进行深入阅读,重点关注设计决策背后的权衡(如粗粒度锁 vs 细粒度锁、代理与分区扩展策略),并对比现代主流协调服务以加深理解。

2025-10-10

【分布式存储】基于容错与高吞吐设计的谷歌文件系统:面向大规模数据处理的可扩展集群存储架构

内容概要:本文介绍了谷歌文件系统(GFS),一个为大型分布式数据密集型应用设计的可扩展分布式文件系统。GFS运行在廉价的商用硬件上,具备高容错性,并为大量客户端提供高性能的数据访问。文章详细阐述了GFS的设计理念,包括组件故障常态化、大文件存储、以追加为主的写入模式以及应用与文件系统API的协同设计。系统采用单主节点架构,文件被划分为固定大小的块(64MB)并存储在多个块服务器上,通过主节点管理元数据、块位置和副本复制。GFS支持快照和原子记录追加操作,优化了大文件的顺序读写性能,并通过心跳机制、副本复制、校验和及日志记录保障系统的高可用性和数据完整性。文中还通过微基准测试和真实集群数据展示了系统的性能表现。 适合人群:具备分布式系统基础知识的计算机专业学生、研究人员以及从事大规模数据存储与处理的工程师。 使用场景及目标:①了解大规模分布式文件系统的核心设计原则与架构;②学习如何在不可靠硬件上构建高可靠、高性能的存储系统;③掌握GFS中的关键技术如副本管理、一致性模型、容错机制和性能优化策略;④为设计和实现类似HDFS等分布式存储系统提供参考。 阅读建议:阅读时应重点关注GFS的设计假设与其传统文件系统的差异,理解其在一致性、性能和可靠性之间的权衡。结合架构图(如图1和图2)深入分析控制流与数据流的分离机制,并通过性能测量部分理解实际应用场景中的系统表现。同时,建议对比其他分布式文件系统(如AFS、NASD)以加深对GFS设计选择的理解。

2025-10-10

【分布式计算】基于MapReduce的大规模数据处理框架:海量集群下并行化与容错机制的设计与实现

内容概要:本文介绍了MapReduce这一面向大规模集群的简化数据处理编程模型及其高效实现。该模型通过用户定义的Map和Reduce两个函数处理键值对数据,自动实现并行化、分布式计算、容错、数据分布与负载均衡。Map函数处理输入数据生成中间键值对,Reduce函数对中间结果按键聚合,从而支持如词频统计、分布式Grep、倒排索引、数据排序等多种实际应用。系统具备高可扩展性,可在数千台商用机器上处理TB级数据,并通过本地性优化、备份任务机制、Combiner函数等技术提升性能与鲁棒性。文中还展示了其在Google生产环境中的广泛应用,包括网页索引重构、机器学习、数据分析等,证明了其简洁性、通用性与高效性。; 适合人群:具备一定编程基础,熟悉分布式或并行计算概念的研发人员、数据工程师及系统架构师,尤其适合从事大数据处理相关工作的技术人员。; 使用场景及目标:①理解大规模数据处理的基本范式与分布式系统设计思想;②掌握MapReduce在真实场景下的应用方式,如数据清洗、聚合、排序与索引构建;③学习如何通过编程模型抽象简化复杂分布式系统的开发。; 阅读建议:建议结合文中的实例代码与执行流程图深入理解MapReduce的工作机制,重点关注其容错机制、任务调度策略与性能优化手段,并可通过开源实现(如Hadoop)进行实践验证。

2025-10-10

【分布式存储】基于Bigtable的结构化数据存储系统:大规模分布式环境下高可用与高性能数据管理方案设计

内容概要:本文介绍了Bigtable,一种由Google设计的用于管理结构化数据的分布式存储系统,能够扩展至PB级数据和数千台服务器。文章详细阐述了Bigtable的数据模型,其核心是一个稀疏、分布式、持久的多维有序映射,通过行键、列键和时间戳索引数据。系统采用列族进行访问控制和存储优化,并支持数据版本管理。Bigtable建立在Google文件系统(GFS)、Chubby锁服务和SSTable格式等底层基础设施之上,具备高可用性、可扩展性和高性能。文中还描述了其实现架构,包括主服务器、表服务器和客户端库的协作机制,以及关键优化技术,如局部性分组、压缩、缓存、布隆过滤器和合并压缩策略。通过性能评估和实际应用案例(如Google Analytics、Google Earth和个性化搜索),证明了其在多样化工作负载下的有效性。; 适合人群:具备分布式系统基础知识,从事大数据、云计算或后端系统研发的技术人员,尤其是对分布式数据库和海量数据存储有兴趣的工程师和研究人员。; 使用场景及目标:①理解大规模分布式存储系统的设计原理与实现机制;②学习如何构建高可用、可扩展的结构化数据存储服务;③掌握列式存储、数据压缩、缓存优化、负载均衡等关键技术在工业级系统中的应用; 阅读建议:本文理论与实践结合紧密,建议读者在了解基本分布式概念的基础上,重点关注系统架构设计、数据模型抽象及其背后的设计权衡,同时结合性能评估数据深入理解各项优化技术的实际效果。

2025-10-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除