幂等性及数据防重复(转载)

1. 幂等性 用户对同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。 2. 造成重复消费的原因 因为网络传输等等故障,确认信息没有传送到消息队列,导致消息队列不知道自己已经消费过该消息了,再次将该消息分发给其他的消费者。 例子1 在支付场景中,用户购买商品后支付,支付扣款成功,但是返回结果的时候… 阅读更多 »幂等性及数据防重复(转载)

缓存数据一致性问题(转载)

1. 缓存数据不一致 数据库的瓶颈是大家有目共睹的,高并发的环境下,很容易 I/O 锁死。当务之急,就是把常用的数据,给捞到速度更快的存储里去。 这个更快的存储,就有可能是分布式的,比如 Redis,也有可能是单机的,比如 Caffeine。 但一旦加入缓存,就不得不面对一个蛋疼的问题:数据的一致性。 数据不一致的问题,人世间多… 阅读更多 »缓存数据一致性问题(转载)

系统吞吐量(TPS)、用户并发量、性能测试概念和公式(转载)

1. 系统吞度量要素 1.1. 基本概念 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。 单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS(TPS):每秒钟request… 阅读更多 »系统吞吐量(TPS)、用户并发量、性能测试概念和公式(转载)

LRU Cache原理与实现(转载)

1. LRU原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 1.1. 实现 最常见的实现是使用一个链表保存缓存数据,详细算法实现如下: 1. 新数据插入到链表头部; 2. 每当缓存命中(即缓存数据被访… 阅读更多 »LRU Cache原理与实现(转载)