分布式
文章平均质量分 95
arthur.dy.lee
这个作者很懒,什么都没留下…
展开
-
Raft一致性算法(精简和扩展)
⼀ 致性算法在构建可信赖的⼤规模软件系统中扮演着重要的⾓⾊。强领导⼈:和其他⼀致性算法相⽐,Raft 使⽤⼀种更强的领导能⼒形式。⽐如,⽇志条⽬只从领导⼈发送给其他 的服务器。这种⽅式简化了对复制⽇志的管理并且使得 Raft 算法更加易于理解。领导选举:Raft 算法使⽤⼀个随机计时器来选举领导⼈。这种⽅式只是在任何⼀致性算法都必须实现的⼼跳机制 上增加了⼀点机制。在解决冲突的时候会更加简单快捷。原创 2023-04-17 20:45:51 · 881 阅读 · 0 评论 -
Raft一致性算法(目前找到的最好的翻译)
Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。一项用户研究的结果表明,对于学生而言,Raft 算法比 Paxos 算法更加容易学习。转载 2023-04-17 19:25:02 · 149 阅读 · 0 评论 -
秒杀设计
秒杀一、特点1、时间短2、瞬间请求的量非常大二、需求注意的点1、不能超卖2、防黑产、黄牛;机器的请求速度比人的手速快太多了。3、舜间爆发的高流量典型的读多写少的场景(Cache缓存)页面静态化,利用CDN服务器缓存前端文件按钮置灰3秒(利用风控规则过滤非法用户)接口层可以做开关限流(一旦抢购结束,则直接返回失败)堆机器,搭建集群,利用Nginx做负载均衡热点隔离,增加资源,有限放流(熔断)多次请求合并为一次4、尽量把请求拦截在上层。MysqlMysql单机读能力为5k,写能原创 2020-07-26 09:53:21 · 235 阅读 · 0 评论 -
一种分布式系统下的自增主键实现方法
在分布式系统中大多数存在着如下的架构形式:系统的被逻辑分为前台应用和数据库两个部分,前台应用通过统一的数据访问层对数据库进行读写操作,前台应用会部署在多台机器上,数据库系统则采用分库分表的形式进行部署。 由此引发的一个问题是,当需要对一个逻辑上的表TABLE1(物理上被分为多个表,形如:TABLE1_0000,TABLE1_0001)采用统一的自增主键时,则会遇到困难,因为采用了分表的策略将无法采用转载 2017-11-09 18:09:16 · 2881 阅读 · 0 评论 -
基于Redis的分布式锁到底安全吗?
网上有关Redis分布式锁的文章可谓多如牛毛了,不信的话你可以拿关键词“Redis 分布式锁”随便到哪个搜索引擎上去搜索一下就知道了。这些文章的思路大体相近,给出的实现算法也看似合乎逻辑,但当我们着手去实现它们的时候,却发现如果你越是仔细推敲,疑虑也就越来越多。实际上,大概在一年以前,关于Redis分布式锁的安全性问题,在分布式系统专家Martin Kleppmann和Redis的作者antire...转载 2017-07-14 00:08:43 · 5078 阅读 · 0 评论 -
Snowflake id生成器
最下面代码是mybatisplus根据 李景枫 的开源稍改写的id生成器,核心算法就: Snowflake算法Snowflake算法核心把时间戳,工作机器id,序列号组合在一起。Snowflake算法核心除了最高位bit标记为不可用以外,其余三组bit占位均可浮动,看具体的业务需求而定。默认情况下41bit的时间戳可以支持该算法使用到2082年,10bit的工作机器id...原创 2018-03-21 15:08:30 · 3244 阅读 · 0 评论 -
Eureka与ZooKeeper 的比较[转]
1. 前言服务注册中心,给客户端提供可供调用的服务列表,客户端在进行远程服务调用时,根据服务列表然后选择服务提供方的服务地址进行服务调用。服务注册中心在分布式系统中大量应用,是分布式系统中不可或缺的组件,例如rocketmq的name server,hdfs中的namenode,dubbo中的zk注册中心,spring cloud中的服务注册中心eureka。在spring cloud中,...转载 2018-07-11 14:06:07 · 3427 阅读 · 0 评论 -
centos安装rocketMQ4.2
centos安装rocketMQ4.2一、下载最新的rocketmq源码文件 unzip rocketmq-all-4.2.0-source-release.zip cd rocketmq-all-4.2.0/ mvn -Prelease-all -DskipTests clean install -U cd distribution/target/apa...转载 2018-08-01 16:27:35 · 956 阅读 · 0 评论 -
baidu UidGenerator 分布式id生成器, snowflake落地应用
baidu UidGenerator id生成器baidu/uid-generator GitHub地址:https://github.com/baidu/uid-generator一、问题如果只是引入源码,在springboot中,出抛出以下异常:‘com.baidu.fsg.uid.worker.dao.WorkerNodeDAO’ that could not be found...原创 2019-04-27 18:54:57 · 3821 阅读 · 2 评论 -
如何实现一个分布式 RPC 框架
远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。RPC的主要目标是让构建分布式应用更加容易,在提供强大的远程调用能力的同时不损失本地调用的语义的简洁性。趁实习前的这段业余时间,我实现了一个轻量级的分布式RPC框架,名字叫做 buddha,代码量不大,但是麻雀虽转载 2017-09-18 14:34:27 · 520 阅读 · 0 评论 -
redisson分布式锁redLock源码解析【未完】
一、准备阶段1、原理 一个客户端需要做如下操作来获取锁: 1.获取当前时间(单位是毫秒) 2.轮流用相同的key和随机值在N个节点上请求锁,在这一步里,客户端在每个master上请求锁时会有一个和总的锁释放时间相比小的多的超时时间。比如如果锁自动释放时间是10秒钟,那每个节点锁请求的超时时间可能是5-50毫秒的范围,这个可以防止一个客户端在某个宕掉的master节点上阻塞过长原创 2017-08-24 17:56:30 · 4643 阅读 · 2 评论 -
RedLock - 用Redis构建分布式锁
线程间的通信、同步方式与进程间通信方式1、线程间的通信方式使用全局变量 主要由于多个线程可能更改全局变量,因此全局变量最好声明为volatile使用消息实现通信 在Windows程序设计中,每一个线程都可以拥有自己的消息队列(UI线程默认自带消息队列和消息循环,工作线程需要手动实现消息循环),因此可以采用消息进行线程间通信sendMessage,postMessage。 1)定义消息#de转载 2017-08-14 16:54:35 · 2244 阅读 · 0 评论 -
zookeeper 分布式锁服务
zookeeper 分布式锁服务转载 2016-03-10 10:50:04 · 1529 阅读 · 0 评论 -
分布式和集群区别[待校验]
本人这几天研究分布式架构 有些概念了解的很不清楚 所以拿出来跟各位讨论讨论,请各位大胆的发表自己的观点我的了解分布式架构主要有以下几种1::tomcat+nginx+memcached+mysql集群 案例:1个nginx服务器 3个tomcat服务器 1个memcached 类似这种搭建起来的也属于一种分布式架构 对吗 各位??2:然转载 2016-03-10 23:54:08 · 475 阅读 · 0 评论 -
Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)转载 2016-04-29 22:20:29 · 662 阅读 · 1 评论 -
分布式锁1 Java常用技术方案
分布式锁Java常用技术方案转载 2016-06-20 14:57:34 · 493 阅读 · 0 评论 -
分布式系统学习思路
分布式系统学习思路介绍博主近段时间准备学习分布式系统相关的东西,本文整理了学习分布式系统的思路,此文还未经过实践,可能还需要不断调整,仅供参考。分布式系统一般分为分布式K/V系统、分布式文件系统和分布式数据库等几个大类,在学习这几类系统的时候,需要掌握的知识或技能应该包括计算机基础知识、分布式算法和协议相关论文、分布式系统设计范型相关论文、开源的分布式系统案例以及造相关的轮子。基础知识根据博主目前经转载 2017-05-25 15:28:22 · 1690 阅读 · 0 评论 -
分布式系统中的死锁处理
分布式系统中的死锁处理1死锁发生的条件分布式计算机系统是一种具有多处理器并且各个处理器之间通过互连网络构建成一个具有整体功能的计算机系统。系统具有的优点是加快了处理的速度,简化了主机的逻辑结构,同时具有成本低和易于维护的特点,并且成为计算机应用领域发展中的一个重要方向。但是,在分布式环境下,由于通讯延迟的不确定性、地域的分布性以及资源和数据的高度共享性等影响因素的存在,使得死锁预防和检测变得极为困难转载 2017-05-26 16:04:30 · 1977 阅读 · 0 评论 -
几种缓存比较
几种缓存比较1、memcached协议简单、基于libevent的事件处理、内置内存存储方式、memcached不互相通信的分布式。 各个memcached不会互相通信以共享信息,分布策略由客户端实现。不会对数据进行持久化,重启memcached、重启操作系统会导致全部数据消失。Memcached常见的应用场景是存储一些读取频繁但更新较少的数据,如静态网页、系统配置及规则数据、活跃用户的基本数据和个转载 2017-05-27 17:02:07 · 5719 阅读 · 0 评论 -
Hadoop和Storm的4点区别
1) Storm与Hadoop的定义与架构有什么不同?Hadoop是一个可以对海量数据进行分布式处理的软件框架,是Apache的一个项目。Storm是一个能够实时处理流式的分布式计算系统,是Apache基金会的孵化的一个项目。2) 应用场景有什么不同?Hadoop是分布式批处理计算,主要是进行批处理,较多用其进行数据挖掘和分析。2) 应用场景有什么不同?Storm是分布式实时计算,主要特点是实时性,转载 2017-06-14 18:16:38 · 1002 阅读 · 0 评论 -
关于分布式数据库,你该了解的几件事
关于分布式数据库转载 2016-03-21 12:42:46 · 12120 阅读 · 0 评论