2022-11-16
隔离级别我们知道事务具有隔离性,理论上在某个事务对某个数据进行访问时,其他事务应该进行排队,当该事务提交之后,其他事务才可以继续访问这个数据。但是这样子的话对性能影响太大,所以既想保持事务的隔离性,又想让服务器在处理访问同一数据的多个事务时性能尽量高些,所以必须要做出一些取舍。
先看下,事务并发访问相同数据时(不保证串行执行)会遇到的一些问题:
脏写(Di...
阅读全文
2022-07-09
索引是什么索引是帮助MySQL高效获取数据的数据结构。最通俗的理解:索引就像一本书的目录,你想找某个知识点,翻目录比一页页翻书快得多。
没有索引时,MySQL会全表扫描(逐行读取),时间复杂度O(n)。有了索引,可以通过特定的数据结构快速定位数据,时间复杂度能降低到O(log n)甚至O(1)。
索引的数据结构MySQL默认存储引擎InnoDB使用B+树作为...
阅读全文
2022-04-14
为什么是6379Redis 由意大利人Salvatore Sanfilippo(萨尔瓦多·桑菲利波普,网名 Antirez) 开发,但他已经辞去 Redis 项目开发者和维护者的角色。因为对于Antirez 来说,编程是表达自我的方式,一种艺术形式。但当软件被大规模采用时,必须做出许多妥协,这使得他陷入艺术与实用之间的两难境地,所以他渴望回归作为艺术家的身份...
阅读全文
2022-03-01
Nginx负载均衡策略负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求。一个最基本的upstream模块是这样的,模块内的server是服务器列表:
1234567#动态服务器组upstream dynamic_url { server localhost:8080; server localhost:80...
阅读全文
2021-12-22
多租户适配需要从产品底层进行尽量少的改造,能够满足上云之后多租户的数据、缓存、定时任务等隔离
条目名称
适配方案
持久层适配
支持schema和字段隔离两种方案
quartz定时任务
上下文无法获取租户信息,通过JobGroup识别
reids缓存
缓存key体现租户id即可
websocket场景
从cookie获取、前端调用diw...
阅读全文
2021-10-21
前言通常来说,我们接触过的SpringBoot程序,只需要运行主启动类的main方法就可以启动应用了。
123456@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringAp...
阅读全文
2021-09-24
介绍SpringBoot在配置上相比Spring要简单许多, 其核心在于spring-boot-starter。在使用SpringBoot来搭建一个项目时, 只需要引入官方提供的starter, 就可以直接使用, 免去了各种配置。starter简单来讲就是引入了一些相关依赖和一些初始化的配置。
SpringBoot官方提供了很多starter,第三方也可以定...
阅读全文
2021-09-12
Java的SPISPI全称为Service Provider Interface,是jdk内置的一种服务提供发现机制。简单来说,它就是一种动态替换发现的机制。
SPI规定,所有要预先声明的类都应该放在META-INF/services中。配置的文件名是接口/抽象类的全限定名,文件内容是抽象类的子类或接口的实现类的全限定类名,如果有多个,借助换行符,...
阅读全文
2021-06-11
前置知识
Spring的依赖注入方式,我们分为setter注入和构造器注入。那么Spring可以解决掉setter类型的依赖注入,构造器形式的是不可以的。
Spring的单例和多例模式,多例模式下的依赖注入也是解决不掉的。所以我们关注的范围为单例模式下setter注入形式的循环依赖的解决方案。
SpringBean的生命周期我们可以概括为实例化、属性赋值、初...
阅读全文
2021-05-15
main方法进入12345678@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, a...
阅读全文
上一页 1 2 3 4 5 下一页