- 博客(355)
- 资源 (4)
- 收藏
- 关注

原创 【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库
DeepSeek官网DeepSeek(深度求索)是一家专注于实现通用人工智能(AGI)的中国科技公司,致力于通过技术探索与创新,推动智能技术的广泛应用。Ollama 是一个强大的工具,旨在简化大型语言模型的部署和推理过程。它通过模型压缩和优化技术,使得在本地或边缘设备上运行 AI 模型变得高效且易于管理。无论是开发者、研究人员还是企业用户,Ollama 都能提供灵活和支持,满足多种应用场景的需求。
2025-02-11 05:00:00
55780
151
原创 MySQL性能调优(十二):MySQL8常见面试题(二)
InnoDb存储引擎有两大类索引聚集索引和普通(辅助/二级)索引,聚簇索引的叶子节点存储行记录,因此InnoDb必须要有聚簇索引且仅有一个聚簇索引,而普通索引的叶子节点只存储索引值和主键值,所以,通过聚簇索引一次性能获取所有列的数据,普通索引一般不行。当我们SQL语句的中列无法在普通索引中获得时,就需要主键值到聚簇索引中获取相关的数据,这个过程就被称为回表。而如果我们使用联合索引,使得SQL所需的所有列数据在这个索引上就能获得时,我们称为发生了索引覆盖或者覆盖索引。
2025-04-25 05:00:00
636
11
原创 MySQL性能调优(十一):MySQL8新特性(账户与安全、索引增强、通用表表达式CTE、窗口函数、原子DDL操作、JSON增强)
一个staff表,里面有id,有name还有一个 m_id,这个是对应的上级id。数据如下:如果我们想查询出每一个员工的上下级关系,可以使用以下方式。
2025-04-24 05:00:00
1616
12
原创 MySQL性能调优(十二):MySQL8常见面试题(一)
目前关系数据库有六种范式,常见范式:第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。。范式化设计优缺点:优点:可以尽量得减少数据冗余,使得更新快,体积小;缺点:对于查询需要多个表进行关联,减少写得效率增加读得效率,更难进行索引优化反范式化:优点:可以减少表得关联,可以更好得进行索引优化;
2025-04-24 05:00:00
1437
11
原创 MySQL性能调优(十):MySQL性能优化(MySQL优化金字塔、查询性能优化、慢查询、Explain执行计划)
慢查询日志,顾名思义,就是查询花费大量时间的日志,是指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。如何开启,我们稍后再说。有了慢查询语句后,就要对语句进行分析。
2025-04-23 05:00:00
2357
13
原创 MySQL性能调优(十):MySQL性能优化(查询优化器、高性能的索引使用策略)
这一点,也是针对联合索引来说的,前面我们反复强调过,所有记录都是按照索引列的值从小到大的顺序排好序的,而联合索引则是按创建索引时的顺序进行分组排序。由于B+树中的数据页和记录是先按insert_time列排序的,所以我们上边的查询过程其实是这样的:找到insert_time值为’2021-03-22 18:23:42’ 的记录。找到insert_timee值为’2021-03-22 18:35:00’的记录。
2025-04-23 05:00:00
2407
12
原创 MySQL性能调优(九):InnoDB引擎底层解析(InnoDB记录存储结构合索引页结构)
在Compact和Redundant行格式中,对于占用存储空间非常大的列,在记录的真实数据处只会存储该列的该列的前768个字节的数据,然后把剩余的数据分散存储在几个其他的页中,记录的真实数据处用20个字节存储指向这些页的地址。File Header针对各种类型的页都通用,也就是说不同类型的页都会以File Header作为第一个组成部分,它描述了一些针对各种页都通用的一些信息,比方说页的类型,这个页的编号是多少,它的上一个页、下一个页是谁,页的校验和等等,这个部分占用固定的38个字节。
2025-04-22 05:00:00
3007
14
原创 MySQL性能调优(九):InnoDB引擎底层解析(InnoDB的表空间、InnoDB的Buffer Pool)
InnoDB的内存结构和磁盘存储结构图总结如下:其中的Insert/Change Buffer主要是用于对二级索引的写入优化,Undo空间则是undo日志一般放在系统表空间,但是通过参数配置后,也可以用独立表空间存放,所以用虚线表示。
2025-04-22 05:00:00
2667
12
原创 MySQL性能调优(八):事务和事务的隔离级别(事务特性、事务并发问题、隔离级别、MySQL事务)
每个客户端都可以在自己的会话中向服务器发出请求语句,一个请求语句可能是某个事务的一部分,也就是对于服务器来说可能同时处理多个事务。我们将连老师向李老师同时进行的两次转账操作分别称为T1和T2,在现实世界中T1和T2是应该没有关系的,可以先执行完T1,再执行T2,或者先执行完T2,再执行T1,结果都是一样的。连老师借给李老师生活费,借了两次,每次都是1000,连老师的卡里开始有10000,李老师的卡里开始有500,从理论上,借完后,连老师的卡里有8000,李老师的卡里应该有2500。
2025-04-21 05:00:00
3537
14
原创 MySQL性能调优(八):事务和事务的隔离级别(多版本并发控制 MVCC)
1、如果被访问版本的trx_id属性值与ReadView中的creator_trx_id值相同,意味着当前事务在访问它自己修改过的记录,所以该版本可以被当前事务访问。2、如果被访问版本的trx_id属性值小于ReadView中的min_trx_id值,表明生成该版本的事务在当前事务生成ReadView前已经提交,所以该版本可以被当前事务访问。
2025-04-21 05:00:00
3537
11
原创 MySQL性能调优(六):MySQL中的锁(并发事务、锁定读、锁的粒度、意向锁、行锁和表锁、死锁)
IS、IX锁是表级锁,它们的提出仅仅为了在之后加表级别的S锁和X锁时可以快速判断表中的记录是否被上锁,以避免用遍历的方式来查看表中有没有上锁的记录。就是说其实IS锁和IX锁是兼容的,IX锁和IX锁是兼容的。我们画个表来看一下。
2025-04-20 05:00:00
4218
13
原创 MySQL性能调优(七):事务底层和高可用原理(基本语法、redo日志、undo日志)
在聚簇索引中,记录是按照主键值的大小连成了一个单向链表的,如果我们更新了某条记录的主键值,意味着这条记录在聚簇索引中的位置将会发生改变,比如你将记录的主键值从1更新为10000,如果还有非常多的记录的主键值分布在1 ~ 10000之间的话,那么这两条记录在聚簇索引中就有可能离得非常远,甚至中间隔了好多个页面。更新记录时,对于被更新的每个列来说,如果更新后的列和更新前的列占用的存储空间都一样大,那么就可以进行就地更新,也就是直接在原记录的基础上修改对应列的值。往这张表中插入多条记录。
2025-04-20 05:00:00
4040
11
原创 MySQL性能调优(四):MySQL的执行原理(MySQL的查询重写规则)
我们前边说过,内连接的驱动表和被驱动表的位置可以相互转换,而左(外)连接和右(外)连接的驱动表和被驱动表是固定的。这个查询表明我们想要将(SELECT m2FROM e2)这个子查询的结果作为外层查询的IN语句参数,整个查询语句的意思就是我们想找e1表中的某些记录,这些记录的m1列的值能在e2表的m2列找到匹配的值。这里可以把子查询的查询结果当作是一个表,子查询后边的AS t表明这个子查询的结果就相当于一个名称为t的表,这个名叫t的表的列就是子查询结果中的列,比如例子中表t就有两个列:m列和n列。
2025-04-19 05:00:00
6634
13
原创 MySQL性能调优(五):MySQL中的索引(B+树索引、哈希索引、全文索引、索引使用、高性能索引创建策略)
能表示的整数范围当然也是依次递增,如果我们想要对某个整数列建立索引的话,在表示的整数范围允许的情况下,尽量让索引列使用较小的类型,比如我们能使用INT就不要使用BIGINT,能使用NEDIUMINT就不要使用INT,这是因为数据类型越小,在查询时进行的比较操作越快(CPU层次)数据类型越小,索引占用的存储空间就越少,在一个数据页内就可以放下更多的记录,从而减少磁盘/0带来的性能损耗,也就意味着可以把更多的数据页缓存在内存中,从而加快读写效率。唯一索引的选择性是1,这是最好的索引选择性,性能也是最好的。
2025-04-19 05:00:00
4718
11
原创 MySQL性能调优(四):MySQL的执行原理(单表访问之索引合并、连接查询)
连接的本质就是把各个连接表中的记录都取出来依次匹配的组合加入结果集并返回给用户。所以我们把e1和e2两个表连接起来的过程如下图所示:这个过程看起来就是把e1表的记录和e2的记录连起来组成新的更大的记录,所以这个查询过程称之为连接查询。连接查询的结果集中包含一个表中的每一条记录与另一个表中的每一条记录相互匹配的组合,像这样的结果集就可以称之为笛卡尔积。因为表e1中有3条记录,表e2中也有3条记录,所以这两个表连接之后的笛卡尔积就有3×3=9行记录。
2025-04-18 05:00:00
5527
19
原创 MySQL性能调优(四):MySQL的执行原理(MYSQL的查询成本)
MySQL执行一个查询可以有不同的执行方案,它会选择其中成本最低,或者说代价最低的那种方案去真正的执行查询。I/O成本我们的表经常使用的MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的,当我们想查询表中的记录时,需要先把数据或者索引加载到内存中然后再操作。这个从磁盘到内存这个加载的过程损耗的时间称之为I/O成本。CPU成本读取以及检测记录是否满足对应的搜索条件、对结果集进行排序等这些操作损耗的时间称之为CPU成本。对于InnoDB存储引擎来说,页是磁盘和内存之间交互的基本单位。
2025-04-18 05:00:00
5256
15
原创 MySQL性能调优(三):MySQL中的系统库(sys系统库、information_schema)
information_schema提供了对数据库元数据、统计信息以及有关MySQL Server信息的访问(例如:数据库名或表名、字段的数据类型和访问权限等)。该库中保存的信息也可以称为MySQL的数据字典或系统目录。在每个MySQL 实例中都有一个独立的information_schema,用来存储MySQL实例中所有其他数据库的基本信息。information_schema库下包含多个只读表(非持久表),所以在磁盘中的数据目录下没有对应的关联文件,且不能对这些表设置触发器。
2025-04-17 05:00:00
6412
63
原创 MySQL性能调优(三):MySQL中的系统库(mysql系统库)
个人主页:道友老李欢迎加入社区:道友老李的学习社区MySQL 性能调优是一个复杂且多维度的过程,下面从数据库设计、查询优化、配置参数调整、硬件优化几个方面为你介绍相关的调优方法。因为权限管理是DBA的职责,所以对于这个部分的表,我们大概了解下即可。在mysql系统库中,MySQL访问权限系统表,放在mysql库中,主要包含如下几个表。• user:包含用户账户、全局权限和其他非权限列表(安全配置字段和资源控制字段)。• db:数据库级别的权限表。该表中记录的权限信息代表用户是否可以使用这些权限来访问被授予
2025-04-17 05:00:00
6278
49
原创 MySQL性能调优(二):MySQL体系架构(目录和文件)
使用独立表空间来存储表数据的话,会在该表所属数据库对应的子目录下创建一个表示该独立表空间的文件,文件名和表名相同,只不过添加了一个.ibd的扩展名而已,所以完整的文件名称长这样:表名.ibd。这个文件是所谓的自扩展文件,也就是当不够用的时候它会自己增加文件大小,当然,如果你想让系统表空间对应文件系统上多个实际文件,或者仅仅觉得原来的ibdata1这个文件名难听,那可以在MySQL启动时配置对应的文件路径以及它们的大小,我们也可以把系统表空间对应的文件路径不配置到数据目录下,甚至可以配置到单独的磁盘分区上。
2025-04-16 05:00:00
6659
16
原创 MySQL性能调优(三):MySQL中的系统库(简介、performance_schema)
MySQL有几个系统数据库,这几个数据库包含了MySQL服务器运行过程中所需的一些信息以及一些运行状态信息,我们现在稍微了解一下。这个数据库里主要保存MySQL服务器运行过程中的一些状态信息,算是对MySQL服务器的一个性能监控。包括统计最近执行了哪些语句,在执行过程的每个阶段都花费了多长时间,内存的使用情况等等信息。这个数据库保存着MySQL服务器维护的所有其他数据库的信息,比如有哪些表、哪些视图、哪些触发器、哪些列、哪些索引。这些是一些描述性信息,称之为元数据。sys。
2025-04-16 05:00:00
10508
15
原创 MySQL性能调优(一):数据库基础知识(范式化/反范式化设计、数据类型优化、索引、B+Tree)
范式来自英文Normal Form,简称NF。实际上你可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别。就像家里装修买建材,最环保的是E0级,其次是E1级,还有E2级等等目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF),在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。
2025-04-15 05:00:00
7581
60
原创 MySQL性能调优(二):MySQL体系架构(连接层、Server层、存储引擎层)
而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率,不需要进行磁盘I/O。MariaDB的目标是社区开发,Bug修复和许多的新特性实际上,可以将MariaDB视为MySQL的扩展集,它不仅提供MySQL提供的所有功能,还提供其他功能。MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持,这些标准与存储引擎本身无关,可能是每个数据库系统本身都必需的,如SQL分析器和优化器等,而存储引擎是底层物理结构和实际文件读写的实现,每个存储引擎开发者可以按照自己的意愿来进行开发。
2025-04-15 05:00:00
7483
47
原创 拥有故障诊断能力的分布式链路追踪系统:Skywalking
Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint /CAT 的设计思路。特点是:支持多种插件,UI功能较强,支持非侵入式埋点。目前使用厂商最多,版本更新较快。数据存储支持:Elasticsearch、MySQL、H2、TiDB。默认是H2,而且是存到内存。实际我们一般将其存到ES。在默认情况下Skywalking是没有记录我们的业务方法的,如果需要添加业务方法的链路监控我们就需要添加如下的依赖</</</</
2025-04-14 05:00:00
7901
14
原创 微服务链路追踪:Sleuth&Zipkin
现存问题是什么?Sleuth&Zipkin:SpringCloud中的一个组件,专门链路追踪SkyWalking:Apache组织下的一个开源框架,并且是个顶级项目阿里鹰眼:没玩过~~美团Cat:没玩过~~Sleuth&Zipkin对比SkyWalking相同点,都是链路追踪框架Sleuth是收集信息,Zipkin是图形化展示。SkyWalking一锅端~~SkyWalking的报表展示比Sleuth&Zipkin更丰富。
2025-04-14 05:00:00
7908
12
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十二):SpringSecurity中OAuth2.0的实现(OAuth2.0实战案例【上】)
Spring Security 是一个功能强大且高度可配置的安全框架,用于为 Java 应用程序提供身份验证和授权功能。前面我们是采用单点登录的方式解决了这个问题,那么今天我们把这个资源交给。即便是用OAuth2管理资源,也一样需要认证,这两个对象还是需要的。复制前面介绍的JWT中的相关代码(GitHub地址会提供)本案例同样通过maven的聚合工程来实现。来管理,使用通行的token来访问资源。接下来创建我们的资源项目。
2025-04-13 05:00:00
8049
13
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十二):SpringSecurity中OAuth2.0的实现(OAuth2.0实战案例【下】)
所有要使用当前项目资源的项目,都是我们的客户端。比如我们之前举的例子,A服务打印照片,B服务存储照片。A服务要使用B服务的资源,那么A服务就是B服务的客户端。这里要区分用户的信息和客户端信息,用户信息是用户在B服务上注册的用户信息,在sys_user表中。客户端信息是A服务在B服务中注册的账号,在OAuth2的oauth_client_details表中。由于上面用户已经登录过了,所以无需再次登录,其实和上面是有登录步骤的,这时,浏览器直接返回了token。和source项目的一样。
2025-04-13 05:00:00
8491
12
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十一):SpringSecurity基于JWT实现Token的处理
在SpringSecurity中的认证是通过UsernamePasswordAuthenticationFilter来处理的,现在我们要通过JWT来处理,那么我们就需要重写其中几个处理的方法然后就是当客户端提交请求,我们需要拦截请求检查header头中是否携带了对应的Token信息,并检查是否合法。/*** 校验Token是否合法的Filter*/@Override//如果携带错误的token,则给用户提示请登录!resultMap.put("msg", "请登录!");
2025-04-12 05:00:00
10822
14
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十二):SpringSecurity中OAuth2.0的实现(OAuth2.0介绍)
先说OAuth,OAuth是Open Authorization的简写。OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。OAuth2.0是OAuth协议的延续版本,但不向前兼容(即完全废止了OAuth1.0)。
2025-04-12 05:00:00
8577
11
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(九):SpringSecurity核心过滤器-SecurityContextPersistenceFilter
首先用户的认证状态Authentication是存储在SecurityContext中的,而每个用户的SecurityContext是统一存储在HttpSession中的。首先来看看在spring-security-core中的SecurityContextHolder,这个是一个非常基础的对象,存储了当前应用的上下文SecurityContext,而在SecurityContext可以获取Authentication对象。基于上面讲解的三者的关系我们在项目中如此来获取当前登录的用户信息了。
2025-04-11 05:00:00
9481
14
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十):单点登录原理及JWT实现
官方:JSON Web Token (JWT) is an open standard (RFC 7519HMACRSAorECDSAJSON Web 令牌(JWT)是一种开放标准(RFC 7519) ,它定义了一种紧凑和自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。可以验证和信任此信息,因为它是数字签名的。JWTs 可以使用 secret (使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。
2025-04-11 05:00:00
9447
11
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(七):SpringSecurity中的权限管理
最常用的,也是SpringSecurity中默认的 FilterSecurityInterceptor实例中 AccessDecisionManager默认的投票器,它其实就是 http.authorizeRequests()基于 Spring-EL进行控制权限的授权决策类。首先是obtainSecurityMetadataSource()方法,该方法的作用是根据当前的请求获取对应的需要具备的权限信息,比如访问/login.jsp需要的信息是 permitAll 也就是可以匿名访问。
2025-04-10 05:00:00
11216
14
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(八):SpringSecurity中的核心过滤器-CsrfFilter
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
2025-04-10 05:00:00
10128
11
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(五):深入理解HttpSecurity的设计
然后我们再来看看AbstractConfiguredSecurityBuilder这个抽象类,他其实是SecurityBuilder的实现,在这儿需要搞清楚他们的关系。类型作用声明了build方法提供了获取对象的方法以及控制一个对象只能build一次除了提供对对象细粒度的控制外还扩展了对configurer的操作然后对应的三个实现类。首先 AbstractConfiguredSecurityBuilder 中定义了一个枚举类,将整个构建过程分为 5 种状态,也可/*** 还没开始构建*/
2025-04-09 05:00:00
10722
15
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(六):深入理解SecurityConfigurer
SecurityConfigurerAdapter 实现了 SecurityConfigurer 接口,我们所使用的大部分的xxxConfigurer 也都是 SecurityConfigurerAdapter 的子类。SecurityConfigurerAdapter 在 SecurityConfigurer 的基础上,还扩展出来了几个非常好用的方法。在前面的内容中曾经多次提到过,Spring Security 过滤器链中的每一个过滤器,都是通过 xxxConfigurer 来进行配置的,而这些。
2025-04-09 05:00:00
10479
12
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(三):SpringSecurity请求流转的本质
过滤器链的代理对象:增强过滤器链(具体处理请求的过滤器还不是FilterChainProxy ) 根据客户端的请求匹配合适的过滤器链链来处理请求。ExceptionTranslationFilter是我们看的过滤器链中的倒数第二个,作用是捕获倒数第一个过滤器抛出来的异常信息。当我们的Web服务启动的时候,SpringSecurity做了哪些事情?当系统启动的时候,肯定会加载我们配置的web.xml文件。分析SpringSecurity的核心原理,那么我们从哪开始分析?以及我们要分析哪些内容?
2025-04-08 05:00:00
11180
15
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(四):SpringSecurity初始化的本质(解析配置文件的过程)
接下来我们来分析下Spring初始化的时候是如果解析SpringSecurity的配置文件的,并且存储在哪了?而SpringSecurity的解析是先进入import中,然后进入到parseCustomElement()方法来解析。在上面的步骤基础上我们进入registerBeanDefinitions方法中来看看是如何具体实现配置文件的解析操作。在SecurityNamespaceHandler中的 parsers中保存的就是 节点对应的解析器。到这http标签的解析就差不多了。
2025-04-08 05:00:00
13011
14
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(一):SpringSecurity的初次邂逅(概念、认证、授权)
Spring Security 是一个功能强大且高度可配置的安全框架,用于为 Java 应用程序提供身份验证和授权功能。以下是对它的详细介绍:## 核心功能* **身份验证**:支持多种身份验证方式,如用户名 / 密码、OAuth、LDAP 等。可以方便地与各种身份验证源集成,如数据库、LDAP 目录、OAuth 提供商等。例如,在一个 Web 应用中,用户可以通过输入用户名和密码进行登录,Spring Security 会验证用户提供的凭据是否有效。* **授权**:提供了细粒度的授权控
2025-04-07 05:00:00
13328
66
原创 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(二):SpringSecurity的源码初探(核心组件、认证流程)
首先来看看在spring-security-core中的SecurityContextHolder,这个是一个非常基础的对象,存储了当前应用的上下文SecurityContext,而在SecurityContext可以获取Authentication对象。attemptAuthentication方法的作用是获取Authentication对象其实就是对应的认证过程,我们进入到UsernamePasswordAuthenticationFilter中来查看具体的实现。来存储对应的信息的。
2025-04-07 05:00:00
12251
40
原创 【微服务架构】SpringCloud Alibaba(九):分布式事务Seata使用和源码分析(多数据源、接入微服务应用、XA模式设计思路)
我们对应的service 上都是有@Datasource注解,这个注解DynamicDataSourceAspect会在方法调用的时候进行拦截,在方法之间会解析@Datasource中的值,会将其设置到ThreadLocal里面,这里面DynamicDataSourceContextHolder,然后调用mybatis时候获取链接的时候时候会带调用上面的类determineCurrentLookupKey获取对应的key,我们通过这个key可以获取对应的数据源。会有阻塞模式 ,降低性能。
2025-04-06 05:00:00
12629
16
原创 【微服务架构】SpringCloud Alibaba(九):分布式事务Seata使用和源码分析(TCC模式、Saga模式)
TCC相关注解如下:@LocalTCC 适用于SpringCloud+Feign模式下的TCC,@LocalTCC一定需要注解在接口上,此接口可以是寻常的业务接口,只要实现了TCC的两阶段提交对应方法便可@TwoPhaseBusinessAction 注解try方法,其中name为当前tcc方法的bean名称,写方法名便可(全局唯一),commitMethod指向提交方法,rollbackMethod指向事务回滚方法。
2025-04-06 05:00:00
13135
12
【自然语言处理(NLP)】基于Transformer架构的预训练语言模型:BERT 训练之数据集处理
2025-01-28
【自然语言处理(NLP)】机器翻译之数据处理(数据收集、数据清洗、数据分词、数据标注、数据划分)
2025-01-23
Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,旨在帮助开发者更轻松地构建、部署和管理微服务架构 它整合了服务注册与发现、配置管理以及分布式协调等功能,为云原生应用提供了统一的解
2024-12-16
年会抽奖小平台,点开即用 在lottery.js文件中搜索:技术部,修改此处即可 有多少人就设置多少个元素
2024-12-16
有没有做过外汇交易MetaTrader 4平台相关业务的
2024-12-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人