分布式
好记性不如烂笔头_
每天都像打了鸡血似的。。。
展开
-
分布式session
分布式session实现方式 不使用session 使用 JWT(Json Web Token)生成的Token 储存用户身份,然后再从数据库或者 cache 中获取其他的信息。这样无论请求分配到哪个服务器都无所谓 tomcat+redis方案 方便,但是与tomcat容器重耦合 使用 session 的代码,跟以前一样,还是基于 tomcat 原生的 session 支持即可,然后就是用一个...转载 2019-03-05 00:56:53 · 1432 阅读 · 0 评论 -
分布式事物
五种实现方案 XA 方案 两阶段提交 第一阶段(事务管理器)先询问各个数据库是否都已准备好,如果每个数据库都回复 ok,那么就正式提交事务,在各个数据库上执行操作;如果任何其中一个数据库回答不 ok,那么就回滚事务。 不足:这种分布式事务方案,比较适合单块应用里跨多个库的分布式事务,而且因为严重依赖于数据库层面来搞定复杂的事务,效率很低,绝对不适合高并发的场景。 TCC(Try、Conf...转载 2019-03-05 00:56:24 · 171 阅读 · 0 评论 -
分布式锁
Redis分布式锁实现方式 基于 REDIS 的 SETNX()、EXPIRE() 方法做分布式锁 setnx(lockkey, 1) :如果返回 0,则说明占位失败(获取锁失败);如果返回 1,则说明占位成功(获取锁成功) expire() :命令对 lockkey 设置超时时间,为的是避免死锁问题 执行完业务代码后,通过 delete 命令删除 key(即释放锁) 注:如果在setnx(...转载 2019-02-16 23:50:14 · 103 阅读 · 0 评论 -
消息队列
使用场景: 解耦:多个子系统不直接通讯,而是通过MQ 异步: 削峰:将同一时间过来的大量请求放入MQ里面,然后慢慢拉取消化 优点:解耦、异步、削峰 缺点: 如何保证高可用?(MQ系统崩溃了怎么办) 系统复杂度提高(如何保证消息不被重复消费、消息不丢失、消息传递的顺序性) 数据一致性问题 常用的MQ: Kafka ActiveMQ RabbitMQ RocketMQ 如何保证消...转载 2019-02-17 00:08:01 · 159 阅读 · 0 评论 -
分布式-CAP定理
Consistency(一致性),:数据一致更新,所有数据变动都是同步的 Availability(可用性):好的响应性能 Partition tolerance(分区容错性) :可靠性 定理:任何分布式系统只可同时满足二点,没法三者兼顾 参考: 分布式CAP定理,为什么不能同时满足三个特性? ...转载 2019-03-05 16:04:48 · 159 阅读 · 0 评论