Java实战
文章平均质量分 95
悟空聊架构
公众号:悟空聊架构,7 年一线互联网经验,全栈工程师,手写了 PMP 刷题小程序和 Java刷题小程序。超爱图解底层原理。
公众号:悟空聊架构
展开
-
记一次雪花算法造成的生产事故的排查记录
本篇通过一次偶发的生产事故,引出了雪花算法的原理、雪花算法的不足、对应的开源解决方案。雪花算法强依赖服务器的时钟,如果时钟产生了回拨,就会造成很多问题。我们的系统虽然做了 NTP 时钟同步,但也不是 100% 可靠,而且润秒这种场景也是出现过很多次。鉴于此,美团和百度也有对应的解决方案。最后,我们的生产环境也是第一次遇到因 NTP 导致的时钟回拨,而且系统中用到雪花算法的地方并不多,所以目前并没有采取以上的替换方案。原创 2022-12-27 11:16:14 · 254 阅读 · 0 评论 -
唐玄奘把 「JWT 令牌」玩到了极致
唐玄奘就好比客户端,通关文牒就好比 JWT 令牌,经过的每个国家就好比集群中的微服务。唐玄奘借助 JWT 令牌的认证授权模式,一路通关,最终取得真经,是不是很酷呀~下一篇:手摸手实战 Spring Cloud Gateway + JWT 认证功能参考资料:《凤凰架构》《OAuth2.0 实战》原创 2022-12-27 11:14:34 · 978 阅读 · 0 评论 -
一文带你用 Mac M1 跑 RocketMQ
最近在倒腾 RocketMQ 消息队列,首先就得把 RocketMQ 跑起来对吧,我们一般都是 Windows 或者 Linux 机器上,按照官方教程一下子就跑起来了,另外用 Intel 芯片的 Mac 也能轻松跑起来。但是我在Mac M1上的机器上跑的时候,就遇到了各种问题,折腾了一天,最后终于把 RocketMQ 在 Mac 上跑起来了,这里总结下心路历程。关于用源码方式跑 RocketMQ 的方式下文也有介绍。原创 2022-12-27 11:10:35 · 780 阅读 · 3 评论 -
记一次 Maven 打包后,第三方无法使用的排查记录
最近遇到一个需求:写一个工具类的 JAR 包,然后提供给第三方使用。第三方引入 JAR 包后,无法 import。第三方引入 JAR 包后,缺少 JAR 包中的其他依赖。本篇做个记录,希望能帮助到其他小伙伴。本篇既然涉及到 Maven,这里先总结下 Maven 的常用命令。对 Maven 命令比较熟悉的同学可以跳过这小节。原创 2022-12-27 11:10:04 · 1427 阅读 · 0 评论 -
一次 Redis 事务使用不当引发的生产事故
现象:每天早上客服人员在后台创建客服事件时,都会创建失败。当我们重启这个微服务后,后台就可以正常创建了客服事件了。到第二天早上又会创建失败,又得重启这个微服务才行。初步排查:创建一个客服事件时,会用到 Redis 的递增操作来生成一个唯一的分布式 ID作为事件 id。而恰巧每天早上这个递增操作都会返回null,进而导致后面的一系列逻辑出错,保存客服事件失败。当重启微服务后,这个递增操作又正常了。那么排查的方向就是 Redis 的操作为什么会返回 null 了,以及为什么重启就又恢复正常了。原创 2022-10-25 10:15:40 · 1975 阅读 · 0 评论 -
图解 | 聊聊 MyBatis 缓存
MyBatis一级缓存内部设计简单,只是一个没有容量限定的 HashMap,在缓存的功能性上有所欠缺MyBatis的一级缓存最大范围是SqlSession内部,有多个SqlSession或者分布式的环境下,数据库写操作会引起脏数据,建议设定缓存级别为Statement一级缓存的配置中,默认是 SESSION 级别,即在一个MyBatis会话中执行的所有语句,都会共享这一个缓存。MyBatis的二级缓存相对于一级缓存来说,实现了SqlSession之间缓存数据的共享,同时粒度更加的细,能够到。原创 2022-10-20 10:15:27 · 1290 阅读 · 0 评论 -
统一缓存帝国 - 实战 Spring Cache
我正在参与 CSDN《新程序员》有奖征文,并附上本活动页面的链接地址。你好,我是悟空。前三篇讲解的缓存使用和分布式锁的都是基于 Redis 来做缓存的,本篇我来向大家介绍一种兼容所有缓存中间件的方案,不论我们是使用 Redis 还是 Ehcache,都不需要关心如何操作 Redis 或者 Ehcache,这套方案统统帮你搞定。这套方案就是大名鼎鼎的 Spring Cache。什么?你没有听过,没关系,本篇带你一起探索。一、揭开 Spring Cache 的面纱1.1 现有缓存方案的痛点试想一种原创 2021-07-01 21:06:11 · 312 阅读 · 1 评论 -
5000字 | 24张图 | Java中的21种锁
5000字 | 24张图 | Java中的21种锁,一篇搞定本篇主要内容如下:本篇文章已收纳到我的Java在线文档、 Github我的SpringCloud实战项目持续更新中帮你总结好的锁:序号锁名称应用1乐观锁CAS2悲观锁synchronized、vector、hashtable3自旋锁CAS4可重入锁synchronized、Reentrantlock、Lock5读写锁ReentrantReadWriteLock,Copy原创 2021-07-01 21:01:58 · 243 阅读 · 0 评论