logo头像
Snippet 博客主题

限流问题

基本的概念:限流是为了解决流量超出服务器的承载量,为了保证服务器的稳定性而做的折中方案。通用的实现方式计数器代码实现具体实现 缺点临界问题,11:59:59 秒100个请求,12:00:01秒 又100个请求,导致请求超出服务器的承载...

java高并发细节优化

逃逸分析和栈上分配 逃逸分析: 就是分析出对象的作用域。当一个对象在方法体内声明后,该对象的引用被其他外部所引用时该对象就发生了逃逸,反之就会在栈帧中为对象分配内存空间。就是一个对象如果尽量在自己的方法区内调用,能增加方法执行的效率...

高并发之请求合并

如果我们没有在高并发场景下,我们获取单个用户信息 1234567891011121314public class UserServiceImpl implements UserService { @Override ...

spring boot 优雅关闭

为什么要研究这个?开始开发系统的时候,系统部署上线,很容易执行kill -9 执行系统的关闭,但该关闭会有问题,一个是如果老板正在执行操作,你在重新部署系统,结果就是在老板那边各种拒绝服务错误,还有一个可能在系统重启之后,老板的数据存...

cacheline和伪共享问题

查看缓存行的大小。1cat /sys/devices/system/cpu/cpu1/cache/index0/coherency_line_size 验证cacheline的存在。cacheline 的代码验证,如下所示的代码,按...

spring boot 工作原理

spring boots 的工程开发 一般性我们只需要如下图配置就OK了 为什么这么配置之后spring boots就能启动了?看一下 SpringBootsApplication 核心的代码基本就在 @EnableAutoConf...

BPlugsTree-java实现

背景b+ 树,目前删除还不是很完善,主要是为了搞明白h2数据库预先打下基础,后面会开始通过这个然后比对h2是如何实现这块的逻辑。 应用的数据库h2,mysql, b+树的图解:![](/images/b 树最大值索引.jpg) 123...

数据库开发设计学习

系统外知识 1: 操作系统里的Page(页)是固定大小的内存,一般为4k,可以通过命令查找。 数据库主要涉及的知识点1:事务,隔离级别2:MVCC3:多版本存储,每一个版本都是一个B-tree树4:B-treeC-ISAMD-ISAM...

一致性hash算法

主要用途相比简单hash 减少分布式缓存 添加一台机器或者减少一台机器时候,对于缓存路由到新的机子,导致缓存穿透的问题。 代码12345678910111213141516171819202122232425262728293031...