摘要:
CAP理论? 分布式环境下(数据分布)要任何时刻保证数据一致性是不可能的,只能采取妥协的方案来保证数据最终一致性。这个也就是著名的CAP定理。 C一致性:对于指定的客户端来说,读操作保证能够返回最新的写操作结果。 A可用性:非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)。 P分区容 阅读全文
posted @ 2021-04-07 10:53
我是廖志伟
阅读(25)
评论(0)
推荐(0)
摘要:
BASE理论? BASE 理论是对 CAP 理论的延伸,核心思想是即使无法做到强一致性,但应用可以采用适合的方式达到最终一致性。 基本可用: 基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供 阅读全文
posted @ 2021-04-07 10:52
我是廖志伟
阅读(27)
评论(0)
推荐(0)
摘要:
秒杀场景设计 流量过滤: 本质上,参与秒杀的用户很多,但是商品的数量是有限的,真正能抢到的用户并不多,那么第一步就是要过滤掉大部分无效的流量。 活动开始前前端页面的Button置灰,防止活动未开始无效的点击产生流量。 前端添加验证码或者答题,防止瞬间产生超高的流量,可以很好的起到错峰的效果,现在的验 阅读全文
posted @ 2021-04-07 10:40
我是廖志伟
阅读(21)
评论(0)
推荐(0)
摘要:
库存超卖问题 针对秒杀建议选择下单扣库存的方式:首先查询redis缓存库存是否充足先扣库存再落订单数据,可以防止订单生成了没有库存的超卖问题扣库存的时候先扣数据库库存,再扣减redis库存,保证在同一个事务里,无论两者哪一个发生了异常都会回滚。有一个问题是可能redis扣成功了由于网络问题返回失败, 阅读全文
posted @ 2021-04-07 10:39
我是廖志伟
阅读(32)
评论(0)
推荐(0)
摘要:
金额篡改问题 案例:下订单时,拿到别人的URL,篡改数据(金额)发送给系统 方法一:对插入的操作进行校验:一个请求的URL传入进来,根据参数找到对应的用户关联表,查询到用户的userid和用户登录后保存到redis中的userid进行对比。例如:传入参数为(订单id)和(优惠券id),拿(订单id) 阅读全文
posted @ 2021-04-07 10:31
我是廖志伟
阅读(24)
评论(0)
推荐(0)
摘要:
用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数 sso认证中心发现用户未登录,将用户引导至登录页面 用户输入用户名密码提交登录申请 sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌 sso认证中心带着令牌跳 阅读全文
posted @ 2021-04-07 10:29
我是廖志伟
阅读(12)
评论(0)
推荐(0)
摘要:
幂等性实现 乐观锁:数据库:通过version或者时间戳防止其他操作并发更新,更新失败要有一定的重试机制。CAS比较与交换也是乐观锁。 去重表:在插入数据的时候,插入去重表,利用数据库的唯一索引特性,保证唯一的逻辑。这种方法适用于在业务中有唯一标的插入场景中,比如在以上的支付场景中,如果一个订单只会 阅读全文
posted @ 2021-04-07 10:27
我是廖志伟
阅读(31)
评论(0)
推荐(0)
摘要:
线程的生命周期,什么时候会出现孤儿进程,僵尸进程?它们之间的危害是什么?如何处理僵尸进程? 线程的生命周期 新建(new Thread):当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。例如:Thread t1=new Thread(); 就绪(runnable):调用Th 阅读全文
posted @ 2021-04-07 10:23
我是廖志伟
阅读(44)
评论(0)
推荐(0)
摘要:
ThreadLocal 是什么?ThreadLocal 工作原理是什么?ThreadLocal 如何解决 Hash 冲突?ThreadLocal 的内存泄露是怎么回事?为什么 ThreadLocalMap 的 key 是弱引用?ThreadLocal 的应用场景有哪些? ThreadLocal 是什 阅读全文
posted @ 2021-04-07 10:07
我是廖志伟
阅读(34)
评论(0)
推荐(0)
浙公网安备 33010602011771号