分布式系统
文章平均质量分 95
&u204
这个作者很懒,什么都没留下…
展开
-
分布式雪花算法
1第一个服务节点在获取时,Redis 可能是没有 snowflake_work_id_key 这个 Hash 的,应该先判断 Hash 是否存在,不存在初始化 Hash,dataCenterId、workerId 初始化为 0。分布式系统中,有一些需要使用全局唯一 ID 的场景,这种时候为了防止 ID 冲突可以使用 36 位的 UUID,但是 UUID 有一些缺点,首先他相对比较长,另外 UUID 一般是无序的。如果是全局唯一,所有使用雪花算法的应用,要用同一个 Redis 节点。原创 2024-08-07 14:34:45 · 913 阅读 · 0 评论 -
缓存双写一致性
binlog日志可以记录数据库所有执行的DDL 和 DML 等数据库更新事件的语句,但是不包含没有修改任何数据的语句(如数据查询语句select、| ROW模式 除了记录sql语句之外,还会记录每个字段的变化情况,能够清楚的记录每行数据的变化历史,但会占用较多的空间。A线程先成功删除了redis里面的数据,然后去更新mysql,此时mysql正在更新中,还没有结束。在业务程序运行的时候,统计下线程读数据和写缓存的操作时间,自行评估自己的项目的读数据业务逻辑的耗时,原创 2024-08-06 23:33:20 · 930 阅读 · 0 评论 -
RedLock算法分析
Redis也提供了Redlock算法,用来实现分布式锁。锁变量由多个实例维护,即使有实例发生了故障,锁变量仍然是存在的,客户端还是可以完成锁操作。Redlock算法是实现高可靠分布式锁的一种有效解决方案,可以在实际开发中使用。原创 2024-08-06 23:29:53 · 880 阅读 · 0 评论 -
手写Redis分布式锁
Resource@Resourcetry {//1 查询库存信息//有库存retMessage = "恭喜你,成功卖出一个商品,库存剩余:" + inventorynumber;System.out.println(retMessage + "\t" + "服务端口号:" + port);} else {retMessage = "库存不足";return retMessage + "\t" + "服务端口号:" + port;原创 2024-08-06 23:27:51 · 948 阅读 · 0 评论