Welcome everyone

 分类:技术积累

redis

从Redis原子性聊到库存控制

从Redis原子性聊到库存控制
Redis原子性 一般我们会通过加锁来控制并发请求,但是加锁肯定是有消耗的,而且加锁本身也会引入其他一系列的问题,如分布式锁失效等。 那么原子操作便是另一个控制并发请求的手段,即无锁操作。 Redis有2种原子操作方法: 1.单命令操作 2.lua...

汪明鑫 2个月前 (02-08) 82浏览 0评论 0喜欢

redis

一个Redis简易的分布式锁实现

一个Redis简易的分布式锁实现
在一些简单的业务场景下,其实不用考虑锁的重入、重试等问题,也很少需要考虑Redis主从切换,分布式锁失效。 那么一种最简单的分布式锁实现,其实就是Redis setNX, 其实已经能满足大多数场景了 直接上代码: public class RedisD...

汪明鑫 2个月前 (02-07) 80浏览 0评论 0喜欢

分布式

正确理解事务消息

正确理解事务消息
之前记住这个图,就自认为理解了事务消息,然而在生产中真的用的事务消息时,发现还是有很多地方理解不到位的,这里再好好学习,深入理解一下。 RocketMQ可以帮助我们实现最终一致性 比如我们本地执行一个事务,然后还有一个其他系统的事务,我们想保证2个模...

汪明鑫 2个月前 (02-06) 76浏览 0评论 0喜欢

分布式

影子链路改造实践

影子链路改造实践
“影子”的概念在技术侧最早诞生于阿里的大促全链路压测 那我们先来聊下全链路压测 由于业务不断的架构升级,引入分布式微服务 传统的线下测试已经不能满足我们的测试需求了,因此需要全链路压测     一般需要压测平台,创建配置压测计划,对接口进行发压 这样的压测流...

汪明鑫 11个月前 (04-22) 267浏览 0评论 3喜欢

分布式

缓存为王

缓存为王
缓存使用场景和心得 内存的诞生是为了弥补CPU和磁盘速度的不一致的问题 内存的价格都比磁盘要贵的多   CPU的多级缓存也是同理,把数据暂存于缓存,加速数据读取   在业务中我们也常常使用缓存做读写分离,写操作落db 读流量打到缓存,用缓存抗读流量,用了...

汪明鑫 11个月前 (04-22) 473浏览 0评论 0喜欢

分布式

Raft 流程

Raft 流程
本文简单介绍分布式共识算法 Raft Raft存在的目的是为了解决分布式集群下数据不一致的问题   Raft主要有2个流程: 1)选主 2)数据同步   Raft集群节点身份见下图 网上扒的,比较清晰, 大概就是候选人,获得多数投票成为leader, 发现更高...

汪明鑫 11个月前 (04-22) 151浏览 0评论 0喜欢

分布式

几点最重要的高并发系统通用应对方案

几点最重要的高并发系统通用应对方案
Map Reduce 为了整个系统的吞吐量,做到分片多实例并行处理   异步化 主要包含几个方面,一来是通过消息队列做削峰和解藕,可以把非核心逻辑异步化,避免同步接口等待耗时过长 还可以理解通过定时任务实现异步扫库表驱动 这里也可以理解起多线程异步并行处理 &n...

汪明鑫 1年前 (2022-03-28) 177浏览 0评论 1喜欢

mysql

Mysql join 规则

Mysql join 规则
如果可以使用被驱动表的索引,join还是有优势的,让驱动表走全表扫描,而被驱动表是走树搜索。 否则就是驱动表全表扫 + 被驱动表全表扫,那就不要用join。 使用join的时候,尽量使用小表作为驱动表。 join会借助join buffer做数据关联,join buffer不够...

汪明鑫 1年前 (2022-03-14) 205浏览 0评论 3喜欢

mysql

Mysql 加锁规则

Mysql 加锁规则
查询过程中访问到的对象才会加锁,而加锁的基本单位是next-key lock(前开后闭); 等值查询上MySQL的优化:索引上的等值查询,如果是唯一索引,next-key lock会退化为行锁,如果不是唯一索引,需要访问到第一个不满足条件的值,此时next-key lock会...

汪明鑫 1年前 (2022-03-01) 246浏览 0评论 0喜欢