snowflake算法
简介
SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。
其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。
在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上保持自增的,后面的代码中有详细的注解。
原理
如图:
最高位是符号 ...
分布式事务解决方案
引言
在上一篇文章的BASE理论中提到了最终一致性,其实分布式事务的讨论主要就是聚焦于强一致性和最终一致性。
分布式事务就是为了解决微服务架构(形式都是分布式系统)中不同节点之间的数据一致性问题。这个一致性问题本质上解决的也是传统事务需要解决的问题,即一个请求在多个微服务调用链中,所有服务的数据处 ...
CAP原则和BASE的学习
分布式系统(distributed system)正变得越来越重要,现在大型网站几乎都是分布式的。
分布式系统的最大难点,就是各个节点的状态如何同步。CAP 原则是这方面的基本,下面我们就来了解一下CAP原则和其权衡的结果BASE。
CAP原则
CAP原则又称CAP定理,指的是在一个分布式系统中, ...
spring事务
什么是事务
事务(Transaction)是指是程序中一系列严密的逻辑操作,而且所有操作必须全部成功完成,否则在每个操作中所作的所有更改都会被撤消。Spring事务管理基于底层数据库本身的事务处理机制。
事务具备ACID四种特性,ACID是Atomic(原子性)、Consistency(一致性)、 ...
OAuth 2.0 学习
OAuth 2.0 介绍
OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息。
OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0。
在传统的客户端-服务器 ...
Shiro入门
Shiro 简介
Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的 ...
CAS单点登录
前言
在日常生活中,很多人由于忘记某些网站的登录密码而烦恼,因为大多数用户都要记忆不少于10个用户名和相应密码。为了便于记忆,很多人都在不同的站点使用相同的用户名和密码,虽然这样可以减少负担,但是同时也降低了安全性,而且使用不同的站点同样要进行多次登录。同时,随着信息化飞速发展,大型企业和政府部门 ...
RBAC权限模型
前言
权限对于每个系统都非常重要,现有的系统的权限管理基本都是基于RBAC来实现的,所以我们应该学习RBAC。
什么是RBAC模型
RBAC是Role-Based Access Control的英文缩写,意思是基于角色的访问控制。
RBAC认为权限授权实际上是Who、What、How的问题。在R ...