- 博客(102)
- 资源 (21)
- 问答 (15)
- 收藏
- 关注

原创 一文说透Disruptor的工作机制以及核心源码解读 赋踩坑注意事项!
LMAX开发的高性能队列,传说可以达到单机每秒600万交易~YYDS是吗Disruptor 主要解决了 JDK 内置线程安全队列的性能和内存安全问题;其在**无锁**的情况下还能保证**队列有界**、**线程安全**是基于事件**异步驱动模型**实现的1. 采用**RingBuffer**数据结构2. 支持高并发,低延时,高吞吐量的高性能工作队列;3. Disruptor是单机的本地内存队列,类似ArrayBlockingQueue
2025-05-01 21:11:37
822

原创 两文读懂DDD领域驱动设计(二),举例说明,通俗易懂【值得收藏】
~没看过的小伙伴先去看第一篇,然后再来看这个~上文中我们看到DDD有几层如下,可以再看下。
2024-10-09 17:38:00
1683

原创 总结一下自己,最近三年,我做了哪些工作
有时急于满足客户需求没走正常流程,导致开发设计质量低下,开发和测试没有足够的自测测试时间,存在返工情况或其他风险,后面尽量沟通好确定的需求再移交开发需求以及设计文档考虑不够详细,开发过程中发现有细节业务问题,会导致返工或工时不够的情况;后面需求设计尽量有业务闭环,原型、如涉及现有系统改动需提供改动点等,不仅仅完善了文档,同时减少了开发以及测试的问题开发存在临时解决问题的情况,后面会很难维护:需要从一开始做好设计,提高开发觉悟,开发前自发组织简单的评审讨论。
2024-06-05 17:33:22
695

原创 如何做代码抽象设计,多种设计模式的应用【四种抽象方式,干货附上代码】
代码这种东西,机器不管你写的怎么样,肯定能识别, 人就不一样了,前人拉屎后人踩屎,一坨认栽,n坨就有点过分了哈一般写代码也不用太高大上,很多接口还是很简单的,如果把各种设计模式搞上来那叫过度设计,叫逼王;就在多渠道,多河流的时候才能当逼王看到过几位写的不错的同事搞的设计,和大家简单介绍一下下面介绍下这三种方式。
2023-02-10 09:54:34
1062
转载 高并发下Redis与MySQL一致性方案全解析
原来听过一句话,你遇到的坑前人已经踩过了,是的,我们应该学会站在巨人的肩膀上,大多数时候我们还只是在巨人的脚下,抬头看着他说,啊,好伟大啊,好厉害啊是的,不过要记得,当我们站在巨人的肩膀上时,我们对于他们来说就也是巨人了~也就是高并发的场景并发量不高的普通业务,我们可以用普通方案先更新数据库,再删除缓存,若缓存删除失败,数据库回滚,业务提示修改失败正常的查询和修改数据的过程如上图,同步的过程现有场景。
2025-05-01 13:29:03
31
原创 Redisson 的延迟队列真的能用吗?一文看透原理 + 坑点
我又来梳理知识负债来了,对下一个公司要求有点高,还没上岸,也没什么心情出去旅游,我一直相信上岸也是需要缘分的,天时地利人和祝大家五一快乐吧这篇是总结式博客,不墨迹,上干货延迟任务其实有好几种方式,时间轮转,Timer,@Scheduler,RabbitMQ死信队列,RocketMQ这些,今天先说这个,redission中也有个延迟队列的实现,估计很多人不知道,不过没关系,就算知道也不太好用,但也想说一说,毕竟考虑用过。
2025-05-01 13:01:32
1252
原创 Redis系列问题那些事记录,有没有你不知道的点
还没被捞走,先写写博客吧,最近整的都有点上火了,本来就不太擅长面试,谁慧眼识珠快快把我带走哈哈。
2025-04-30 22:31:37
757
原创 深入解析HashMap的特性以及源码
沉淀是不容易的,它需要沉下心,同时也是因为沉淀本身并没有效益,所以沉淀的意义是什么呢,有时候会突然发呆自己如果不做程序员,将来会做什么HashMap,经典中的经典,重中之重,不多说了,留存很久了,再次梳理下吧HashMap也是分1.7和1.8,JDK1.7用的是数组+链表,JDK1.8用的是数组+链表+红黑树,这里不多说1.7了,咱直接说1.8,如果还有人用1.7,对不起,你该升升级了。
2025-04-23 15:24:34
906
原创 深入解读ConcurrentHashMap特性以及源码
这个太常用了是吗,面试必问,现在才来整理,不过只要在路上就不晚,此时此刻哈哈来吧宝子们,让我们更加熟悉这个类首先我们得知道1.7和1.8版本是不一样的下图是JDK1.7的数据结构。
2025-04-22 21:15:01
841
原创 深入理解树与二叉树:基础概念、遍历方式与存储结构全解析
高楼大厦,也离不开一砖一瓦,今天就整理下树相关的基础吧不知道是笨还是怎么样,知识点总忘,有时候描述不清楚,很奇怪的感觉。
2025-04-22 15:35:16
901
原创 从源码揭秘ArrayList与LinkedList高频考点,梳理根治我们的“知识负债”
知识负债,面试经常明明知道但是回答的并不好,我不知道其他人是什么样的,我总是记不住那么多,经常感觉自己好弱,找不到自己确切的位置,后来我发现可能是知识负债比较多,需要更详细的整理成自己的,知识总是要经常温习,也许大佬们看一遍就都记住了吧,还有,面试准备不足。
2025-03-18 13:28:18
870
原创 LinkedHashMap 核心解析:从源码到LRU缓存实现,揭秘双向链表维护机制
分享是一种习惯,却很难保持,每个人都想一夜暴富,克服自己的惰性才需要毅力时间就像是温水煮青蛙,当你忽略了它,它也就煮熟了你~介绍下LinkedHashMap吧,咱言简意赅点可以看到继承了实现了HashMap,实现了Map,该有的功能都有了。
2025-03-18 12:21:21
974
原创 图搜索的两种写法,广度优先和深度优先
最近AI的爆发大家都疯了,也确实够疯,前几年谁能天天和AI聊天呢,特别它越来越智能,越来越理解你,你越来越离不开它,我很好奇将来它会不会有情绪,太可怕了,一旦有了这个就有了感情,那才是人类的噩梦整理下图的理解吧它是复杂的非线性结构;比如社交好友,都有以下一些维度认识下下面集中图。
2025-03-17 20:09:29
454
原创 二叉堆原理与Java代码实现|附完整代码与深度解析
最近要重新找工作,复习中,有些东西边复习边整理吧,找工作也不是一天两天的事,也是看缘分,看哪阵东风能吹到我这哈哈二叉堆(Binary Heap)是一种特殊的完全二叉树数据结构,用于高效地实现优先队列。(Min Heap)和(Max Heap)。在最小堆中,每个父节点的值都不大于其子节点的值;而在最大堆中,每个父节点的值都不小于其子节点的值。二叉堆的关键特性是它提供了对堆中元素的快速访问、插入和删除操作,所有这些操作的时间复杂度都是 O(log n),其中 n 是堆中的元素数量。
2025-03-17 19:48:08
654
原创 【数据结构】TreeMap和ConcurrentSkipListMap详解及对比,高性能少不了他们
生活不是一天两天,还是要积累的,原来很多笔记都堆在了云笔记上自己看,也许分享可以让人成长更快吧,作为技术人有时候挺蕉绿的,因为很多时候想看看其他类型的书,但是总无法静下心来,就好像不看技术书籍,不学习技术就哪里不对劲,真是一个糟糕的心态,如果你们也有类似问题,让我们一起改变一下吧,看书确实让人愉悦,放平心态,不要管年龄,技术深浅,每天每周花些时间看其他类型的书,对于人生本身来说不仅有益,也是享受言归正传~TreeMap和ConcurrentSkipListMap很多特性比较像。
2024-10-11 16:52:00
639
原创 【数据结构】二叉堆一文详解,附demo
有时候也挺迷惑的,技术那么多,感觉学什么都来不及,又什么都得学,经常一看别人,哇,比你年轻比你厉害,然后自己emo一下又要鸡血模式,就挺无语的,但愿我们的坚持与努力都不白费吧,虽然开发可能不是一辈子的事,但但是干一天优秀一天,也是很有价值感的,加油共勉二叉堆(Binary Heap)是一种数据结构,用于。(Min Heap)和(Max Heap)。。二叉堆的关键特性是它提供了对堆中元素的快速访问、插入和删除操作,所有这些操作的时间复杂度都是 O(log n),其中 n 是堆中的元素数量。
2024-10-11 16:12:09
1781
原创 两文读懂DDD领域驱动设计,举例说明,通俗易懂【值得收藏】
最近对架构莫名的感兴趣,慢慢觉得架构本身是为了提供方便,定制规范,目标一致并更好的协作,它的变动也并不是像变形金刚一样,而是像幼苗一样按规律成长起来的DDD是一种方法也是一种思想,大家前面个别概念看不懂没关系,后面会举例讲,下面一一说一下DDD。
2024-10-09 17:11:35
977
原创 掌握 Spring:从新手到高手的常见问题汇总
一提起Spring,总感觉有太多知识,无法详尽,有些基础理解就先不说了,相信大家都已经用过Spring了下面简单针对常见Spring面试题做些回答1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
2024-09-14 16:07:53
1677
原创 【Redis】redis.conf配置文件详细解释 调优必备
reids.conf,这个配置文件很重要,忘了从哪个地方保存下来的,今天分享给大家,后面配置的时候可以参考。
2024-09-09 11:26:18
964
原创 maven生命周期介绍;maven-dependency-plugin讲解;maven-resources-plugin讲解;docker-maven-plugin简单讲解
Maven Assembly Plugin 是一个强大的Maven插件,用于创建项目的分发包,它可以将项目的编译输出、依赖、资源以及其他文件组织成一个可分发的归档文件,如ZIP、TAR、JAR、WAR等。知识总是在总结中发酵的,去年在公司做过容器化相关的东西,涉及到制作发布包等内容,对maven有了进一步的理解,但是一直没有时间整理,最近找些时间总结一下,希望对大家也有帮助吧。maven-dependency-plugin是Maven中一个非常强大的插件,用于处理项目依赖相关的任务。翠花,辛苦捡桌子了!
2024-06-01 15:52:35
863
原创 Spring事件分析以及多种使用方式实践 使用场景 附可执行demo
我们可以定义一个事件类继承ApplicationEvent ,并设置为泛型,它毕竟是个类,我们可以在里面写点字段啊方法的都行,无非发布后在监听的地方去执行,那么具体你想搞些什么发布出去让 监听去做的,或者只是通知一声,都是你说了算。
2024-05-13 19:39:45
1143
原创 @FunctionalInterface函数式接口深入实践附demo 多种写法 提高代码可读性健壮性
@FunctionalInterface 是Java 8引入的一个注解,主要用于标记一个接口为函数式接口。函数式接口是指只有一个抽象方法(除了默认方法和静态方法外)的接口。特点如下:唯一抽象方法:被@FunctionalInterface注解的接口必须保证只包含一个未实现的方法。如果接口中有多于一个抽象方法,编译器将会报错。Lambda表达式的载体:函数式接口是Java中Lambda表达式的目标类型。你可以通过Lambda表达式来创建该接口的实例,使得代码更加简洁和易于阅读。默认方法和静态方法不
2024-04-23 19:12:03
835
2
原创 几种非常常用的方式获取springboot中application中的配置 大家看着用
在springboot应用中可以从application.properties中获取配置文件的方式,多种介绍
2024-02-01 19:04:23
980
原创 建造者模式深入理解:演示建造单个和多个产品的实践,结合模板模式,通俗易懂
建造者模式(Builder Pattern)是一种创建型设计模式,它主要用于将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表现形式。这种模式通过一系列可重用的独立的类(称为建造者或构建器)来一步一步创建一个复杂的对象,而不需要知道具体的内部构造细节
2024-01-11 20:41:23
1308
原创 高级鉴权网关设计二:SM2国密+协议SPI可扩展+动态配置
既然是网关其实就是和外部的礼尚往来,每个第三方还有可能不一样,一般常用的有http的form表单,get,post,https,和每个第三方的交互签名方式、加密方式都可能不同,很多时候取决于你是甲方爸爸还是乙方儿子,如果是甲方就好了,对接就按你们的来,你们来对我们,乙方就痛苦了,得适配不同的甲方爸爸,那我们该如何设计呢?下面为大家介绍一种比较常用的方案,附带可扩展设计。关于加密和协议根据两个维度进行扩展,一个是加密类型encryptType,一个是协议类型protocolType,分别定义好枚举。
2024-01-08 20:28:56
714
原创 高级鉴权验签方式的实践,技术方案为注解+ASCII排序+多类型多层级动态拼接+RSA加密(或国密SM2)+Base64+Redis滑动窗口限流
虽然大多数企业的流量没有那么大,不过限流还是要有的,毕竟还有外部调用我方系统接口,需要验证访问权限进行,同时防止万一接口并发量大影响我方系统, 所以要增加流控处理;不同的来源在独立配置,可以做到不同来源的限流鉴权设计技术方案:采用注解+ASCII排序+多类型多层级动态拼接+RSA加密(或国密SM2)+一次Base64转码限流设计:采用Redis的zset滑动窗口限流的方式建议用国密,SM2比RSA的效率要高,话不多说,先说方式,后说好处。
2024-01-05 17:52:29
677
原创 Spring基础梳理(一):一定要先全局掌握Spring
越活越完蛋了,看着看着现在又想梳理梳理Spring基础,搞点原始真解吧,不过技术人每个阶段看相同东西的理解都是不同的,只是现在浮躁的技术中又有多少人能够一本书啃两遍以上呢,我也一样,徜徉于业务之中,所以技术是什么,永远记住,技术是服务于业务的,架构也是同样的道理,不要为了技术而技术,为了架构而架构。
2023-08-17 19:37:57
192
原创 【AI资源福利篇】整理当前主流AI开发工具、聊天机器人、资讯、大语言模型、以及绘画等其他AI平台工具
福利篇~~~~~~~~陆陆续续看了很多AI相关的网站,并且也实践了一些,今天整体整理一下分享给大家,希望大家都是风口上的猪,能够飞上天。
2023-08-02 18:44:40
1031
原创 【深入浅出Redis-高可用篇】带你吃透Redis高可用以及弹性扩容方案
同志,别忘了成长这一篇给大家介绍一下,保证让大家心里有底,脑中有概念Redis的高可用主要有两种,一种是主从复制,一种是哨兵,一种是集群cluster。
2023-07-24 00:40:31
567
原创 Redis缓存雪崩、穿透、击穿原因分析和解决方案,附Redis管道使用技巧
Redis管道(pipeline)是一种在网络层面上实现的批量操作机制,它可以将多个命令一次性发送给Redis服务器,而不需要等待每个命令的响应。这样可以减少客户端和服务器之间的网络通信次数,提高命令执行效率。Redis管道的原理是基于TCP协议的请求/响应模型,即客户端发送一个请求后,必须等待服务器的响应才能发送下一个请求。如果客户端有多个请求要发送,那么就会产生多次网络往返延迟(RTT),影响性能。
2023-07-16 02:55:13
372
2
原创 【深入浅出Redis 一】从版本特性到数据类型到线程模型,带你了解Redis的核心特性和应用场景!
先了解下Redis的一些基础知识和特性,Redis是一个开源的,基于内存的高性能键值数据库。它支持多种数据类型,如字符串、列表、集合、散列、有序集合等等。高性能:Redis可以处理每秒数十万次的读写操作,因为它将所有数据存储在内存中,避免了磁盘I/O的开销。持久化:Redis可以将内存中的数据定期保存到磁盘中,或者将每次修改操作追加到日志文件中,以实现数据的持久化。这样,即使发生系统崩溃或重启,也可以恢复数据。主从复制。
2023-07-03 22:41:52
317
原创 如何解决多线程卡死问题?四招教你轻松应对!
多线程大家都用过,可以让一个程序同时执行多个任务,提高效率和性能,一个人干的慢,三个人干。但是,多线程也带来了一些问题和挑战,比如等问题,三个人抢一碗米饭,没有个规矩肯定要打架的。这里我介绍一种可能出现的多线程问题:如果一个线程在执行过程中一直卡住,线程不释放最终导致线程耗尽怎么办。这是前一阶段对接外部系统时遇到的一个问题,对方提供了个SDK,我们集成后用他们的netty的方式建立连接,推送相关数据,但是呢这个推送不能阻塞业务,所以我们采用异步推送,搞了个线程池,随取随还,如图后来就发现有一个。
2023-06-26 20:10:12
8332
原创 Java类加载机制:从字节码到对象的奇妙之旅
类加载机制是Java虚拟机将字节码转换成可运行的类的过程。这个过程包括三个主要步骤:加载、链接和初始化编辑就是将字节码文件从不同的来源(如本地文件系统、网络、内存等等)读取到虚拟机中,并创建一个对应的Class对象,用来表示这个类在内存中的数据结构。连接:就是将加载后的Class对象进行验证、准备和解析三个阶段的处理,以保证类的正确性和完整性。其中包含了下面三个小步骤验证:就是检查元数据Class对象是否符合Java虚拟机规范。验证文件格式验证;验证字节码验证(确定程序语义合法,符合逻辑);
2023-06-23 10:51:15
1011
原创 【起飞】让你电脑速度快到飞起的一些牛逼的设置整理【电脑卡顿反应慢等问题解决】
对于开发来说电脑的反应速度简直影响了思维的速度,要让电脑速度跟上我们的思维,提高工作效率,早点打卡下班回家陪老婆孩子哈哈这篇文章主要对windows系统做的一些优化,是真的好用,仿佛在访问静态页面一样,下面我分享一下相关设置以及一些使用情况吧。
2023-05-16 12:23:23
4575
转载 JDK8飞到JDK17版本介绍和踩坑记录
SpringBoot3和Spring6的最低依赖就是JDK17!JDK17就是官方保证会长期支持的版本。JDK 17 最多可以支持到 2029 年 9 月份。JDK 8 支持的时间更长,可以延长到 2030 年 12 月从 JDK 诞生到现在,还在长期支持的版本主要有 JDK 7、JDK 8 、JDK 11以及 JDK 1,JDK 17 将是继 Java 8 以来最重要的LTS版本,是 Java 社区八年努力的成果。
2023-01-03 20:17:55
7821
原创 【SpringBoot1.5.x升级到SpringBoot2.2.13记录】
为什么升级到2.x1.SpringBoot 1.X 官方已不再进行维护;2.SpringBoot 1.X 下许多新发现的SpringBoot和SpringFramework的漏洞无法再进行升级处理,安全扫描无法通过;3.SpringBoot 2.X 下的应用启动速度会比SpringBoot1提升10到20秒时间,整体性能上也更优。
2022-12-15 19:18:53
1149
原创 开发者友好的Linux常见命令整理
uname -a # 查看内核/操作系统/CPU信息cat /etc/redhat-release 查看服务器版本cat /proc/cpuinfo # 查看CPU信息hostname # 查看计算机名lspci -tv # 列出所有PCI设备lsusb -tv # 列出所有USB设备lsmod # 列出加载的内核模块env # 查看环境变量查看ip信息:ifconfigdu -sh # 查看指定目录的大小。
2022-11-29 20:30:58
1044
1
Git开发操作文档 全面介绍Git技术
2023-08-31
Docker学习文档,全面介绍Docker技术
2023-08-31
云原生学习word文档(全)
2023-08-31
宝藏网站合集:里面有个各种网站,网页工具,AI,素材模板等
2023-08-31
Discord安装包,没错就是你以为的MJ-discord安装包
2023-06-08
个推推送工具类
2018-07-26
支付宝电脑网站支付
2017-08-28
node-v12.16.2-linux-x64.tar.xz
2020-04-25
新版支付宝支付集成
2017-11-01
jacob和百度语音播报
2018-07-26
javaweb如何根据pc端写一个手机端?求好的思路
2017-07-19
ngrok的使用,没有访问成功,求指点
2017-07-12
textarea有换行提交不了,请教大神为什么,如何解决?
2017-06-02
为什么手机适配meta-viewport后火狐浏览器并不能全屏显示,别的浏览器都可以?
2017-05-17
placeholder多文本框输入兼容性的问题
2017-05-15
jsp界面如何用简单的MD5进行密码加密
2017-05-08
ssm中取到的值#{}如何再拼接一个字符串
2017-05-04
求sqlserver大神,ssm能连上只能运行一遍代码,重启电脑后还是只能运行一次
2017-04-17
sql server数据库登不上去
2017-04-13
索引1超出范围,insert是我的语句
2017-04-12
sqlserver数据库登不上去,每次重启电脑才能访问一次
2017-04-11
sqlserver数据库中这个锁如何删除,每次运行一次都会被锁,电脑重启才好一下,谢谢了
2017-04-10
如何根据报销单设计数据库
2017-03-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人