- 博客(640)
- 收藏
- 关注
原创 定时任务的10种写法,长见识了
最近有几个读者私信给我,问我他们的业务场景,要用什么样的定时任务。确实,在不用的业务场景下要用不同的定时任务,其实我们的选择还是挺多的。我今天给大家总结10种非常实用的定时任务,总有一种是适合你的。
2025-06-03 16:28:20
579
原创 Dubbo如何优雅停机
static {在AbstractConfig的静态块中,Dubbo 注册了一个 shutdownHook(本质上是一个线程),用于执行 Dubbo 预设的一些停机逻辑,继续跟进ProtocolConfig.destroyAll()。
2025-06-03 16:24:30
623
原创 「Java 进阶」--Lambda & 函数式编程
前些年 Scala 大肆流行,打出来 Java 颠覆者的旗号,究其底气来源,无非是函数式和面向对象的“完美结合”,各式各样的“语法糖”,但其过高的学习门槛,又给了新来者当头一棒。
2025-06-02 14:33:10
591
原创 “幂等”不等于“分布式锁”,也不得不考虑返回值
在分布式系统中,幂等是一个非常重要的概念,常常与“重试”一起出现。当调用一个远程服务发生超时,调用方并不知道请求是否执行成功,这就是典型的“第三态”问题。对于这个问题最常见的解决方案便是进行主动重试,假如该操作是一个数据库插入操作,重试将对系统产生副作用(创建多条记录),这时我们常常会说,被调用接口需要保障幂等。
2025-06-02 14:28:59
858
原创 都说Feign是RPC,没有侵入性,为什么我的代码越来越像 C++
随着 Spring Cloud 的流行性,Feign 已经成为 RPC 的事实标准,由于其构建与 Http 协议之上,对请求和返回值缺少规范约束,在日常开发过程中经常由于设计不当对系统造成一定的侵入性。看规范定义,可以断定其出自于 Web 开发规范,但在使用过程中却为系统增加了太多的模板代码。
2025-06-02 14:27:24
472
原创 微服务配置中心选型比较——Nacos、Apollo、Config
随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……对程序配置的期望值也越来越高:配置修改后实时生效,分环境、分集群管理配置,代码安全、审核机制……在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。所以,配置中心应运而生。目前公司使用阿里云管理所有服务,原因是为了降低运维成本——傻瓜式运维。服务部署使用edas,配置管理使用acm。
2025-05-30 21:51:40
214
原创 UUID用在MySQL中,性能到底好不好?
如果你在网上快速的做一个关于 UUID 和 MySQL 的搜索,你会得到相当多的结果。另:以上文章链接请在文章结尾处查看那么,像这样一个众所周知的话题还需要更多关注吗?显然是的。尽管大多数帖子都警告人们不要使用 UUID,但它们仍然非常受欢迎。这种受欢迎的原因是,这些值可以很容易地由远程设备生成,并且冲突的概率非常低。这篇文章,目标是总结其他人已经写过的东西,并希望能带来一些新的想法。
2025-05-30 21:50:49
846
原创 从企业数字化转型到云原生解决方案
今天重新整理下企业数字化和云原生解决方案。这个我在前面分享过多篇文章来谈数字化转型和云原生解决方案。对于企业数字化来讲,从企业的横向供应链集成到围绕智能制造的纵向集成,从消费互联到产业互联,从信息化到数字化。连接,数据,智能始终是企业数字化最核心的三大核心要素。企业数字化转型是一个系统工程,即涉及到业务梳理和重构,也涉及到物联网,IT等信息技术支撑,同时还涉及到组织和过程保障,客户管理和价值创造等。其一是涉及到云计算5G,物联网等核心技术其二是围绕云原生技术中台建设。
2025-05-29 20:10:42
883
原创 8位卷王!总结1135页Java核心面试手册,硬钢BATJ一线大厂面试官
虽然说错过了金三银四求职季!HR开始拼业绩,招聘网站也开始释放出大量岗位,转行跳槽、毕业求职的人都开始行动起来!此时,对于大多数程序员来说,最大的目标就是:进大厂!大厂为什么这么吸引程序员?在招聘网站搜索大厂JAVA开发岗,本科毕业薪资达到30K,甚至更高!是中小企业的2-3倍!编辑高额的薪水、丰厚的福利。简历大厂背书简直是超级buff加成。还有相对公平的竞争机制、优秀的人脉圈子、以及平台附加的资源配置等,都是绝大多数小企业难以达到的!所以,很多程序员的终极目标,都是进互联网大厂!
2025-05-29 20:08:02
254
原创 JVM上数据处理语言的竞争:Kotlin, Scala 和 SPL
SPL 的计算函数最丰富,且都是针对结构化数据对象设计的,SPL 极大地丰富了结构化数据运算内容,设计了很多超出 SQL 的内容,当然也是 Scala/Kotlin 不支持的函数,比如有序计算:归并、二分查找、按区间取记录、符合条件的记录序号;Scala 支持的数据源种类比较多,且有六种数据源接口是内置的,并针对结构化数据处理做了优化,包括:JDBC、CSV、TXT、JSON、Parquet 列存格式、ORC 列式存储,其他的数据源接口虽然没有内置,但可以用社区小组开发的第三方类库。
2025-05-28 14:53:43
832
原创 别再混淆了!JVM内存模型和Java内存模型的本质区别
JVM 内存模型(JVM Memory Model)和 Java 内存模型(Java Memory Model, JMM)是 Java 开发中两个非常重要的概念,但这两个概念很容易被搞混,所以本文就来通俗易懂的讲讲二者的区别。首先,我们先来看看各自的概念,以及其解决的问题。
2025-05-28 14:48:26
252
原创 这可能是全网Java学习路线最完整,最详细的版本了,没有之一
据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数量位居首位。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!1.通过各大招聘网站统计,全国海量公司都在招聘Java开发工程师2.北京Java开发工程师平均薪资,即18530元3.全国Java开发薪资前三:北京 上海 广州。根据IDC的统计数字:就2017年来说,我国Java人才的缺口已达42.5万,并且以每年20%左右 的速度增长。HttpServletResponse响应中文乱码问题。
2025-05-27 20:24:33
1573
原创 一文竟能读懂Docker架构原理
docker镜像就是一个只读模板,比如,一个镜像可以包含一个完整的centos,里面仅安装apache或用户的其他应用,镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下周一个已经做好的镜像来直接使用。仓库分为两种,公有参考,和私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下周,国内的docker pool,这里仓库的概念与Git类似,registry可以理解为github这样的托管服务。
2025-05-27 15:21:19
1000
原创 全方位解析Java的序列化
相信大家日常开发中,经常看到Java对象“implements Serializable”。那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~什么是Java序列化?为什么需要序列化?序列化用途Java序列化常用API序列化的使用序列化底层日常开发序列化的注意点序列化常见面试题序列化:把Java对象转换为字节序列的过程反序列:把字节序列恢复为Java对象的过程可以的。我们都知道,对于序列化一个对象需调用。
2025-05-27 15:18:21
715
原创 保持清洁的Git提交记录,三招就够了
有了这三个锦囊,相信大家的 git log 都无比的清晰,如果你还不知道,完全可以用起来,如果你的组内成员不知道,你完全可以推广起来,这样的 repo 看起来才更健康。
2025-05-26 16:45:22
690
原创 别自己瞎写工具类了!SpringBoot中自带工具类,开发效率增加一倍
SpringBoot 是一款非常流行的 Java Web 开发框架,它的出现极大地提升了 Java 开发的效率和便捷性。除了提供了丰富的开发组件和插件,SpringBoot 还自带了许多实用的工具类,这些工具类能够帮助开发者更快速地完成开发任务,从而大大提高开发效率。本文将介绍 SpringBoot 中自带的一些常用工具类,并探讨它们如何帮助开发者提高开发效率。通过本文的学习,相信读者能够更好地掌握 SpringBoot 的开发技巧,从而在开发中事半功倍。
2025-05-26 16:42:28
285
原创 Spring Security停止维护?拥抱Spring全新OAuth解决方案
以下全文 Spring Authorization Server 简称为: SAS。
2025-05-23 15:56:12
309
原创 现在的Java工程师都有一个通病.....
所谓Java工程师并不是要掌握全栈的技术,而是看你所掌握哪些技术优秀突出,来选择你的岗位,我收集过很多面试人员发布过的问题,那些来面试的人普遍存在一个问题,那就是根本没准备过有关面试问题,其实你提前一两个星期去了解面试考点,大差不差能勉强回答出来,大厂除外!有经验的程序员觉得自己能力够用,但一被问到细节就支支吾吾,答不上来没经验的更别提了,以为不会问专业有关的知识,结果一问一个不吱声。
2025-05-23 15:53:47
283
原创 征服LeetCode,你的刷题之路就此开始,手把手带你了解算法奥秘
打开LeetCode,看着题目发呆,脑子里一堆‘暴力解法’,提交后却只换来一个冰冷的‘Time Limit Exceeded’?别慌!就是你的救星!这里没有晦涩的理论,只有和。不管你是被‘动态规划’虐到怀疑人生,还是看到‘二叉树’就头皮发麻——哎呀,看到你这问题,我就不得不说,你这卡在算法学习的瓶颈上了啊。咱这行,不就是算法吃饭的嘛。别急,哥来给你掰扯掰扯,怎么学算法才能真练成个高手。先说个老实话,理论你是绕不过去的。
2025-05-22 18:44:45
851
原创 API 请求慢?这次锅真不在后端
原本这个问题认为跟前端无关,没想到最后吃瓜吃到自己头上。提升相关技能的知识储备以及思考问题的方式,可能会方便我们定位到此类问题。充分利用好浏览器的调试工具,对一个问题可以从多个角度出发进行思考。比如一开始,没想到本地也可以开启 HTTP / 2。后来偶然间想搜下是否有此类方案,结果还真有!
2025-05-22 14:36:34
648
原创 95% 的算法都是基于这 6 种算法思想
如果用 dp[n] 表示第 n 级台阶的方案数,并且由题目知:最后一步可能迈 2 个台阶,也可迈 1 个台阶,即第 n 级台阶的方案数等于第 n-1 级台阶的方案数加上第 n-2 级台阶的方案数。
2025-05-22 14:34:43
610
原创 SpringBoot如何配置Https访问
其实将springboot配置成https的方式很简单,重点是其背后的 SSL/TLS 协议,涉及到的对称加密、非对称加密、证书、CA,在下一篇中,我们将通过 wireshark,对基于 https 协议的交互进行抓包,来了解针对 https 请求,tcp 都做了什么。
2025-05-21 15:28:54
339
原创 一条Update语句的执行过程是怎样的?
今天的分享就到这了,我们平时一条Update语句其实内部会经历很多流程,语句解析、日志WAL,Buffer Pool等。通过今天这篇文章的分享相信大家对流程已经很清晰了,后续将继续带来Redo Log、UndoLog等内容,敬请期待!
2025-05-21 15:27:44
909
原创 2025年最新Java学习路线,走过路过不要错过!
最好的学习方式就是参阅官方文档。官方文档其次就是书籍,国内的好书自成体系,帮助我们掌握的知识点不至于太散。这是一份非常详细的学习路线,把上面的内容学完之后,找到一份比较好的工作已经比较容易。另外,我在上面也说了,如果你觉得内容比较多自己学不完或者如果你只想找到一份小厂的开发工作的话,建议你把重心放在 Java基础、数据库、常用框架、常用工具上。像 JVM、微服务这些知识点,掌握了基础部分再来学习。
2025-05-20 18:57:17
1909
原创 Java动态代理机制和实现原理详解
格式,然后动态生成代理类. 所有的代码生成工作由。因此只需要两个步骤即可完成代理对象的创建。与否的规则生成代理类的名称 -为了简化对象创建过程。
2025-05-20 14:42:26
952
原创 阿里大佬私人珍藏的MySQL笔记,学到就是赚到
MySQL 基本架构示意图如下:MySQL 大体可以分为两部分:Server 层和存储引擎层(功能跟日常开发中的 Service 层和与 DAO 层有点像,可以对比理解)。Server 层主要有连接器(Connector)、查询缓存(Cache)、分析器(Parser)、优化器(Optimizer)和执行器(Executor)等,包括了 MySQL 的大部分核心功能以及所有内置函数(日期、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,例如存储过程、触发器、视图等。存储引擎层。
2025-05-20 14:39:37
953
原创 一文就够!SpringBoot拦截器及源码分析
一般自定义一个拦截器分为三步(1)编写一个拦截器实现 HandlerInterceptor 接口。(2)拦截器注册到容器中。(3)配置拦截规则。上面的过程,大概可以总结为以下几步:(1)根据当前请求,找到可以处理请求的handler和handler的所有拦截器。(2)顺序执行所有拦截器的 preHandle 方法如果当前拦截器的 preHandle 方法返回为 true ,则执行下一拦截器的 preHandle 方法。
2025-05-19 13:53:14
526
原创 这一篇就够了!Kafka面试前的准备,建议收藏
在前段时间面试时,我发现不少面试官爱问Kafka相关的问题,这也不难理解,谁让Kafka是大数据领域消息队列里炙手可热的存在。以下问题 先在脑海 过一遍,是否能够回忆清楚?解析参考。
2025-05-19 13:51:40
751
原创 MySQL面试(三)
当前读是读取的数据库最新的数据,当前读和快照读不同,因为要读取最新的数据⽽且要保证事务的隔离性,所以当前读是需要对数据进⾏加锁的(Update delete insert select ....lock in share mode ,select for update 为当前读)可重复读:解决了不可重复读,它确保同⼀事务的多 个实例在并发读取数据时,会看到同样的数据⾏。锁中粒度最⼩的⼀种锁,因为锁的粒度很⼩,所以发⽣资源争抢的概率也最⼩,并发性能最⼤,但是也会造成死锁,每次加锁和释放锁的开销也会变⼤。
2025-05-18 13:46:57
364
原创 什么是看门狗机制?它是如何给Redis的Key续约?
看门狗”(Watchdog)是一个广泛应用于计算机科学和工程领域的术语,指的是一种监控机制,用于监督系统、应用程序或硬件的正常运行,并在检测到异常或故障时采取预定义的恢复措施。看门狗的主要目的是提高系统的可靠性和稳定性,防止系统挂起或出现长时间的无响应状态。本文,我们详细地分析了什么是看门狗以及Redisson 的看门狗机制,它通过自动续期锁的有效期,简化了分布式锁的管理,减少了开发人员手动处理锁续期的复杂性。然而,理解其工作原理和注意潜在的配置细节,对于确保系统的可靠性和性能至关重要。
2025-05-18 13:45:07
761
原创 并发编程中的 ABA问题是什么?如何解决?
ABA问题的名字来源于一个简单的场景:假设有一个变量最初的值是 A,一个线程读取到这个值 A后,准备进行一些操作,在此期间,另一个线程将这个值从 A改为 B,然后又改回 A。对于第一个线程而言,虽然它再次检查时变量的值仍然是A,好像什么都没有发生过,但实际上这个变量已经被其他线程修改过。这个问题之所以被称为ABA,是因为变量经历了一个从 A到 B再回到 A的过程。
2025-05-15 14:26:50
825
原创 MySQL面试题(二)
MySQL设计者将⼀个B+Tree的节点的⼤⼩设置为等于⼀个⻚. (这样做的⽬的是每个节点只需要⼀次I/O就可以完全载⼊), InnoDB的⼀个⻚的⼤⼩是16KB,所以每个节点的⼤⼩也是16KB, 并且B+Tree的根节点是保存在内存中的,⼦节点才是存储在磁盘上.优化建议: 在没有⼤表扫描的情况下,并且数据多为频繁使⽤的数据时,我们可以增加innodb_old_blocks_pct的值,并且减⼩innodb_old_blocks_time的值。让数据⻚能够更快和更多的进⼊的热点数据区。
2025-05-15 14:23:56
468
原创 扫盲Kafka?看这一篇就够了!
•业务场景不同,底层数据结构不同,kafka数据存储对于功能要求较少,因此读写更快kafka存储数据(消息本身)的文件的数据结构是数组,数组的特点就是:数据间位置连续,如果按照顺序读取,或者追加写入的话,其时间复杂度为O(1),效率最高。同步提交:提交失败的时候一直尝试提交,直到遇到无法重试的情况下才会结束,同步方式下消费者线程在拉取消息会被阻塞,在broker对提交的请求做出响应之前,会一直阻塞直到偏移量提交操作成功或者在提交过程中发生异常,限制了消息的吞吐量。
2025-05-14 20:03:43
767
原创 MySQL面试题(一)
下⼀条记录就会写⼊新的⻚中,⼀旦数据按照这种顺序的⽅式加载,主 键⻚就会近乎于顺序的记录填满,提升了⻚⾯的最⼤填充率,不会有页的浪费。这个是查询任意位置的字⺟满⾜条件即可,只有⾸字⺟是进⾏索引排序的,其他位置的字⺟都是相对⽆序的,所以查找任意位置的字⺟是⽤不上索引的.是匹配字符串尾部的数据,我们上⾯说了排序规则,尾部的 字⺟是没有顺序的,所以不能按照索引顺序查询,就⽤不到索引.在写的⽅⾯,因为是⾃增的,所以主键是趋势⾃增的,也就是说新增的 数据永远在后⾯,这点对于性能有很⼤的提升。
2025-05-14 20:00:40
1195
原创 设计模式问题:说一说简单工厂模式?
简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,其主要目的是通过将对象的创建逻辑封装在一个工厂类中,从而隐藏对象的创建细节并简化对象的创建过程。在简单工厂模式中,客户端通过向工厂类传递不同的参数来请求工厂创建不同类型的对象。
2025-05-13 14:40:03
308
原创 10年架构师泣血整理!分布式架构终极圣经
分布式架构是指将系统的各个组件和服务分布在多台独立的计算机节点上,通过网络进行通信和协作,以实现高性能、高可用性和可伸缩性的系统架构。分布式架构将系统的负载分布到多个节点上,可以实现并行处理和负载均衡。通过并行处理,系统可以同时处理多个请求或任务,提高系统的处理能力和响应速度。分布式架构通过将系统的服务和数据分布在多个节点上,实现了冗余备份和故障恢复机制。即使某个节点发生故障,其他节点仍然可以继续提供服务,确保系统的可用性,通过增加节点的数量,可以进一步提高系统的可用性和容错性。
2025-05-12 13:38:41
598
原创 Kafka 和 Pulsar到底有什么不同?
Kafka 是一个分布式事件流平台,旨在处理高速、大容量和容错数据流。它最初由 LinkedIn 开发,后来捐赠给了 Apache 软件基金会。Kafka 已迅速成为构建实时数据管道、事件驱动架构和微服务应用程序的热门选择。核心能力发布和订阅记录流。以容错和持久的方式存储记录流。与配套服务协同工作,在记录发生时处理记录流(Kafka Streams 和 ksqlDB)。主要特点为实时数据流提供高吞吐量、低延迟的消息传递。支持数据分区和复制的可扩展架构。
2025-05-12 13:34:18
687
原创 从Kafka面试心慌到offer收割机,我仅靠这份手册通过学习成功逆袭
篇幅原因,仅展示部分截图,有需要的小伙伴文末即可免费获取第1章 Kafka简介:介绍Kafka诞生的背景、Kafka在LinkedIn内部的应用、Kafka 的主要设计目标以及为什么使用消息系统第2章 Kafka的架构:介绍Kafka的基本组成、拓扑结构及其内部的通信协议第3章 Broker概述:描述Kafka集群组成的基本元素Broker Server的启动以及内部的模块组成。
2025-05-11 17:40:53
771
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人