分布式
文章平均质量分 95
橡 皮 人
代码传递思想,技术创造回响。
展开
-
Redis第15讲——RedLock、Zookeeper及数据库实现分布式锁
由于篇幅原因,在上篇文章我们只介绍了redis实现分布式锁的两种方式——setnx和Redission,并对Reidssion加锁和看门狗机制的源码进行了分析,但这两种方案在极端情况下都会出现或多或少的问题。那么针对上述问题,比较主流的解决方案有两种:RedLock和Zookeeper实现的分布式锁。原创 2024-05-02 07:30:00 · 2158 阅读 · 0 评论 -
Redis第14讲——Redis实现分布式锁(Redission源码解析)
在多线程环境下,为了保证数据的线程安全,我们通常用加锁的方式,使同一时刻只有一个线程可以对这个共享资源进行操作,在单服务系统我们常用JVM锁——Synchronized、ReentrantLock等。然而在多台服务系统的情况下,JVM锁就无法在多个服务器之间生效了,这时候我们就需要用分布式锁来解决线程安全的问题。分布式锁的实现方式有很多,主流的就是基于数据库、zookeeper以及redis,当然使用redis的居多,由于篇幅原因,本节就详细介绍一下使用redis实现分布式锁的几种方式。原创 2024-04-25 07:30:00 · 1704 阅读 · 0 评论 -
Redis第11讲——Redis集群脑裂问题
在Redis集群中,每个节点的部署方式一般都是【一主多从】,主节点提供写操作,从节点提供读操作。如果主节点此时发生网络故障,与从节点断开连接了,但主节点与客户端是正常的,客户端依旧向主节点写入数据。这时哨兵节点发现主节点有故障失联了,于是哨兵节点就会从 从节点选出一个leader作为新主节点,这时脑裂就出现了。原创 2024-04-04 07:30:00 · 2515 阅读 · 0 评论 -
Redis第10讲——Redis数据分片的三种算法
一致性哈希环顺时针映射优先考虑的是:如何实现最少的节点数据发生数据迁移,当增加或移除节点,只有离新节点最近的节点会涉及到数据迁移。redis cluster哈希槽是静态映射,优先考虑的是如何实现数据均匀分布,当增加或移除节点时,所有的节点都会参与进来平摊压力。(我们搞集群的目的是啥?还不是单机容量不足,需要扩容多机组成集群,然后将数据尽可能的均匀分布吗)。同时,redis cluster哈希槽静态映射还有一个优点,就是可以手动调整slots槽的分配。redis cluster集群分为16384个原创 2024-03-28 07:30:00 · 1904 阅读 · 0 评论 -
八种分布式ID解决方案
在复杂的分布式系统中,往往需要对大量的数据进行唯一标识,如在金融、电商、支付等产品的系统中,随着数据的日益增长,数据库的自增ID显然不能作为某个订单的唯一标识。除此之外还有其他分布式场景对分布式ID有一些要求,本文针对多中方案进行介绍,包括UUID、数据库自增ID、号段模式、Reids INCR、Twitte(雪花算法)、滴滴(TinyID)、美团(Leaf)、百度(Uidgenerator)。原创 2023-05-17 23:19:38 · 1038 阅读 · 0 评论