漫谈Guava之Cache(一) 计算机的世界中,缓存无处不在,最常见的如CPU高速缓存,CPU Cache是用于减少处理器访问内存所需平均时间的部件。在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。 当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入缓存,再将其返 2020-03-27 Java #Guava #Cache #缓存
Spring Cloud Gateway 分布式限流 前文我们介绍过通过Guava中的RateLimiter进行限流,但Guava中的工具只适用同一JVM中的操作,想要在分布式环境中进行接口限流我们还需要引入中间件,本文介绍基于Redis的接口限流。 2020-03-25 Java #limiter #Spring Cloud #Gateway
漫谈限流器 日常开发中经常会出现一瞬间接口被超频次访问的这种情况,例如电商秒杀活动,定点抢红包等。短时间高并发可能会拖慢系统的响应速度,引起网络超时,一个服务不可用进而影响其他服务也不可用,甚至导致雪崩。 限流是最直接有效的控制手段,将系统处理不过来的请求拦截在核心逻辑之外。限流器实现方法有漏桶算法(Leaky Bucket),令牌桶算法(Token Bucket)`等。 2020-03-24 Java #limiter #Guava
Mysql主从配置 主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。 2019-09-28 应用 #Mqsql
使用Mycat实现读写分离 Mycat是常用的数据库代理层中间件,本文通过Mycat实现读写分离,应用程序先访问Mycat服务,Mycat根据SQL语句进行分发,读操作并且无事务走从库,写操作走主库。 2019-09-28 应用 #Mqsql #Mycat #读写分离
Redis进阶 日常开发中Redis是常用的缓存工具,Redis其实不仅仅能做缓存,Redis支持string(字符串)、list(列表)、hash(字典)、set(集合) 和zset(有序集合)这五种数据结构,本文介绍更多Redis的使用场景。 2019-03-28 应用 #Redis