什么是NanoId nanoid库和uuid库一样都可以生成唯一识别码,但是nanoid相比uuid要更轻量级。 用法 可以引用下方的jar包,或者项目中直接自己创建工具类。 引用jar包的POM依赖如下: <dependency> <groupId>com.aventrix.jnanoid&l […]
什么是NanoId nanoid库和uuid库一样都可以生成唯一识别码,但是nanoid相比uuid要更轻量级。 用法 可以引用下方的jar包,或者项目中直接自己创建工具类。 引用jar包的POM依赖如下: <dependency> <groupId>com.aventrix.jnanoid&l […]
缓存雪崩 缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间 (例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。 解决办法: 大多数系 […]
当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力 […]
什么是线程安全? 线程安全是指保证多线程环境下共享的、可修改的状态的正确性。 线程安全需要保证几个基本特性 原子性:相关操作不会中途被其他线程干扰,一般通过同步机制实现。 可见性:一个线程修改了某个共享变量,其状态能够立即被其他线程知晓,通常被解释为将线程本地状态反映到主内存上,volatile就是负责保证可见性的。 […]
苟利国家生死以,岂因祸福避趋之。