- 博客(221)
- 资源 (2)
- 收藏
- 关注
转载 如何给开源项目贡献代码
本文转载自:机智的小熊和我比较熟的朋友知道我前几天给prometheus贡献了代码,这是我第一次给一个比较大的开源项目贡献代码,后来一了解发现,我滴妈,好多人都不会发起PR请求来合并代码,这次我就好好写写,给大家一个参考。毕竟没有什么比给开源项目贡献过代码更好的经历了,简历上写上去肯定会获得更多的眼球和更多的关注,一起来吧!其中有三个新 名词 fork pr ci ,不要急,带着问题,我们慢慢来。fork第一步,找到你到贡献代码的项目,用Fork按钮,然后项目就会自动拷贝一份到你自己的githu
2020-06-28 16:27:04 1488
原创 mybatis trim标签的使用
mybatis trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句拼接where、set等前缀
2018-07-11 17:04:51 147312 38
原创 为什么cpu profile火焰图部分时间是在Thread.wait方法上
如果你在火焰图上看到 Thread.wait() 方法占用了相当比例的时间,需要进一步分析上下文信息和线程状态,这可能涉及到查看线程栈的更多详情,考虑采样频率和时间,以及使用其他工具(如锁分析器、IO监控工具)进行交叉验证。如果你在火焰图上看到 Thread.wait() 方法占用了相当比例的时间,需要进一步分析上下文信息和线程状态,这可能涉及到查看线程栈的更多详情,考虑采样频率和时间,以及使用其他工具(如锁分析器、IO监控工具)进行交叉验证。在等待状态下,线程不会执行任何操作,
2023-12-12 21:56:34 551
原创 Java动态编译
个人目前从事分库分表中间件的开发,用户期望在中间件控制台提前去测试验证逻辑表的拆分路由情况:逻辑表的拆分规则配置支持groovy方式,那么部分业务会通过groovy引用到“业务系统”代码里面的某个类#方法。但“中间件控制台系统”里面是没有“业务系统”的代码。针对此种情况,我们需要有一种手段,让控制台系统能够动态加载到业务系统的类#方法,方便分库分表中间件加载到对应类,继而执行拆分规则。
2023-12-09 13:38:12 505
原创 minikube mac 启动
另外v1.31.2版本如果不指定kubernetes-version的版本,默认使用的是v1.27.4,这个版本我本地kubeadm的checksum文件下载不下来,报404错误,换成较低版本的v1.23.2,可以run。有两种解决方案,第一种是docker tag的方式,在我的本地这样不生效,故而采取第二种方式,升级minikube版本到v1.31.2。系统MAC OS [intel],最开始使用的minikube是1.22.0版本。原因:镜像名称和tag不一致,coredns在阿里云镜像是。
2023-08-30 00:01:33 416
原创 Sharingsphere 模块
目录模块划分模块依赖关系模块划分基于版本5.1.1SPI:可插拔架构设计,SPI机制SQL Parser:SQL语法、方言解析ANTLRMode:分布式治理设计MemoryStandloneCluster:etcd,zkInfra:基础组件Binder:SQL语法树和SQL表结构绑定和识别Route:SQL路由Rewrite:SQL改写,加密或者分片改写Executor:执行器,AP or TPMerge:结果集合并Federation:跨库SQLKer
2022-05-28 14:36:15 184
原创 Spring-mybatis PlaceHolder变量未替换
Spring集成mybatis,如下配置,DataSource中的占位符未替换。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframewor
2022-05-02 11:44:50 755
原创 JPA OneToMany删除子项须知
OneToMany,在One的Many集合里面移除某项时,DB不会删除对应项例如:user -> orderList,在orderList中移除一项order时,DB层面不会删除对应order记录。详细参考:JPA OneToMany not deleted child那么如何实现该功能呢? 使用:orphanRemoval具体参考:how to delete child on OneToMany...
2022-03-28 21:32:35 879
原创 log4j踩坑记录
Log4j 1.x版 引发线程blocked死锁问题log4j2的loadclaas导致的性能问题log4j2 flush导致的日志阻塞问题分析log4j2 线程上下文频繁切换导致的cpu负载问题
2022-03-19 10:11:15 339
原创 SQL事务隔离级别参考资料
1、ANSI SQL-922、ANSI SQL-993、A Critique of ANSI SQL Isolation Levels4、TiDB 的隔离级别5、OCEANBASE的事务隔离级别
2022-02-17 22:30:05 248
原创 JDBC 事务rollback失败会产生什么情况
先说下结论:事务没有rollback或者rollback失败的情况下,如果是相同的connection(数据库连接池会复用连接),可能会产生数据不一致的场景。begin;insert into test (id, name) values (2,'ning');insert into test (id, name) values (1,'ruler');//commit or rollback,如果上面的第二句sql执行异常,比如dupKey,业务层的事物将会回滚,这里未回滚或者回滚失败,
2022-01-29 10:16:51 2045
转载 Mysql 客户端预编译和服务端预编译
参考:https://blog.csdn.net/xieyuooo/article/details/10732375
2022-01-28 16:16:45 366
原创 linux命令行快捷键
Ctrl + 左右键:在单词之间跳转,MAC OS是:Option + 左右键Ctrl + A:跳到本行的行首Ctrl + E:跳到本行行尾Ctrl + U:删除从当前光标位置到行首的内容。Ctrl + K :由光标所在位置开始,删除右方所有的字符,直到该行结束。Ctrl + L:清空你的终端屏幕,MAC OS:Command + K也可以Ctrl + D:退出当前终端。如果你使用 SSH 连接,它将会关闭。如果你直接使用一个终端,该应用将会立刻关闭Ctrl + C:终止终端运行的程序Ctr
2022-01-25 10:45:12 1035
原创 InetAddress.getLocalHost()运行缓慢
这个是 macos 存在的一个问题,解决方案如下:在 /etc/hosts 中添加本地 hostname 的 dns 解析,执行 hostname 命令,将 hostname 命令输出的结果添加到 /etc/hosts 中,类似于:127.0.0.1 localhost xxx.local::1 localhost xxx.local参考:https://thoeni.io/post/macos-sierra-java/https://stackoverflow.com/q
2022-01-17 19:30:52 739
原创 Mybatis缓存使用注意
众所周知,mybatis设计了两级缓存。第一级是SqlSession维度的,同一个的SqlSession里面的相同查询,不会走DB,而是走SqlSession的缓存。一级缓存默认是开启的,需要注意的是,如果DB层面事务隔离级别 < RR,那么该缓存会产生和隔离级别不一样的语义(RR下的当前读也会产生问题)。二级缓存是Application全局维度的,同样也存在上面隔离级别的问题。使用时需要特别注意:sql如果涉及到多表操作,例如多表join查询,如果join的目标表记录发生变化,缓存的的Key是s
2022-01-15 10:40:22 292
原创 为什么不建议使用JPA
一、JPA强在简单的CRUD,动态查询、Join查询虽然支持,但是不是很友好。二、在体量比较大的场景下,性能优化会非常复杂。比如OneToOne,ManyToOne is not lazy,在查询主对象的时候,会同时查询对应的关联对象。假设有2个OneToOne关联对象,查1000次主对象,将会带来2000次关联对象的查询。并且这块你没办法优化,没办法改成批量的方式。又比如update前会再查询一次做比对,可能很多场景下不用,此时就带来一次额外的查询。等等,所以在对性能要求比较高的情况下,不建议选
2022-01-12 14:33:16 2795 1
原创 MySQL 字段类型占用空间
目录Number TypeDate and Time TypeString TypeNumber TypeData TypeStorage RequiredTINYINT1 byteSMALLINT2 bytesMEDIUMINT3 bytesINT, INTEGER4 bytesBIGINT8 bytesFLOAT§4 bytes if 0 <= p <= 24, 8 bytes if 25 <= p <= 53
2021-12-28 20:16:01 517
原创 mysql 获取db表记录行数
SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'xxx' ORDER BY table_rows DESC 什么情况下需要该sql?比如:做DB数据迁移时,探测哪些表有数据,以决定迁移哪些表。
2021-12-28 20:01:17 288
原创 LAST_INSERT_ID
目录LAST_INSERT_ID()LAST_INSERT_ID(expr)Mysql LAST_INSERT_ID函数有两种表达形式,分别是:LAST_INSERT_ID()LAST_INSERT_ID(expr)LAST_INSERT_ID()With no argument, LAST_INSERT_ID() returns a BIGINT UNSIGNED (64-bit) value representing the first automatically generated va
2021-12-11 18:27:42 2349
原创 Mysql SUBSTRING函数
SUBSTRING,有如下几种用法注:SUBSTR和SUBSTRING函数含义相同SUBSTRING(str,pos)SUBSTRING(str,pos,len)SUBSTRING(str,pos)SUBSTRING(str,pos),表示SUBSTRING(str FROM pos),从pos位置开始截取。select substr('123456',2);//从第二位开始截取23456select substr('123456',10);//从第10位开始截取,返回空字符串
2021-11-28 10:15:25 2280
原创 Lock wait timeout exceeded; try restarting transaction
问:查询DB,报Lock wait timeout exceeded; try restarting transaction。这个try restarting transaction日志,会执行什么动作,重启事务吗?答:不会,这个参考的是mysql的报错,意思是告诉用户尝试重启事务
2021-11-11 23:16:13 470
原创 Query execution was interrupted
MYSQL ErrorError number: 1317; Symbol: ER_QUERY_INTERRUPTED; SQLSTATE: 70100Message: Query execution was interrupted异常原因一、JDBC setQueryTimeout如果设置了queryTimeout参数,JDBC后台会启动一个Timer,内部是一个CancelTask,当sql执行时间超过预设置的时间时会主动Kill query。//create Timertimeout
2021-11-01 00:50:04 11504
原创 什么情况下使用责任链模式
1、希望将请求的发送者和请求接收者进行解耦;2、请求接收者有多个,并且不稳定,会增加或者删除接受者;3、请求需要流程性的处理(也就是需要请求接收者链式执行)
2021-09-24 20:35:37 225
原创 cut命令使用
cut -b list [-n] [file ...] cut -c list [file ...] cut -f list [-d delim] [-s] [file ...]各个参数的含义: -b list The list specifies byte positions. 以字节为单位进行分割 -c list The list specifies character posi...
2021-09-23 22:16:18 229
原创 Mysql Server 开启日志输出
目录General Query Log(通用查询日志)查询General Query Log 状态开启General Query LogSlow Query Log(慢查询日志)查询Slow Query Log状态开启Slow Query LogGeneral Query Log(通用查询日志)查询General Query Log 状态SHOW VARIABLES LIKE 'general%';或者SHOW VARIABLES WHERE Variable_name = 'general_l
2021-08-18 23:20:48 311
原创 README.md 写法
现在README.md 就一行话:“git sample”README.md 一般要讲清楚:1)代码库的大概结构2)怎么编译、怎么跑本地测试3)更多的资源的链接
2021-07-20 12:00:51 169
原创 Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
原因是mybatis-spring-1.2.0版本SqlSessionDaoSupport取消了自动注入SqlSessionFactory 和 SqlSessionTemplate/** * Convenient super class for MyBatis SqlSession data access objects. * It gives you access to the template which can then be used to execute SQL methods. * &l
2021-07-14 13:57:27 1760
原创 Spring Dao异常体系
目录DataAccessExceptionTransientDataAccessExceptionNonTransientDataAccessExceptionDataAccessException#mermaid-svg-YcG9Hwz0x0kZBWcp .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Yc
2021-07-04 10:11:35 551
Understanding_Java_Garbage_Collection_v4.pdf
2020-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人