logo头像

不忘初心 方得始终

JVM缓存之Caffeine

JVM缓存之Caffeine

引言Caffeine是一个高性能、高命中率、低内存占用的的本地缓存。它是Guava的加强版,Caffeine使用Window TinyLfu (最近最少频率使用)算法,提供了近乎最佳的命中率。…

Spring之循环依赖

Spring之循环依赖

引言在Spring框架中,针对Bean之间的循环依赖,Spring通过三级缓存的机制已经解决和规避了部分场景Bean的循环依赖。但是仍需了解Spring解决循环依赖的原理和注意Spring无法解决循环依赖的场景,避免出现此类问题。…

Linux中的零拷贝技术

Linux中的零拷贝技术

引言零拷贝(Zero-Copy)技术指在计算机执行操作时,CPU不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及CPU的拷贝时间。作用是在数据从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,消除CPU在这方面的负载。…

RocketMQ(三)—消息幂等

RocketMQ(三)—消息幂等

引言在MQ中,Producer和Consumer因为各种原因会进行消息重试处理,在消费消息时,会按照一定规则推送消息到消费端进行消息消费。既然有重试,那么就少不了幂等。…

Javascript Number类型长度溢出

Javascript Number类型长度溢出

引言项目中遇到一个问题,由于后台数据库表ID使用分布式唯一算法生成的Long类型(19位数字),导致转成json传至前端js使用时报错,因为js的数字类型最大只能表示15位数字长度【JavaScript Number 对象】。 解决方...

RocketMQ(二)—消息重试

RocketMQ(二)—消息重试

引言由于MQ经常处于复杂的分布式系统中,考虑网络波动、服务宕机、程序异常因素,很有可能出现消息发送或者消费失败的问题。因此,消息的重试就是所有MQ中间件必须考虑到的一个关键点。如果没有消息重试,就可能产生消息丢失的问题,可能对系统产生...