前言 B+Tree 被数据库普遍使用,作为索引实现的基础。网上的资料也非常多,所以这里也不再详细介绍。但是基于 B+Tree 的并发优化,资料却非常少,所以这篇来讲讲 B+Tree 的一种并发优化,那就是BLink-Tree。为了讲述得更加清……
前言 postgresql 提供了块级索引(简称 BRIN),主要适用于类似时序数据之类的,有着天然的顺序,而且都是添加写的场景。相比于 btree 索引,它的体积小得多,非常适用于大数据量的场景。 原理 postgresql 按照一定的数目(默认 128, 可以……
postgresql 提供了主从复制功能,有基于文件的拷贝和基于 tcp 流的数据传输两种方式。两种方式都是传输 wal 数据,前者是等待生成一个完整的wal文件后,才会触发传输,后者是实时传输的。可以看出来基于文件方式的延迟会比较高,……
shiro
2635
6 分钟
前言 shiro 框架支持多种使用场景,并且都提供了默认配置,本篇文章会介绍 shiro 的配置原理和如何与 springboot 集成的。 默认配置类 shiro 支持运行在 Web 环境下和非 Web 环境下,每种环境都有着不一样的默认配置。 非 Web 环境 AbstractShi……
shiro
4165
9 分钟
前言 shiro 最常见的使用场景就是在 spring web 里面,本篇文章会讲解 shiro 如何集成 spring web 的原理。shiro 会自定义 Filter 嵌入到 servlet 中,当每次请求到来时,会先经过 shiro filter。shiro filter 会解析请求提取出 cookie,然后根据 cookie……
shiro
3200
7 分钟
前言 shiro 提供了 session 用于保存与用户相关的信息,需要注意到这和 HTTP 的 session 概念是不一样的,它可以运行在没有web环境下。本篇文章会先介绍 Web 环境下的原理,读者有兴趣的话,可以看看在非 Web 环境下的原理。 Session 接口 classDiagram class Session <<interface>> Session class……
shiro
2574
6 分钟
前言 在 shiro 框架的文章中,了解到Realm是用作获取用户身份信息和权限信息的。shiro 将这块分离出来,使得我们可以自定义,以适应不同的场景。比如用户的信息可以存储数据库中,也在外面添加了一层缓存,我们可……
shiro
2414
5 分钟
前言 从前篇 shiro 架构文章中,可以了解到 SecurityManager 是 shrio 框架中最核心的部分,它作连接了认证,权限,session 多个模块。本篇文章会介绍 SecurityManager 的设计思想,和多个模块之间的衔接。 设计模式 SecurityManager 的设计使用了门面模式,如下图所示:……
前言 Subject是 我们在 shiro 框架中,第一个介绍的概念。它表示用户,存储了用户身份认证的相关配置信息。除此之外,还支持登录,退出,session 等接口操作。本篇文章会先介绍Subject的种类,然后介绍……
前言 Apache Shiro 是 apache 开发的新的用户认证和权限校检框架,相比于 Spring Security 框架更加的简洁易用。这里会先介绍下 shiro 的总体架构和简单示例,读者可以了解到 shiro 的基本概念和框架。为了避免涉及到的知识点过多,这里不涉及 spring web 的集成,后……