展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 35 下一页
摘要: binlog格式 在上篇主机服务器配置中,可设置binlog格式 binlog_format=STATEMENT STATEMENT模式(基于SQL语句的复制(statement-based replication, SBR)) 每一条会修改数据的sql语句会记录到binlog中。这是默认的binl 阅读全文
posted @ 2022-07-06 13:58 DogLeftover 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 准备2台centos服务器,2台服务器都安装了mysql 确保第2台服务器与第1台服务器的不同 ① MAC地址 ② hostname ③ IP 地址 ④ UUID # 修改第2台服务器的mysql的uuid vim /var/lib/mysql/auto.cnf # 重启mysql systemct 阅读全文
posted @ 2022-07-06 11:49 DogLeftover 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 提升数据库并发能力 # 执行查询操作的时候,先查询缓存中是否有数据,缓存中有数据,则获取缓存中的数据 # 缓存中没有数据,则从mysql数据库中查询数据,同时将数据写入缓存中 主从复制的作用 其中一个是Master主库,负责写入数据,我们称之为:写库。 其它都是Slave从库,负责读取数据,我们称之 阅读全文
posted @ 2022-07-06 09:48 DogLeftover 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 写入机制 binlog的写入时机也非常简单,事务执行过程中,先把日志写到 binlog cache ,事务提交的时候,再把binlog cache写到binlog文件中。因为一个事务的binlog不能被拆开, 无论这个事务多大,也要确保一次性写入,所以系统会给每个线程分配一个块内存作为binlog 阅读全文
posted @ 2022-07-06 09:25 DogLeftover 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 二进制日志(bin log) binlog可以说是MySQL中比较 重要 的日志了,在日常开发及运维过程中,经常会遇到。binlog即binary log,二进制日志文件,也叫作变更日志(update log)。 它记录了数据库所有执行的DDL 和 DML 等数据库更新事件的语句,但是不包含没有修改 阅读全文
posted @ 2022-07-05 16:46 DogLeftover 阅读(23) 评论(0) 推荐(0) 编辑
摘要: pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.6.5</version> </dependenc 阅读全文
posted @ 2022-07-05 13:06 DogLeftover 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 六边形架构 个人理解 端口要么处理输入,要么处理输出 对于每种外界类型,都有一个适配器与之对应,外界通过应用层API与内部进行交互 事件驱动架构 总结 六边形架构是洋葱架构的一个超集 整洁架构是六边形架构的一个变体 洋葱架构,也称为整洁架构 洋葱架构、整洁架构 个人理解 依赖原则:代码依赖是从外向内 阅读全文
posted @ 2022-07-04 17:48 DogLeftover 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 中台 将业务系统中可以服务的前台与后台代码提取出来,形成公用组件 因此有了小前台大中台的设计思想 中台类型 业务中台:将公共的业务封装成可复用的组件 技术中台:封装业务系统所需的技术框架,设计出统一的API 数据中台:整理各业务系统的数据,建立数据存储与运算平台 具体实现 增删改操作使用领域驱动设计 阅读全文
posted @ 2022-07-04 17:45 DogLeftover 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 架构 └── demo ├── sscheduler | ├── context # 环境层 | ├── transaction # 事务层 | ├── domain | ├── object | | ├── aggregate1 | | └── aggregate2 | | | └── role 阅读全文
posted @ 2022-07-04 17:43 DogLeftover 阅读(72) 评论(0) 推荐(0) 编辑
摘要: DCI架构 DCI是数据Data 场景Context 交互Interactions的简称 DCI是一种特别关注行为的模式(可以对应GoF行为模式) 而MVC模式是一种结构性模式,MVC模式由于结构化,而可能忽视了行为事件 User Interface是用户接口层,主要用于处理用户发送的Restful 阅读全文
posted @ 2022-07-04 17:40 DogLeftover 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 值对象 public class Person { //人员id private String id; //姓名 private String name; //地址(值对象) private Address address; } public class Address { //省份 private 阅读全文
posted @ 2022-07-04 17:36 DogLeftover 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 分类 慢查询日志:记录所有执行时间超过long_query_time的所有查询,方便我们对查询进行优化。 通用查询日志:记录所有连接的起始时间和终止时间,以及连接发送给数据库服务器的所有指令, 对我们复原操作的实际场景、发现问题,甚至是对数据库操作的审计都有很大的帮助。 错误日志:记录MySQL服务 阅读全文
posted @ 2022-07-04 16:22 DogLeftover 阅读(31) 评论(0) 推荐(0) 编辑
摘要: MVCC 的实现依赖于:隐藏字段、Undo Log、Read View 简介 在MVCC机制中,多个事务对同一个行记录进行更新会产生多个历史快照,这些历史快照保存在Undo Log里。如果一个事务想要查询这个行记录, 需要读取指定版本的行记录,这时就需要用到ReadView了,它帮我们解决了行的可见 阅读全文
posted @ 2022-07-04 15:57 DogLeftover 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 简介 MVCC在READ COMMITTD、REPEATABLE READ这两种隔离级别的事务才执行快照读操作时访问记录的版本链的过程。 这样使不同事务的读-写、写-读操作并发执行,从而提升系统性能 案例1 # Transaction 10 BEGIN; UPDATE student SET nam 阅读全文
posted @ 2022-07-04 14:34 DogLeftover 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 充血模型 除了get和set方法,注入仓储对象,编写方法使用仓储对象进行持久化操作 仓储和工厂 持久层编写接口操作数据数据库 编写仓储接口 实现仓储接口,调用持久层对象(注入持久层对象) 领域层业务类调用仓储接口中的方法 工厂要做的事(PO转DO,DO转PO) 仓储作为领域模型和数据模型的中介,它负 阅读全文
posted @ 2022-07-04 13:51 DogLeftover 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 简介 MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制 。 这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行, 阅读全文
posted @ 2022-07-04 11:35 DogLeftover 阅读(17) 评论(0) 推荐(0) 编辑
摘要: InnoDB存储引擎中的锁结构 1. 锁所在的事务信息 : 不论是 表锁 还是 行锁 ,都是在事务执行过程中生成的,哪个事务生成了这个 锁结构 ,这里就记录这个事务的信息 此 锁所在的事务信息 在内存结构中只是一个指针,通过指针可以找到内存中关于该事务的更多信息,比方说事务id等 2. 索引信息 : 阅读全文
posted @ 2022-07-04 10:41 DogLeftover 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 全局锁 全局锁就是对 整个数据库实例 加锁。当你需要让整个库处于 只读状态 的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞: 数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。全局锁的典型使用 场景 是:做 全库逻辑备份 # 获取全局锁 Flush 阅读全文
posted @ 2022-07-04 09:44 DogLeftover 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 显式锁 # 通过特定的语句进行加锁,我们一般称之为显示加锁 # 显式共享锁 select ... lock in share mode # 显式排他锁 select ... for update 隐式锁 隐式锁是在进行插入操作时,生成的锁;1个事务在进行插入操作时,为了避免其他事务对这条记录进行读或 阅读全文
posted @ 2022-07-03 08:07 DogLeftover 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 页级锁 页锁就是在页的粒度上进行锁定,锁定的数据资源比行锁要多,因为一个页中可以有多个行记录。当我们使用页锁的时候,会出现数据浪费的现象,但这样的浪费最多也就是一个页上的数据行。 页锁的开销介于表锁和行锁之间,会出现死锁。锁定粒度介于表锁和行锁之间,并发度一般。 每个层级的锁数量是有限制的,因为锁会 阅读全文
posted @ 2022-07-02 18:14 DogLeftover 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 临键锁(Next-Key Locks) 有时候我们既想 锁住某条记录 ,又想 阻止 其他事务在该记录前边的 间隙插入新记录 ,所以InnoDB就提出了一种称之为 Next-Key Locks 的锁,官方的类型名称为: LOCK_ORDINARY ,我们也可以简称为next-key锁 。Next-Ke 阅读全文
posted @ 2022-07-02 15:31 DogLeftover 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 页级别:记录锁 记录锁也就是仅仅把一条记录锁上,官方的类型名称为: LOCK_REC_NOT_GAP 。比如我们把id值为8的那条记录加一个记录锁的示意图如图所示。 仅仅是锁住了id值为8的记录,对周围的数据没有影响。 结论 记录锁是有S锁和X锁之分的,称之为 S型记录锁 和 X型记录锁 。 当一个 阅读全文
posted @ 2022-07-02 11:23 DogLeftover 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 自增锁(AUTO-INC锁) # 当我们为表的某个列添加 AUTO_INCREMENT 属性时,数据库会自动添加自增锁 CREATE TABLE `teacher` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, P 阅读全文
posted @ 2022-07-02 10:38 DogLeftover 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 客户端请求资源服务器 # 配置类添加注解@EnableOAuth2Sso # 注入 @Bean public OAuth2RestTemplate oAuth2RestTemplate(UserInfoRestTemplateFactory factory) { return factory.get 阅读全文
posted @ 2022-07-01 15:08 DogLeftover 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 客户端通过网关访问资源服务器 # 客户端1模块编写如下 # pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client 阅读全文
posted @ 2022-07-01 14:08 DogLeftover 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 微服务用户授权 在微服务中接收到网关转发过来的 Token 后,需要我们构建一个 Authentication 对象来完成微服务认证与授权, 这样这个微服务就可以根据用户所拥有的权限,来判断对应资源是否可以被用户访问 代码实现:在资源服务器中编写过滤器 /** * 获取网关转发过来的请求头中保存的明 阅读全文
posted @ 2022-07-01 10:36 DogLeftover 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 简介 为了尽可能提高数据库的并发度,每次锁定的数据范围越小越好,理论上每次只锁定当前操作的数据的方案会得到最大的并发度, 但是管理锁是很耗资源的事情(涉及获取、检查、释放锁等动作)。因此数据库系统需要在高 并发响应和系统性能两方面进行平衡, 这样就产生了“锁粒度(Lock granularity)” 阅读全文
posted @ 2022-06-30 16:22 DogLeftover 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 将之前有关rbac动态认证的代码导入项目中 查看数据库 获取1个令牌 检查令牌:获取数据库中记录的权限成功 使用oauth2生成令牌后,就不会使用session有关的配置了 sql脚本 /03/security/demo14 /03/oauth2/demo04 oauth_access_token 阅读全文
posted @ 2022-06-30 13:32 DogLeftover 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 由于不同的用户拥有不同的权限,所以在前端页面左侧侧边栏中,当用户拥有指定的权限时,才显示指定的子菜单 做1个监听器,监听到用户认证成功后,则获取该用户拥有的权限,重新封装1个SysUser对象交给security处理 # core模块编写1个接口 public interface Authentic 阅读全文
posted @ 2022-06-30 10:11 DogLeftover 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 分页查询用户信息 # 持久层接口 public interface SysUserMapper extends BaseMapper<SysUser> { /** * 分页查询 * @param page * @param sysUser * @return */ IPage<SysUser> se 阅读全文
posted @ 2022-06-29 14:55 DogLeftover 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 分页查询角色权限 # 业务层接口 public interface SysRoleService extends IService<SysRole> { /** * 分页查询角色列表 * @param page 分页参数 * @param sysRole 条件查询对象,会取name属性值作为条件 * 阅读全文
posted @ 2022-06-29 13:21 DogLeftover 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 简介 从数据操作的类型划分:读锁、写锁 读锁 :也称为 共享锁 、英文用 S 表示。针对同一份数据,多个事务的读操作可以同时进行而不会互相影响,相互不阻塞的。 写锁 :也称为 排他锁 、英文用 X 表示。当前写操作没有完成前,它会阻断其他写锁和读锁。这样就能确保在给定的时间里,只有一个事务能执行写入 阅读全文
posted @ 2022-06-29 06:33 DogLeftover 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 在demo02的基础上开发 在spring boot整合security的项目中,是不能直接通过控制层跳转到resource目录下的html页面的 只有我们在security配置类中指定了403页面或登录页面时,才能跳转到这2个页面 http.exceptionHandling().accessDe 阅读全文
posted @ 2022-06-28 15:01 DogLeftover 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 在demo15的基础上开发 # 使用注解控制权限,所以需要在security配置类上开启配置;否则注解不生效 @EnableGlobalMethodSecurity(prePostEnabled = true) 查看数据库,test用户拥有的角色权限为普通管理员;普通管理员拥有的权限资源为28 访问 阅读全文
posted @ 2022-06-28 15:00 DogLeftover 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 简介 在Spring Security中实现方法级的安全性,最常见办法是使用特定的注解,将这些注解应用到需要保护的方法上 这些注解不仅可以直接加 controller 方法上, 也可以注解 Service 或 DAO 类中的方法 | 注解 | 描述 | | : : | : | | @PreAutho 阅读全文
posted @ 2022-06-27 17:28 DogLeftover 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 简介 当前所有认证请求配置和应用权限配置在安全模块中,而很多权限配置是在应用模块提供的对应服务处理逻辑,这样只有应用模块才知道的这些配置,所以要将它们抽取到应用中进行配置 实现步骤 1. 创建 AuthorizeConfigurerProvider 授权配置统一接口。 2. 针对每个功能模块都创建一 阅读全文
posted @ 2022-06-27 16:50 DogLeftover 阅读(20) 评论(0) 推荐(0) 编辑
摘要: Spring EL 权限表达式 | 表达式 | 描述 | | | | | permitAll() | 总是返回true,表示允许所有访问(认证不认证都可访问 URL或方法) | | denyAll() | 总是返回false,表示拒绝所有访问(永远访问不到指定的 URL或方法) | | isAnon 阅读全文
posted @ 2022-06-27 15:48 DogLeftover 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 在之前的案例中,根据用户名+密码登录和根据手机短信+验证登录中有重复的代码 这里简化封装用户的代码 代码实现 /** * 创建1个抽象类 * 将代码重复部分放到抽象类中 * 代码不同的部分,让其他类继承该抽象类重写 */ public abstract class AbstractUserDetai 阅读全文
posted @ 2022-06-27 14:30 DogLeftover 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 简介 用户表 ( sys_user ):保存用户信息 角色表 ( sys_role ):保存角色信息 权限表 ( sys_permission ):保存系统资源信息。如:菜单、按钮 和对应 URL它们的关系 :用户表与角色表是 多对多关系 ,角色表与资源表是多对多关系。 用户角色关系表(sys_us 阅读全文
posted @ 2022-06-27 10:24 DogLeftover 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 在demo11的基础上完善 解决退出登录后不能再次登录 1、配置session会话超时时长,自定义session失效处理 2、设置1个账号不能同时在2台电脑登录 3、redis实现session高可用集群、指定cookie中保存的sessionid名称 4、在实现以上3步操作后,认证通过,退出登录, 阅读全文
posted @ 2022-06-26 08:34 DogLeftover 阅读(34) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 35 下一页