分布式
文章平均质量分 94
Ethan_199402
这个作者很懒,什么都没留下…
展开
-
深度解析lettuce,为什么单连接也可以处理高并发redis请求
lettuce是什么?为什么被springboot 2.x作为默认reids客户端原创 2023-09-05 15:48:03 · 1458 阅读 · 3 评论 -
Leaf——美团点评分布式ID生成系统
美团给出的解决时钟回拨方案转载 2023-09-04 15:21:28 · 597 阅读 · 0 评论 -
让自己再认识一下分区吧
关于分布式架构下的分区干货原创 2023-05-18 19:48:11 · 1014 阅读 · 0 评论 -
站的更高一点看分布式系统中的复制
为什么要复制?复制延迟怎么解决?原创 2023-05-18 15:51:24 · 723 阅读 · 0 评论 -
RocketMQ 概念特性,架构设计解读
RocketMQ 概念特性,架构设计解读原创 2023-03-23 17:52:18 · 922 阅读 · 0 评论 -
Raft对比ZAB协议
1 leader选举为什么要进行leader选举?在实现一致性的方案,可以像base-paxos那样不需要leader选举,这种方案达成一件事情的一致性还好,面对多件事情的一致性就比较复杂了,所以通过选举出一个leader来简化实现的复杂性。1.1 一般的leader选举过程更多的有2个要素:1.1.1 选举轮次1.1.2 leader包含更多的日志1.1.1 选举投票可能会多次轮番上演,为了区分,所以需要定义你的投票是属于哪个轮次的。Raft定义了term来表示选举轮次ZooKeeper转载 2022-01-27 17:54:10 · 877 阅读 · 0 评论 -
Raft协议图解,缺陷以及优化
结点的状态每个结点可以有三种状态:Follower,Candidate,Leader。所有的结点都是从Follower状态开始的如果followers没有收到leader的RPC消息(心跳),则可以转换为candidate,如下图node a,Term表示任期而candidate需要发起投票,其他结点参与投票,回复他们的投票结果,如果这个candidate获得了大部分(过半)的选票,就可以成为leader结点了。这就是Leader Election过程。选举机制每个节点随机一个选举超时时间,而原创 2022-01-26 17:50:07 · 3749 阅读 · 2 评论 -
Pulsar与Rocketmq、Kafka、Inlong-TubeMQ,谁才是消息中间件的王者?
导语 | Pulsar作为下一代消息中间件的典型代表,在设计和实现上面都具备很好的前瞻性,综合考量了业界现存的一些比较常用的、优秀的消息中间的架构设计、适用场景、运营中的问题等,如目前用的比较多的Kafka、Rocketmq、Inlong-TubeMQ等。本文仅从设计角度出发,说明下Pulsar与Kafka、Rocketmq及腾讯开源的Inlong-TubeMQ在实现上的几点区别和可能遇到的问题,供大家参考。一、云原生多租户设计(一)分级命名Pulsar原生支持多租户设计,非常适合作为云产品进行管理。转载 2022-01-13 11:32:02 · 478 阅读 · 0 评论 -
怎么理解缓存穿透、缓存击穿、缓存雪崩以及解决方案
以redis为例,读取缓存的流程为读取缓存,若命中则返回,否则读数据库,若命中则返回,否则返回空缓存穿透如果把redis当做一道保护数据库的屏障(减轻数据库的压力),那么穿透顾名思义:直接穿过换缓存,视缓存于无物缓存穿透是指缓存和数据库中都没有的数据,用户不断请求此类缓存和数据库都不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大直至奔溃解决方法:1 校验参数和合法性2 如果缓存取不到的数据,在数据库中也没有取到,可以将key-value对写为key-null,同时设置缓存有效期,原创 2020-07-29 17:55:22 · 291 阅读 · 0 评论 -
Redis高可用之:持久化 AOF和RDB
Redis高可用概述在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。我们知道,在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999% 等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。在Redis中,实现高可用的技术主要包括持久化、复制、哨兵和集群,下面分别说明它们的作用,以及解决了什么样的问转载 2020-07-29 12:17:57 · 227 阅读 · 1 评论 -
一遍文章搞懂Redis主从复制原理
主从复制概述主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。目前很多中小企业都没有使用到 Redis 的集群,但是至少都做了主从。有了主从,当 master 挂掉的时候,运维让从库过来接管,服务就可以继续,否则 master 需要经过数据恢复和重启的过程转载 2020-07-29 10:26:16 · 311 阅读 · 0 评论 -
图解一致性哈希算法原理
一致性Hash算法背景一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数据库的人都知道,memcached服务器端本身不提供分布式cache的一致性,而是由客户端来提供,具体在计算一致性hash转载 2020-06-28 09:25:24 · 235 阅读 · 0 评论 -
雪花算法以及分布式环境如何使用
我们都知道在一个分布式系统中生成一个无重复的标识是非常重要的,业界也有很多算法。其中一个很出名的就是推特的雪花算法,贴一下java的源码(推特是python写的,下面是java改写的):package com.cnblogs.util;/** * Twitter_Snowflake<br> * SnowFlake的结构如下(每部分用-分开):<br> * 0 ...原创 2020-05-07 11:41:42 · 1011 阅读 · 0 评论 -
分布式锁之Zookeeper
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入本文引用地址...转载 2020-04-15 13:51:40 · 406 阅读 · 0 评论 -
redisson实现分布式锁
需要注意的问题:1:redis采用setnx实现获得锁,同时设置过期时间防止服务器挂掉后没有释放锁2:改进为redisson来解决业务逻辑未进行完锁就失效的问题.如果加锁的业务没有执行完,那么到 30/3= 10秒的时候,就会进行一次续期,把锁重置成30秒.那这个时候可能又有同学问了,那业务的机器万一宕机了呢?宕机了定时任务跑不了,就续不了期,那自然30秒之后锁就解开了呗.Redisso...转载 2020-03-10 21:40:56 · 477 阅读 · 0 评论 -
为什么要使用分布式锁以及常见解决方案
分布式锁那点事为什么要使用分布式锁为了保证一个方法在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLcok或synchronized)进行互斥控制。但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效...转载 2019-10-15 21:13:25 · 3860 阅读 · 0 评论