细说Redis分布式锁
2021年10月9日 - 网易
因为redis版本在2.6.12之前,set是不支持nx参数的,如果想要完成一个锁,那么需要两条命令:1setnxTestuuid2expireTest30即放入Key和设置有效期,是分开的两步,理论上会出现1刚执行完,程序挂掉,无法保证原子性。但是早在2013年,也就是7年前,Redis就发布了2.6.12版本,并且官网(set命令页),也早早就说明...
详情
分布式应用中唯一主键生成解析
2021年9月9日 - 网易
六.利用zookeeper生成唯一IDzookeeper主要通过其znode数据版本来生成序列号,可以生成32位和64位的数据版本号,客户端可以使用这个版本号来作为唯一的序列号。很少会使用zookeeper来生成唯一ID。主要是由于需要依赖zookeeper,并且是多步调用API,如果在竞争较大的情况下,需要考虑使用分布式锁。因此,性能在高并发的分布式环境...
详情
分布式事务不理解?五种方案一次给你讲清楚!
2019年3月4日 - 网易
为了保证操作的可查询,需要对于每一个服务的每一次调用都有一个全局唯一的标识,可以是业务单据号(如订单号)、也可以是系统分配的操作流水号(如支付记录流水号)。除此之外,操作的时间信息也要有完整的记录。幂等操作幂等性,其实是一个数学概念。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果...
详情
面试官问:分布式事务有了解吗?如何数据一致性问题?
2023年10月22日 - 网易
1、先往JobController中提交一个job(用于故障恢复)2、提交成功后,开始处理订单逻辑3、处理完订单逻辑之后,开始发送kafka消息4、消息也发送成功后,删除第一步提交的job黄色部分表示流程出现了异常,数据可能存在不一致现象。这个时候就需要进行流程恢复1、JobController任务控制器定时去redis查询延时任务列表(每个任...
详情