自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 mybatis拦截器打印完整带参数sql,可直接放入数据库工具执行

如果你使用的是mybatisplus,那至少有3种方法打印sql, 如下博客。

2024-08-25 17:06:06 704

原创 修改了mybatis的xml中的sql不重启服务器如何动态加载更新

开发一个报表功能,好几百行sql,每次修改完想自测下都要重启服务器,启动一次服务器就要3分钟,重启10次就要半小时,耗不起时间呀。于是在网上找半天,没发现能直接用的, 最后还是乖乖用了自己的业余时间,参考了网上内容写了个合适自己的类。2.部分idea版本修改了xml中的sql后,并不会直接写入到硬盘中,而是保留在内存中,需要手动ctrl+s或者切换到其他窗口才能触发写入新内容到硬盘,所以使用本类时要确认你修改的sql确实已经保存进硬盘里了。3.xml所在文件夹的绝对位置,需要你修改下,再使用本类。

2024-07-17 14:46:19 588 1

原创 java堆只有200mb内存,如何读取10g文件并对数字去重?

这里使用jdk自带的BitSet进行去重,BitSet类似于redis的bitMap,特定情况下比HashSet<Integer>节约30倍内存空间,毕竟一个bit只占用1位,一个int占用32位啊。其中老年代内存占用约130MB,由于未到回收阈值(133.5MB),所以基本没进行过老年代的垃圾回收。年轻代内存平均占用约30MB,频繁垃圾回收,每次垃圾回收可回收约99%的内存。10g文件内装的都是数字,用换行符隔开,约9亿多个数字,只有少数几个重复。至于赋值之后有啥业务含义,就看你自己的定义了。

2023-12-03 11:26:28 617

原创 SpringDataJpa中事务是如何实现Connection对象复用的(源码分析)

这个LogicalConnectionManagedImpl关联的上层对象是EntityManagerHolder,因为赋值完毕后,你就会发现EntityManagerHolder关联的physicalConnection对象不在为null了。中打断点,你会发现在事务开启初期,会给physicalConnection赋值,的对象,从而获取connection对象,实现connection对象的复用。中的断点,你能发现,执行sql的代码 正在尝试从。在jdbc中,若想要在事务中执行sql,

2023-11-28 18:37:30 996

原创 springboot+mybatis+plus个人常用增删改查代码

TestBaseMapperController.java:BaseMapper方式进行增删改查。TestServerImplController:通过通过ServiceImpl实现增删改查。TestXmlController:在mybatis的xml文件中写sql以实现增删改查。

2023-11-14 15:45:09 175

原创 雪花SnowflakeId-利用mysql生成和管理workerId和datacenterId

该类用于定时每小时向mysql中注册workerId和datacenterId信息, 如果发现其他服务使用相同的workerId和datacenterId,则会申请新的workerId和datacenterId。1. 需要有张mysql表,mysql表的自增id,即使在分布式并发环境下,也能获得有序的不同的自增数值,通过这个不会重复的数值可以取余生成workerId和datacenterId(后续简称w_d组合),解决生成w_d组合的并发安全问题。3.基于zookeeper和生成和管理。

2023-11-11 17:27:59 1344

原创 mybatis整合pagehelper报错ClassNotFoundException: org.mybatis.logging.LoggerFactory

比如我用的mybatis版本是3.5.5,引入1.3.0的pagehelper-spring-boot-starter就行,其他版本自行在官网里找哈。根据错误堆栈中的MybatisSqlSessionFactoryBean,可找到报错位置如下,本质还是没找对pagehelper-spring-boot-starter的版本导致的。所以根据你项目里使用的mybatis版本,引入对应的pagehelper版本就行,其实不同的pagehelper支持的mybatis版本是不一样的,如下图。

2023-11-03 16:00:28 156

原创 用sharding-jdbc执行left join、group by、count等常见sql操作

具体项目结构、完整代码、数据库脚本在另外一篇博客文档中。

2023-10-31 11:11:38 1133

原创 springboot+mybatis+sharding-jdbc整合示例代码

想要整合个sharding-jdbc,结果sharding-jdbc官网的入门示例居然下载不下来,无奈只能自己搭了个,下面的示例可以直接运行,并且提供了数据库脚本,对新手友好。sharding-jdbc:4.0.1(目前能在maven中找到的最新稳定发布版本)mybatis-plus:(目前能在maven中找到的最新稳定发布版本)测试运行过程和结果请见DemoController.java,都写那了。用于链接mybatis的xml文件。mysql版本:mysql8。mybatis官网链接。

2023-10-31 10:42:53 439

原创 java-查看当前jvm项目使用的垃圾回收器的方法

由此可见,在没有额外设置的情况下,java8默认的垃圾回收器组合为ParallelGC ,其中包括 PS Scavenge(新生代收集器) 和 PS MarkSweep(老生代收集器)打开windows的命令行工具或者linux的控制台,运行以下命令查看当前有哪些jvm程序在运行。找到-useXXXX这样的参数,参数后即为所使用的GC回收器。切换到VM概要标签页面,可查看当前使用的垃圾回收器。然后运行以下命令,获取该应用所有的vm参数。选择你本地正在运行的jvm应用。

2023-10-27 14:19:00 2545 1

原创 springboot下rocketmq-client消息接收发布示例代码

就是官网稍稍复杂些,并且是脱离springboot的,对任务繁重的开发们可能不太友好,而我的示例注释比较多,可以直接复制就用。参考官方文档,大部分功能的示例代码都可以从这个地址找到。

2023-10-25 23:38:06 163 1

原创 ConcurrentHashMap源码学习笔记

ConcurrentHashMap源码

2023-08-25 21:15:47 86 1

原创 使用Elasticsearch实现sql的like的功能并测试性能

不同版本Elasticsearch语法不同本文使用的Elasticsearch是6.8.0原理使用Elasticsearch自带分词器ngram,将句子短语逐字按步长完全拆分出来加入倒排索引中,搜索无需分词直接查询。顺带举例下分词器ngram的分词效果例如句子:你要购买什么结果:见本文下方的"查看某个id的文档的字段拆分出的实际结果"

2023-06-15 12:44:31 444

原创 Windows安装elasticsearch8(学习用)踩坑记录

Windows安装elasticsearch(学习用)踩坑记录

2023-06-07 12:22:03 545

原创 TIDB-SQL优化经验

tidb sql 优化经验总结

2023-04-24 17:35:18 631

原创 记录一次phoenix写索引表失败导致hbase集群崩溃的生产事故

主要原因:hbase集群索引表数据量增多了,负荷变大了,引入功能变多了,但是项目配置参数没有随之调整开源项目Phoenix中,对于少部分的修改索引表状态失败的场景,默认的处理方式比较简单粗暴,在一些特殊情况下,容易出现问题有索引表的region正在分裂,分裂期间region不接受任何请求业务应用请求写索引表失败,重试后仍然失败,于是将索引表禁用同时存在其它线程尝试修改索引表状态,但是索引状态修改失败索引状态修改失败后regionserver自动关闭同时存在其它regionserver正在请求宕机的regio

2022-06-19 19:04:32 781

原创 phoenix更新压测时qps不到10并发低原因分析

接口业务逻辑复杂又长,涉及到redis、fegin、phoenix。测试同事对该接口进行压测,发现该接口qps在压测5分钟后qps会降低至10左右,开发同事怀疑phoenix导致phoenix更新压测时并发低的原因phoenix行锁导致对于一张有二级索引表的phoenix主表,在更新主表某条数据时, 如果需要更新索引表,则phoenix会对该行数据添加行锁,从加锁到解锁过程一般持续200毫秒到500毫秒,该过程中其它线程无法更新这条数据。压测时采用不同的入参,避免行锁竞争,压测qps就能上去========

2022-06-19 17:52:54 1065

原创 生产hbase集群(phoenix)热点数据问题-90%请求量在一台机器上

如下,生产hbase集群总是有一台服务器承担整个集群90%左右的读请求,虽然qps100~200左右不能让regionserver宕机,但是近1年经常有收到反馈说hbase集群可能存在热点影响查询速度的问题,于是决定花时间排查 phoenix的任意的一条查询类型的sql,在生成具体sql执行计划的时候,一般会多次查询表system.catlog表,system.catlog表目前部署在一台regionserver上,从而形成热点。补充说明1:system.catlog是phoenix的元数据表,主要存储ph

2022-06-19 17:40:06 870

原创 hbase异常修复经验总结

重hbase异常修复经验总结,如启集群时,如果报错hbase:meta表不在服务器上。。master节点启动失败,切分wal日志失败。。hbase的RIT问题..arrayIndexOutofBoundSexcExecptiom....regin不在线,,,,, is not online on...表处于中间状态等等...

2022-06-19 16:29:45 3613

原创 记录一次测试环境粗暴修复hbase的RIT和master无法启动问题

背景:一次对测试环境hbase的远程调试中,一边压测一边调试,最后导致regionserver挂了,出现了几千个处于中间状态的region(RIT),然后master也挂了起不来。按之前的经验,如果大部分region都RIT了,master又挂了,修复起来会比较麻烦。这个集群就我一个人用,目前我只需要一个表正常就行了。于是打算直接重做测试环境hbase集群注意:该方法适用于2.0.2版本的hbase,其他版本hbase操作可能有些不同行动步骤:1. 关闭集群2.将zookeeper根目录下/hbase这个文

2022-06-19 14:41:27 772

原创 hbase集群master节点无法启动问题的处理经验

hbase集群master节点无法启动问题的处理经验如meta表namespace表不在线

2022-06-03 15:46:06 2953

原创 Doris查看建表语句或者表结构

举例:查看某个表的建表语句SHOWCREATETABLE testdb.testtable官网连接:SHOW-CREATE-TABLE | Apache Dorishttps://doris.apache.org/zh-CN/sql-manual/sql-reference/Show-Statements/SHOW-CREATE-TABLE.html

2022-05-31 11:04:01 5292

原创 hbase远程调试源码的方法和步骤

hbase远程调试源码的方法和步骤源码调试的前提是有源码有个比较简单的办法可以弄到hbase对应版本的源码先随便弄个maven、sprinboot项目,引入下面的依赖其中部分关键内容我复制出来-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8765其它内容参考图片在regionserver的配置文件里加上这个jvm参数(小心空格),如果suspe...

2022-05-08 17:22:04 982

原创 hbase日志显示zookeeper连接不稳定KeeperErrorCode = ConnectionLoss

2021-11-29 21:49:10,303 WARN [main-SendThread(zookeeper-02:2181)] zookeeper.ClientCnxn: Session 0x7cc057820ec8b2 for server crm-zookeeper-02, unexpected error, closing socket connection and attempting reconnectjava.io.IOException: 断开的管道 at sun.nio.ch.F.

2022-05-04 10:49:46 1655

原创 记录偶现的hbase长时间gc的问题和解决方法

生产环境每隔一段时间就会出现一次长时间gc的问题,gc时间经常长达200秒,hbase日志如下2022-03-25 16:53:46,892 WARN [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 290276msGC pool 'ParNew' had collection(s): count=1 time=333msGC

2022-05-03 21:39:05 3231

原创 visualvm连接jstatd、jmx用于连接hbase

visualvm连接jstatd、jmx用于hbase===================远程连接jstatd的方法===================echo $JAVA_HOME得到javahome目录进入javahome的bin目录新建文件,该文件用于打开权限vim jstatd.all.policygrant codebase "file:${java.home}/../lib/tools.jar" { permission java.secur...

2022-05-03 20:10:36 1835

原创 实验:研究hbase自动均衡对接口读写的影响

实验:研究hbase自动均衡对接口读写的影响(8月9号有做1个实验,数据量是1300G,自动均衡600个region,耗时300秒,均衡过程中接口未报错)测试目的:研究region自动均衡对接口读写的影响测试步骤如下1.测试集群环境关闭以下Region Servershbase-slave-003,hbase-slave-004,hbase-slave-0052.161集群环境开启以下Region Servers,使得集群仅有2个Re.

2022-05-03 19:07:19 1253

原创 phoenix大表增加字段的方法

phoenix大表增加字段的方法文章背景:给phoenix大数据表加字段,一般用官方的alter语句,但有时候会因为表中数据量过多或者其它原因导致超时失败,于是就有了这篇文章,用于讨论怎么给大表增加字段文章主题:通过改system.catalog表来给phoenix表增加字段正文:下面以hbase测试环境演示,尝试给表MEMBER_TEST增加字段WJH_TEST_COLUMD11首先查看目标表在system.catalog表中记录的相关信息select

2022-05-03 18:26:29 1347

原创 phoenix提示表不存在或已存在的解决办法

问题:对于pheionx某些表明明不存在,操作的时候却提示存在。或者明明已经删掉了,重建表的时候却提示已存在不存在的解决办法:方法总结:当遇到表不存在时,先删除systemcatlog(pheionx自带的一张表,用来存pheionx的其他表信息等等)中的一些数据,再删除hbase中的表,然后重启整个hbase集群去掉pheionx的表缓存(或者等待1个小时也能去掉表缓存),就能重新建表删除systemcatlog中的数据可以考虑用下面的sqlselect DISTI..

2022-05-03 17:33:20 845

空空如也

空空如也

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

TA关注的人

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