分布式
归海一刀之渔舟唱晚
这个作者很懒,什么都没留下…
展开
-
从分布式一致性谈到CAP理论、BASE理论!
一、问题的提出在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景。1、火车站售票假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车 票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐。想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车 只剩下最后一张车票,可能在同一时刻,不同售票窗口的另一位乘客...转载 2018-03-20 12:55:23 · 165 阅读 · 0 评论 -
分布式锁实现方案
在高并发场景中,我们需要对资源上锁。比如在秒杀商品时,大量请求过来,不上锁可能导致超卖等现象的发生。大家都知道在java中,它自身就提供了很多锁,synchronized,lock,ReentrantLock....它们可以工作在单机项目里面,但是在分布式项目里面,他们就不能保证对全局资源的掌控了。那如何实现在分布式环境中对全局资源的掌控呢?(声明,此处只探讨数据库和redis实现)1.数据库实现...原创 2018-05-05 19:25:24 · 500 阅读 · 1 评论 -
手写基于redis实现分布式限流器-pdlr
一.限流器介绍 简单来讲,限流器就是控制流量访问速率的一种机制,在短时间内大量流量访问时,不至于使服务器崩溃。比如,一分钟之内,如果限制1000个请求可以访问,当第1001个请求到达时,请求被拒绝(这时最好对其进行监控)。 二.限流器的实现方式 目前常用两种: 1.使用计数器法。一段时间内,限制请求可以访问的个数,guava框架里面有一个ratelimit。 ...原创 2018-08-04 13:18:35 · 1269 阅读 · 2 评论 -
接口幂等设计
一.引言 在系统设计时,经常会出现每次操作结果都需要一致的场景。比如典型的restful get请求 ,每次请求url/student/1(查询第一个学生),结果都是一样的。当然排除再修改学生信息后又查询的情况。 接口幂等,通俗的定义可以为:每次同样的请求操作该接口,得到的结果都是一样的。 二.实现方式 先给个场景,同样的订单编号发起两笔支付,按道理数据库...原创 2018-10-24 21:55:33 · 397 阅读 · 1 评论