自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

农夫三拳

balabala

  • 博客(154)
  • 资源 (4)
  • 收藏
  • 关注

原创 Elasticsearch聚合模型

占坑。

2024-04-23 16:47:20 286

原创 Elasticsearch分布式搜索

占坑。

2024-04-23 16:46:36 184

原创 Elasticsearch搜索模型

占坑。

2024-04-23 16:45:57 376

原创 dubbo流量控制

占坑。

2024-04-23 16:42:46 264

原创 dubbo异步

占坑。

2024-04-23 16:38:14 167

原创 dubbo wrapper

占坑。

2024-04-23 16:12:31 85

原创 dubbo adaptive

占坑。

2024-04-23 16:11:49 51

原创 dubbo compiler

占坑。

2024-04-23 16:10:53 71

原创 dubbo proxy

占坑。

2024-04-23 16:10:01 73

原创 dubbo发布、订阅服务、调用流程

发布服务过程订阅服务流程。

2024-04-23 15:59:55 75

原创 mybatis-plus、PageHelper分页插件

PageHelper:轻量级插件,无须撰写limit语句。mybatis-plus:重量级插件,无须撰写limit。

2024-02-19 12:53:08 180

原创 mybatis datasource种类

mybatis 内置了三种数据源,分别是Pooled,Unpooled和JNDI,其中Pooled数据源是具有连接池的。开发场景下,通常使用以下几种数据源。Druid:兼顾了性能和监控,综合。C3P0:性能稍好,常用。Hikari:性能快。

2024-02-18 18:30:15 112

原创 mybatis实现动态标签源码过程

xxx。

2024-02-18 18:24:44 106

原创 mybatis整合plugin处理

【代码】mybatis整合plugin处理。

2024-02-17 14:27:44 198

原创 mybatis缓存机制

经验:二级缓存性能很好,但是对开发者有一定的要求,这个要求就是在撰写mapper时候,一定要保证在命名空间里面的单表查询,一切join表场景全部避免,这样可以有效避免脏读场景。1、大型分布式系统、小公司多实例部署同一台机器建议不要开启二级缓存,多表join场景下,有的表可以读到最新的值,但有的表会读到以前的缓存,同样会出现脏读场景。1、大型分布式系统、小公司多实例部署同一台机器建议关闭一级缓存,产生脏读,读旧值情况比较大。一级缓存(SqlSession会话级别缓存)二级缓存(命名空间缓存,可以跨会话级别)

2024-02-16 23:33:47 179

原创 #{}和${}区别

{}类似jdbc中的PreparedStatement,对于传入的参数,在预处理阶段会使用?代替,可以有效的避免SQL注入。${}就是拼接字符串,没有预编译操作。

2024-02-16 20:54:46 216

原创 Innodb下修改事务工作流程(buffer pool、redo log、undolog、binlog)

undolog的写入最开始写到内存中的,然后由1个后台线程定时刷新到磁盘中的。Innodb优先从Buffer Pool中查询该条记录,如果没有就从磁盘文件中缓存到Buffer Pool中。binlog中记录的信息包括:事务开始的时间、数据库名、表名、事务ID、SQL语句等。提交事务后,后台异步线程将Buffer Pool写入磁盘中,这里会有一定的延时。同步修改到redo log buffer,此时并没有写入磁盘中。更新Buffer pool中的脏页,此时并没有写入磁盘中。4、写入redo log日志。

2024-02-16 15:01:45 195

原创 union和union all区别

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则排序;效率高 UnionAll:对两个结果集进行并集操作,包括重复行,不进行排序;效率低

2024-02-16 12:50:09 76

原创 truncate、delete、drop的区别?

不支持删除内容不支持。

2024-02-16 12:31:11 181

原创 mysql sql执行次序

from--->join--->where-->group by-->having-->select--->distinct--->order by --->limit

2024-02-16 11:18:24 113

原创 mysql like‘%xxx%‘优化

3、union联合使用虚拟队列进行查询。2、为虚拟列创建索引。

2024-02-12 21:51:00 212

原创 msyql主从延时优化

2、从库sql线程只有一个,当执行sql线程过程中,遇到复杂的sql语句的场景,可能会发生死锁可能。部署一台不对外提供查询的从节点,专门负责sql线程执行sql。3、从服务器机器性能一般。3、选择性能更好的机器。

2024-02-10 19:02:05 87

原创 msyql主从复制

1、主从复制开启,主库负责dump当前binlog日志(update、insert、delete),从服务器准备开启IO线程和sql线程。2、从库负责向主库发起连接,IO线程负责拉取主库的binlog日志并且同步到relay log日志。3、从服务器使用sql线程执行relay log里面的sql语句,并且持久化到从服务中。

2024-02-10 18:45:56 344

原创 binlog、undolog、redolog

binlog:适用于innodb和myisam引擎,用于数据备份、主从复制,保存所有的ddl和dml数据,以二进制进行存储。undolog:适用于innodb引擎,负责正常回滚事务、崩溃回滚事务,主要记录。redolog:适用于innodb引擎,负责崩溃恢复和数据持久化,主要记录执行。执行的sql,一旦事务需要回滚,直接执行事务发生前的sql语句。

2024-02-10 17:52:12 124

原创 limit深度分页和优化思路

先读取m+n条记录,然后抛弃前面n条记录,返回从m开始n条记录,深度分页越往后性能越差。3、再度优化提升思路,加入order by ,走联合索引。1、定义一个自增序列,一个子查询将所有的自增id全部查出。参考oracle rowsnumber分页思路。假设查询商品数量、商品名称等。

2024-02-10 17:25:13 213

原创 count(1)、count(*)、count(字段)区别

count(1)、count(*),没有区别,直接查询符合条件的行数(不管有没有null值)。count(字段)查询符合条件不为空的行数。

2024-02-10 15:11:43 90

原创 聚簇索引、非聚簇索引、回表、索引下推、覆盖索引

发生在联合索引,多个字段进行联合索引的时候,遵循最左匹配原则,只是在索引上进行匹配,也就是说不会产生回表,通常发生在like语句,查询计划,Using index condition就是索引下推技术。覆盖索引发生在联合索引,where条件遵循最左匹配原则,order by条件需要满足联合索引所有条件,否则产生回表,这个IO消耗非常大。经验:优化mysql的时候,当遇到至少百万级表的数据的情况下,通过减少回表次数来优化sql语句是一种常用的手段之一,只要保证正确使用联合索引那么效率自然不会低下。

2024-02-10 14:03:43 181

原创 mysql RR、RC隔离级别实现原理

采用乐观锁实现,它通过对不同事务生成不同的快照版本,通过UNDO版本链进行管理并且在MVCC里面,规定了高版本能够看到低版本的事务变更,低版本看不到高版本的事务变更,从而实现了不同事务之间的数据隔离。是一种特殊的表级别锁。简言之,如果一个事务正在往表中插入记录,所有其他事务的插入必须等待,以便第一个事务插入的行, 是连续的主键值。写锁,给事务加上排它锁,该事务可以执行任意读写操作,其他事务无法获取该排它锁,也不能加其他类型的锁。保证并发场景下,使用RC高过RR,RC的锁的粒度是只有一行,RR是多行的锁。

2024-02-09 08:43:47 791

原创 Seata TC端协调全局事务

【代码】Seata TC端协调全局事务。

2024-01-13 22:33:54 480

原创 Seata TM管理分支事务源码

TM相当于一个中间商,是没有涉及到任何数据库底层操作的。

2024-01-13 17:53:02 466

原创 Seata RM端管理分支事务源码

往GlobalSession里面添加BranchSession,实际就是netty客户端发送了一次绑定xid请求给TC端。

2024-01-13 17:43:13 424

原创 Seata AT Server (TC端)启动过程

如果是以容器方式运行的seata,则使用环境变量的参数来初始化。如果不是以容器方式运行的seata,则在启动参数来初始化。订阅Metrics消息进行监控管理,发布在协调器初始化中。负责全局事务的开启、提交和回滚。

2023-12-30 14:18:39 403

原创 Seata AT TM->RC->RM一次完整的交互过程

原理TM两阶段:阶段1:TM向TC申请全局事务,netty客户端发起了一次记录xid的请求阶段2:TC协调之后,决定执行RM是否提交或者回滚。

2023-12-29 14:12:48 455

原创 Redis主从切换(单点故障)解决源码

初始化发布命令,往pubsub_channels添加channel和对应的客户端列表。hash key存储了channel名称,value存储了订阅者列表。2、从redis架构去思考,拓展哨兵、master、salve都相对简单容易,2、高频次访问发布消息,容易阻塞挤压,说白了还是Reactor单线程驱动缺点。1、采用Reactor事件单线程去驱动发布订阅事件的,从pubsub_channels适配channel对应的订阅者列表。,redis只管发送消息,不会等待订阅该频道的实例响应。

2023-12-26 18:29:40 522

原创 Redis哨兵源码分析

在Redis server启动过程中,实现了实例化和初始化。

2023-12-22 23:04:06 497

原创 Redis 主从复制源码分析

前置学习:Redis server启动源码-CSDN博客

2023-12-05 17:04:01 607

原创 Redis AOF源码解析

本文取3.0版本分析(各个版本差异很大,4.0以上才有aof和rdb混合模式)

2023-12-05 17:03:30 609

原创 Redis rdb源码解析

3,主从复制-->startBgsaveForReplication函数,落盘方式(rdbSaveBackground函数),不落盘方式(rdbSaveToSlavesSockets函数)。2、执行bgsave命令--->rdbSaveBackground函数或者(serverCron->prepareForShutdown)4、flushall命令--->flushallCommand函数。1、执行save命令--->rdbSave函数。

2023-12-05 17:02:33 536

原创 Redis Reactor事件驱动模型源码

文件事件结构*/// 监听事件类型掩码,// 值可以是 AE_READABLE 或 AE_WRITABLE ,// 或者 AE_READABLE | AE_WRITABLEint mask;// 读事件处理器// 写事件处理器// 多路复用库的私有数据* 已就绪事件*/// 已就绪文件描述符int fd;// 事件类型掩码,// 值可以是 AE_READABLE 或 AE_WRITABLE// 或者是两者的或int mask;/** 事件状态*/

2023-12-05 15:48:46 612

原创 Redis server启动源码

初始化数据库数据结构和pool,网络交互初始化(线程初始化、工作队列初始化)包括设置 server 运行的时区、设置哈希函数的随机种子。src/redis.c文件main函数。解析options,加载配置文件。

2023-12-05 00:17:01 503

Tomcat安装包

Tomcat7.0安装包+源码包

2017-05-22

mysql-connector

mysql连接池

2017-05-22

mybiatis代码生成

mybitas代码自动生成工具

2017-05-22

svn-server-client

svn的客户端和服务端

2017-05-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除