分布式技术与原理
文章平均质量分 78
学习和总结
Java-Talk
这个作者很懒,什么都没留下…
展开
-
分布式事务,有解吗?
单库,多个数据要同时操作,如何保证数据的完整性,以及一致性?答:事务。举个栗子:用户下了一个订单,需要修改余额表,订单表,流水表,于是会有类似的伪代码:start transaction;CURD table t_account; any Exception rollback;CURD table t_order; any Exception rollback;CURD table t_flow; any Exception rollback;...转载 2020-06-24 22:05:59 · 336 阅读 · 0 评论 -
单点登录(SSO)的设计与实现
目录一、前言1、SSO说明2、设计目标二、SSO设计与实现1、核心应用与依赖2、用户登录状态的存储与校验3、用户登录/登录校验4、用户登出5、跨域登录、登出三、备注一、前言1、SSO说明SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。https://baike.b...转载 2020-04-05 09:27:23 · 721 阅读 · 0 评论 -
高性能短链设计
前言 今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合考察侯选人的一道设计题,本文将会结合我们生产上稳定运行两年之久的高性能短链系统给大家简单介绍下设计这套系统所涉及的一些思路,希望对大家能有一些帮助。本文将会从以下几个方面来讲解,每个点包含的信息量都不少,相信大家看完肯定有收获 短链有啥好处,用长链不...转载 2020-03-28 11:06:33 · 436 阅读 · 0 评论 -
分布式 id
目录一 为什么需要分布式 ID二 如何生成分布式 ID2.1 数据库自增 ID2.2 UUID 生成2.3 本地时间2.4snowflake 算法2.5 snowflake 算法优化三 参考文档一 为什么需要分布式 ID 一个唯一 ID 在一个分布式系统中是非常重要的一个业务属性,其中包括一些如订单 ID,消息 ID ,会话 ID,他们都有一些...原创 2019-07-14 16:32:48 · 362 阅读 · 0 评论 -
分布式系统的幂等性
目录一 什么是幂等性二 为什么需要幂等性三 如何保证幂等性一 什么是幂等性 HTTP/1.1 中对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。二 为什么需要幂等性 从业务层面讲:订单类和支付类对幂等性很敏感,如用户提交一个订单...原创 2019-07-18 21:46:36 · 395 阅读 · 0 评论 -
分布式事务
原文地址:https://github.com/doocs/advanced-java/blob/master/docs/distributed-system/distributed-transaction.md目录一 分布式事务产生的原因二 分布式事务解决方案2.1 2PC2.2 TCC2.3 本地消息表2.4 可靠消息最终一致性方案2.5 最大努力通知方案...转载 2019-07-30 01:39:12 · 287 阅读 · 0 评论 -
雪花算法(snowflake) 实现分布式 id
目录一 雪花算法理论分析二 Java 代码实现三 Twitter 的 scala 实现一 雪花算法理论分析雪花算法简单描述:+ 最高位是符号位,始终为 0,不可用。+ 41 位的时间序列,精确到毫秒级,41 位的长度可以使用 69 年。时间位还有一个很重要的作用是可以根据时间进行排序。+ 10 位的机器标识,10 位的长度最多支持部署 1024 个节点。+ ...转载 2019-08-14 21:59:29 · 798 阅读 · 0 评论 -
06-Redis 实现分布式锁和解决锁续期问题
目录一 为什么需要分布式锁二 Redis 实现分布式锁2.1 加锁操作2.2 释放锁操作三 参考文档一 为什么需要分布式锁 在一些高并发的场景中,需要对共享变量进行互斥访问。也就是说在同一时间点有且只能有一个客户端能对共享资源进行访问。如电商系统中的秒杀系统等。二 Redis 实现分布式锁 为了保证分布式锁的可用性,我们要保证分布式锁的实...原创 2019-07-17 09:06:35 · 4588 阅读 · 1 评论