摘要:
binlog格式 在上篇主机服务器配置中,可设置binlog格式 binlog_format=STATEMENT STATEMENT模式(基于SQL语句的复制(statement-based replication, SBR)) 每一条会修改数据的sql语句会记录到binlog中。这是默认的binl 阅读全文
摘要:
准备2台centos服务器,2台服务器都安装了mysql 确保第2台服务器与第1台服务器的不同 ① MAC地址 ② hostname ③ IP 地址 ④ UUID # 修改第2台服务器的mysql的uuid vim /var/lib/mysql/auto.cnf # 重启mysql systemct 阅读全文
摘要:
提升数据库并发能力 # 执行查询操作的时候,先查询缓存中是否有数据,缓存中有数据,则获取缓存中的数据 # 缓存中没有数据,则从mysql数据库中查询数据,同时将数据写入缓存中 主从复制的作用 其中一个是Master主库,负责写入数据,我们称之为:写库。 其它都是Slave从库,负责读取数据,我们称之 阅读全文
摘要:
写入机制 binlog的写入时机也非常简单,事务执行过程中,先把日志写到 binlog cache ,事务提交的时候,再把binlog cache写到binlog文件中。因为一个事务的binlog不能被拆开, 无论这个事务多大,也要确保一次性写入,所以系统会给每个线程分配一个块内存作为binlog 阅读全文
摘要:
二进制日志(bin log) binlog可以说是MySQL中比较 重要 的日志了,在日常开发及运维过程中,经常会遇到。binlog即binary log,二进制日志文件,也叫作变更日志(update log)。 它记录了数据库所有执行的DDL 和 DML 等数据库更新事件的语句,但是不包含没有修改 阅读全文
摘要:
pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.6.5</version> </dependenc 阅读全文
摘要:
六边形架构 个人理解 端口要么处理输入,要么处理输出 对于每种外界类型,都有一个适配器与之对应,外界通过应用层API与内部进行交互 事件驱动架构 总结 六边形架构是洋葱架构的一个超集 整洁架构是六边形架构的一个变体 洋葱架构,也称为整洁架构 洋葱架构、整洁架构 个人理解 依赖原则:代码依赖是从外向内 阅读全文
摘要:
中台 将业务系统中可以服务的前台与后台代码提取出来,形成公用组件 因此有了小前台大中台的设计思想 中台类型 业务中台:将公共的业务封装成可复用的组件 技术中台:封装业务系统所需的技术框架,设计出统一的API 数据中台:整理各业务系统的数据,建立数据存储与运算平台 具体实现 增删改操作使用领域驱动设计 阅读全文
摘要:
架构 └── demo ├── sscheduler | ├── context # 环境层 | ├── transaction # 事务层 | ├── domain | ├── object | | ├── aggregate1 | | └── aggregate2 | | | └── role 阅读全文
摘要:
DCI架构 DCI是数据Data 场景Context 交互Interactions的简称 DCI是一种特别关注行为的模式(可以对应GoF行为模式) 而MVC模式是一种结构性模式,MVC模式由于结构化,而可能忽视了行为事件 User Interface是用户接口层,主要用于处理用户发送的Restful 阅读全文
摘要:
值对象 public class Person { //人员id private String id; //姓名 private String name; //地址(值对象) private Address address; } public class Address { //省份 private 阅读全文
摘要:
分类 慢查询日志:记录所有执行时间超过long_query_time的所有查询,方便我们对查询进行优化。 通用查询日志:记录所有连接的起始时间和终止时间,以及连接发送给数据库服务器的所有指令, 对我们复原操作的实际场景、发现问题,甚至是对数据库操作的审计都有很大的帮助。 错误日志:记录MySQL服务 阅读全文
摘要:
MVCC 的实现依赖于:隐藏字段、Undo Log、Read View 简介 在MVCC机制中,多个事务对同一个行记录进行更新会产生多个历史快照,这些历史快照保存在Undo Log里。如果一个事务想要查询这个行记录, 需要读取指定版本的行记录,这时就需要用到ReadView了,它帮我们解决了行的可见 阅读全文
摘要:
简介 MVCC在READ COMMITTD、REPEATABLE READ这两种隔离级别的事务才执行快照读操作时访问记录的版本链的过程。 这样使不同事务的读-写、写-读操作并发执行,从而提升系统性能 案例1 # Transaction 10 BEGIN; UPDATE student SET nam 阅读全文
摘要:
充血模型 除了get和set方法,注入仓储对象,编写方法使用仓储对象进行持久化操作 仓储和工厂 持久层编写接口操作数据数据库 编写仓储接口 实现仓储接口,调用持久层对象(注入持久层对象) 领域层业务类调用仓储接口中的方法 工厂要做的事(PO转DO,DO转PO) 仓储作为领域模型和数据模型的中介,它负 阅读全文
摘要:
简介 MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制 。 这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行, 阅读全文
摘要:
InnoDB存储引擎中的锁结构 1. 锁所在的事务信息 : 不论是 表锁 还是 行锁 ,都是在事务执行过程中生成的,哪个事务生成了这个 锁结构 ,这里就记录这个事务的信息 此 锁所在的事务信息 在内存结构中只是一个指针,通过指针可以找到内存中关于该事务的更多信息,比方说事务id等 2. 索引信息 : 阅读全文
摘要:
全局锁 全局锁就是对 整个数据库实例 加锁。当你需要让整个库处于 只读状态 的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞: 数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。全局锁的典型使用 场景 是:做 全库逻辑备份 # 获取全局锁 Flush 阅读全文
摘要:
显式锁 # 通过特定的语句进行加锁,我们一般称之为显示加锁 # 显式共享锁 select ... lock in share mode # 显式排他锁 select ... for update 隐式锁 隐式锁是在进行插入操作时,生成的锁;1个事务在进行插入操作时,为了避免其他事务对这条记录进行读或 阅读全文
摘要:
页级锁 页锁就是在页的粒度上进行锁定,锁定的数据资源比行锁要多,因为一个页中可以有多个行记录。当我们使用页锁的时候,会出现数据浪费的现象,但这样的浪费最多也就是一个页上的数据行。 页锁的开销介于表锁和行锁之间,会出现死锁。锁定粒度介于表锁和行锁之间,并发度一般。 每个层级的锁数量是有限制的,因为锁会 阅读全文
摘要:
临键锁(Next-Key Locks) 有时候我们既想 锁住某条记录 ,又想 阻止 其他事务在该记录前边的 间隙插入新记录 ,所以InnoDB就提出了一种称之为 Next-Key Locks 的锁,官方的类型名称为: LOCK_ORDINARY ,我们也可以简称为next-key锁 。Next-Ke 阅读全文
摘要:
页级别:记录锁 记录锁也就是仅仅把一条记录锁上,官方的类型名称为: LOCK_REC_NOT_GAP 。比如我们把id值为8的那条记录加一个记录锁的示意图如图所示。 仅仅是锁住了id值为8的记录,对周围的数据没有影响。 结论 记录锁是有S锁和X锁之分的,称之为 S型记录锁 和 X型记录锁 。 当一个 阅读全文
摘要:
自增锁(AUTO-INC锁) # 当我们为表的某个列添加 AUTO_INCREMENT 属性时,数据库会自动添加自增锁 CREATE TABLE `teacher` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, P 阅读全文
摘要:
客户端请求资源服务器 # 配置类添加注解@EnableOAuth2Sso # 注入 @Bean public OAuth2RestTemplate oAuth2RestTemplate(UserInfoRestTemplateFactory factory) { return factory.get 阅读全文
摘要:
客户端通过网关访问资源服务器 # 客户端1模块编写如下 # pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client 阅读全文
摘要:
微服务用户授权 在微服务中接收到网关转发过来的 Token 后,需要我们构建一个 Authentication 对象来完成微服务认证与授权, 这样这个微服务就可以根据用户所拥有的权限,来判断对应资源是否可以被用户访问 代码实现:在资源服务器中编写过滤器 /** * 获取网关转发过来的请求头中保存的明 阅读全文