斜阳雨陌

再不做乞求命运怜惜的弱者,一定要做主宰命运的王。

分布式系统之数据分片及特征值的选择

正文   在前文中,提出了分布式系统(尤其是分布式存储系统)需要解决的两个最主要的问题,即数据分片和数据冗余,下面这个图片(来源)形象生动的解释了其概念和区别:      其中数据即A、B属于数据分片,原始数据被拆分成两个正交子集分布在两个节点上。而数据集C属于数据冗余,同一份完整的数据在两...

2018-12-15 21:40:07

阅读数:117

评论数:0

微服务简介

Microservices are currently getting a lot of attention: articles, blogs, discussions on social media, and conference presentations. They are rapidly ...

2018-12-09 19:24:48

阅读数:55

评论数:0

服务注册与发现

为什么需要服务注册和发现? 在传统应用中,应用部署都是部署在一台物理机器上,ip地址和端口是固定的。这些可能配置在配置文件中,调用时从配置文件中读取就好了。但是在云平台中是不适用的,在微服务中服务实例会因为扩容、失败和升级等因素动态变化的,服务地址是不固定的。所以客户端需要更复杂服务发现机制。 ...

2018-12-09 14:53:46

阅读数:28

评论数:0

分布式系统的Raft算法

过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现,Google的分布式锁系统Chubby作为Paxos实现曾经遭遇到很多坑。   来自Stanford的新的分布式协议研究称为Raft,它是一个为真实世界应用建立的协议,主要注重协议的落地性和可理解性。   在了解Ra...

2018-12-07 20:56:19

阅读数:41

评论数:0

使用redis计数器防止并发请求

需求描述      最近项目中有个需求,短信发送的并发请求问题:业务需求是需要限制一个号码一分钟内只能获取一次随机码,之前的实现是短信发送请求过来后,先去数据库查询发送记录,根据上一次的短信发送时间和当前时间比较,如果时间差小于一分钟,则提示短信获取频繁,如果超过一分钟,则发送短信,并记录短信发送...

2018-04-09 15:19:48

阅读数:57

评论数:0

使用redis的setnx()、get()、getset()方法实现分布式锁

一.redis相关命令讲解:setnx()命令:setnx的含义就是SET if Not Exists,其主要有两个参数 setnx(key, value)。该方法是原子的,如果key不存在,则设置当前key成功,返回1;如果当前key已经存在,则设置当前key失败,返回0。get()命令:get...

2018-04-09 15:07:12

阅读数:176

评论数:0

CAP原理简单理解

C:集群中所有机器状态是一致的。 A:客户端访问集群中任意一个节点,总能得到"处理成功"的结果。 假设有五个节点:n1~n5 ,出现网络分区被分成两组:[n1~n2]和[n3~n5],那么当n1出来客户端请求时(为了处理这种情况,也就是说"容忍网络分区"...

2018-02-02 14:57:03

阅读数:129

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭