架构
文章平均质量分 57
博享未来
这个作者很懒,什么都没留下…
展开
-
雪花算法的实现原理
第一部分1bit:0没有任何意义(因为二进制里第一个bit如果为1,那么都是负数,但是我们生成的ID都是正数,所以第一个bit统一都是0); 第二部分41bit:表示时间戳(毫秒)(41bit可以表示的数字多达2^41 - 1,也就是可以标识2^41 - 1个毫秒值,换算成年就是表示69年的时间); 第三部分5bit:表示机房ID(最多可以代表2^5=32个机房); 第四部分5bit:表示机器ID(最多可以代表2^5=32台机器); 第五部分12bit:表示序号,就是某个机房某台机器上这一毫...原创 2021-11-22 16:05:14 · 599 阅读 · 0 评论 -
Oauth2.0的几种授权模式及应用场景
2012年10月,Oauth2.0协议正式发布为RFC 6749。现在百度开放平台、腾讯开放平台等大部分的开放平台都是使用的Oauth2.0协议作为支撑。概述 Oauth是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名、密码提供给第三方移动应用或分享他们数据的所有内容。 在Oauth2.0的认证和授权的过程中主要包括以下角色定义:Resource Owner:资源所有者(通常指用户或者提供资源服务的平台...原创 2021-07-06 11:26:33 · 655 阅读 · 0 评论 -
SpringSecurity工作流程
工作原理SpringSecurity过滤器链SpringSecurity采用的是责任链的设计模式,它有一条很长的过滤器链。SecurityContextPersistenceFilter会在请求开始时从配置好的SecurityContextRepository中获取SecurityContext,然后把它设置给SecurityContextHolder。在请求完成后将SecurityHolder持有的SecurityContext再保存到配置好的SecurityContextReposit原创 2021-07-02 15:42:19 · 781 阅读 · 0 评论 -
安全框架-Shiro、Spring Security对比
Shiro Shiro是一个强大而灵活的开源框架,能够非常清晰的处理认证、授权、管理会话以及密码加密。它有如下特点:易于理解的Java Security API; 简单的身份认证(登录),支持多种数据源(LDAP,JDBC,Kerberos、ActiveDirectory等); 对角色的简单鉴权(访问控制),支持细粒度的鉴权; 支持一级缓存,以提升应用程序的性能; 内置的基于POJO企业会话管理,适用于Web以及非Web的环境; 异构客户端会话访问; 非常简单的加密API;...原创 2021-07-02 10:18:53 · 465 阅读 · 1 评论 -
Jmeter插件安装
下载地址:http://jmeter-plugins.org/原创 2021-06-09 10:32:42 · 151 阅读 · 0 评论 -
Jmeter5.4.1安装【Windows版本】
环境JDK版本:1.8及以上 centos版本:下载地址:https://jmeter.apache.org/download_jmeter.cgi原创 2021-06-09 10:03:55 · 562 阅读 · 0 评论 -
Spring Boot之spring.factories
引言 在Java Spring Cloud项目中,我们经常会在子模块中创建公共类库,作为驱动包。那么在另外一个子模块中,需要加载配置文件的时候,往往Spring Boot自动扫描包的时候,只会扫描自己模块下的类。参考spring boot之spring.factories:https://www.cnblogs.com/huanghzm/p/12217630.html...原创 2021-01-20 10:58:50 · 249 阅读 · 0 评论 -
常用日志框架介绍(上)
概述 对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不开日志。Java领域存在多种日志框架,目前常用的日志框架包括Log4j1、Log4j2、Commons Logging、Slf4j、Logback、Jul。常用类别Log4j:Apache Log4j是一个基于Java的日志记录工具。它是由Ceki Gulcu首创的,现在则是Apache软件基金会的一个项目。Log4j是几种Java日志框架之一; Log4j2:Apache Log...原创 2021-01-20 10:08:36 · 141 阅读 · 1 评论 -
集群部署Seata TC Server
概述 集群方式部署Seata TC Server,实现高可用,生产环境下必备。多个Seata TC Server通过db数据库,实现全局事务会话信息的共享。同时,每个Seata TC Seata可以注册自己到注册中心上,方便应用从注册中心获得到他们。 集群部署TC Server如下: ...原创 2021-01-18 13:48:45 · 447 阅读 · 2 评论 -
单机部署Seata TC Server
概述 单机部署 Seata TC Server,常用于学习或测试使用,不建议在生产环境中部署单机。因为 TC 需要进行全局事务和分支事务的记录,所以需要对应的存储。 目前,TC 有两种存储模式:file 模式:适合单机模式,全局事务会话信息在内存中读写,并持久化本地文件 root.data,性能较高; db 模式:适合集群模式,全局事务会话信息通过 db 共享,相对性能差点。 采用 file 模式部署单机 Seata TC Server 如下图: ...原创 2021-01-14 10:33:39 · 596 阅读 · 1 评论 -
Seata事务模式之TCC模式
概述 一个分布式的全局事务,整体是两阶段提交的模型。全局事务是由若干分支事务组成的,分支事务要满足两阶段提交的模型要求,即需要每个分支事务都具备自己的:、、一阶段prepare行为 二阶段commit或rollback行为 根据两阶段行为模式的不同,我们将分支事务划分为Automatic(Branch)Transaction Mode和TCC(Branch)Transaction Mode。 AT模式基于支持本地ACID事务的关系型数据库...原创 2021-01-13 11:24:52 · 484 阅读 · 0 评论 -
分布式事务解决方案-Seata
概述 Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。番外: Seata事务模式之AT模式 Seata事务模式之TCC模式 Seata事务模式之Saga模式 Seata事务模式之XA模式 ...原创 2021-01-13 11:06:56 · 389 阅读 · 0 评论 -
Seata事务模式之Saga模式
概述 Saga模式是Seata提供的长事务解决方案,在Saga模式中,业务流程中每个参与者都提交本地事务,当出现某一个参与者失败则补偿前面已经成功的参与者,一阶段正向服务和二阶段补偿服务都由业务开发实现。 理论基础:Hector & Kenneth发表论文Sagas(1987)适用场景业务流程长、业务流程多 参与者包含其它公司或遗留系统服务,无法提供TCC模式要求的三个接口优势一阶段提交本地事务,无锁,高性能 事件驱动...原创 2021-01-13 11:06:17 · 858 阅读 · 1 评论 -
Seata事务模式之AT模式
AT模式 前提:基于支持本地ACID事务的关系型数据库; Java应用,通过JDBC访问数据库。 整体机制: 两阶段提交协议的演变:一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源; 二阶段: ① 提交异步化,非常快速地完成; ② 回滚通过一阶段的回滚日志进行反向补偿。 写隔离:一阶段本地事务提交前,需要确保先拿到全局锁; 拿不到全局锁,不能提交本地事务; 拿全局锁的尝试...原创 2021-01-13 10:43:37 · 344 阅读 · 0 评论