Java
文章平均质量分 94
guohuan126
一位爱健身的程序员
展开
-
这16个有用的 SpringBoot 扩展接口,居然还有人不知道?
我们从这些的扩展点当中,大致可以窥视到整个bean的生命周期。在业务开发或者写中间件业务的时候,可以合理利用spring提供给我们的扩展点,在spring启动的各个阶段内做一些事情。以达到自定义初始化的目的。此篇总结,如果有错误或者疏漏的地方,恳请指正。来源:www.jianshu.com/p/38d834db7413。转载 2022-10-11 10:29:42 · 213 阅读 · 1 评论 -
我是如何做真正千万级并发的购物车系统设计与代码详解
购物车写多读多,大量高并发的写大量高并发的读,可以把主数据存储转为 redis 缓存,基于 redis 做主存储,高性能读写异步的把数据同步到 mysql 持久化。 本文主要介绍redis在千万级系统中设计架构方案,包括主架构设计、缓存一致性方案、大value处理方案和redis限流和故障恢复降级方案...原创 2022-08-15 16:18:16 · 931 阅读 · 0 评论 -
【如何有效做Code Review】8行代码提出的21个问题
简介:- 很多同学都有这个疑问,如何结构化体系化的做CR?如何综合应用各种手段尽快及早的发现代码问题和缺陷? - 下面围绕这个实例,抛砖引玉,大家可以一起探讨; - 实例如下 ,短短8行代码,通过CR可以发现多少问题呢?21处;这段代码谁写的不重要,探讨的重点是如何全面发现其中的问题和隐患; 8行代码的21问题1. 如何有效的做CR?很多同学都有这个疑问,如何结构化体系化的做CR?如何综合应用各种手段尽快及早的发现代码问题和缺陷?下面围绕这个实例,抛砖引玉,大家可以一起探讨;...原创 2021-07-19 11:48:14 · 517 阅读 · 0 评论 -
ThreadLocal使用及原理
什么是ThreadLocalThreadLocal类顾名思义可以理解为线程本地变量。也就是说如果定义了一个ThreadLocal,每个线程往这个ThreadLocal中读写是线程隔离,互相之间不会影响的。它提供了一种将可变数据通过每个线程有自己的独立副本从而实现线程封闭的机制。实际应用实际开发中我们真正使用ThreadLocal的场景还是比较少的,大多数使用都是在框架里面。最常见的使用场景的话就是用它来解决数据库连接、Session管理等保证每一个线程中使用的数据库连接是同一个。还有一个用的比原创 2021-07-19 11:45:39 · 365 阅读 · 0 评论 -
2020年最新Java学习路线图(干货)
第一阶段:Java基础学习路线2. 学习资源超全面java编程入门教程,零基础小白自学java基础教程_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com第二阶段:数据库学习路线2. 学习资源Mysql:【面试必会】mysql数据库优化全剖析_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.comOracle:4天快速入门oracle数据库_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliww原创 2020-12-15 09:50:01 · 510 阅读 · 0 评论 -
Redis 的八大数据类型
来源 |https://blog.itzhouq.cn/redis2NoSQL 开发中或多或少都会用到,也是面试必问知识点。最近这几天的面试每一场都问到了,但是感觉回答的并不好,还有很多需要梳理的知识点,这里通过几篇 Redis 笔记整个梳理一遍。关注公众号Java技术栈回复面试也可以刷我整理的系列面试题。Redis 的八大数据类型官网可查看命令:http://www.redis.cn/commands.htmlRedis-key127.0.0.1:6379>keys*...转载 2020-12-15 09:20:18 · 154 阅读 · 0 评论 -
超卖100瓶茅台事故分析,java并发处理
来源 |https://urlify.cn/MVBvmy基于Redis使用分布式锁在当今已经不是什么新鲜事了。本篇文章主要是基于我们实际项目中因为redis分布式锁造成的事故分析及解决方案。我们项目中的抢购订单采用的是分布式锁来解决的,有一次,运营做了一个飞天茅台的抢购活动,库存100瓶,但是却超卖了100瓶!要知道,这个地球上飞天茅台的稀缺性啊!!!事故定为P0级重大事故...只能坦然接受。整个项目组被扣绩效了~~事故发生后,CTO指名点姓让我带头冲锋来处理。好吧,冲~事故现场经.转载 2020-12-15 09:18:30 · 303 阅读 · 0 评论 -
spring-boot 接口放刷及反爬虫
kk-anti-reptile 是适用于基于 spring-boot 开发的分布式系统的反爬虫组件。系统要求 基于 spring-boot 开发(spring-boot1.x, spring-boot2.x均可) 需要使用 redis 工作流程kk-anti-reptile 使用基于 Servlet 规范的的 Filter 对请求进行过滤,在其内部通过 spring-boot 的扩展点机制,实例化一个 Filter,并注入到 Spring 容器 FilterRegistratio转载 2020-12-15 09:05:34 · 220 阅读 · 1 评论 -
如何做压测?
简介:压测的一般流程和方法是什么?需要关注哪些数据指标?如何推算后端需要支持的qps?本文分享总结压测过程中需要注意的问题,希望对同学们有所启发,欢迎讨论~一 压测目标在开始做压测计划之前,一定要先明确压测的目标是什么,虽然最终的目标肯定都是优化系统的性能,但是不同的出发点,可能需要采取不同的方法。一般来说,可能有以下一些目的:1 挖掘系统瓶颈点,优化系统性能尤其对新系统上线,缺乏性能基线数据,此时压测一般没有明确的qps/rt等指标,而是通过不断施压,不断逼近系统的极限,从而暴转载 2020-12-14 10:38:40 · 778 阅读 · 1 评论 -
不会生成随机数?我们来看看java生成随机数的10种方法
1.引言本文将探讨用 Java 生成随机数的不同方法。2.Java APIJava API 提供了几种随机数生成方法。让我们一起来了解一下。2.1.java.lang.MathMath 类中的 random 方法返回一个 [0.0, 1.0) 区间的 double 值。下面这段代码能得到一个 min 和 max 之间的随机数:int randomWithMathRandom = (int) ((Math.random() * (max - min)) + min);2.2.ja原创 2020-10-26 11:05:53 · 885 阅读 · 0 评论 -
Idea 可以正常运行,但是显示类找不到,报红问题解决
如果出现这样的问题,这个类明明存在,运行也是正常的,但是就是报红可以这样解决,在file里 Invalidate Caches / Restart 然后 选择Invalidate And Restart 这样就可以解决了原创 2020-06-29 11:41:32 · 8547 阅读 · 6 评论 -
Idea 设置代码自动换行及格式化的时候自动换行
1.设置代码编写的时候超过120 columns自动换行2.设置代码格式化的时候自动换行原创 2019-12-18 10:36:38 · 11863 阅读 · 1 评论