- 博客(23)
- 资源 (13)
- 收藏
- 关注
原创 MySQL预编译语句过多告警排查
HikariCP不提供缓存的原因是因为数据库驱动层已经有高效的缓存机制,这样可以在多个连接之间共享执行计划,减少内存占用和性能开销。而在连接池层进行缓存会导致性能问题,因此使用数据库驱动层的缓存更为高效。4.根据Hikari文档里面的提示,缓存有三个层面,一个是服务端如MySQL,一个是连接池,另一个是MySQL的Driver,上面Hikari明确说明了在连接池上面做的坏处,也说明了不支持。所有现在能做。
2025-01-21 15:57:57
970
原创 导出超大数据量,如何避免JVM出现OOM,EasyExcel分批导出解决思路,超过100w分sheet写
导出背景前边一篇博文提到,查询超大数据量,如何避免JVM出现OOM,分批查询处理解决思路其实企业中,很多地方可能都需求用到文件导出功能,但有的时候我们需求导出一个,对于刚入行的小伙伴,发现需求导出全部数据时,代码里面可能经常会出现这种SQL:#查询全表select * from table_name;#查询很大(很多时候是全表)select * from tab_name limit 0, 9999999;每当博主发现线上机器OOM,在定位到代码的时候,很多地方都是因为导出,当我看到导出代码
2022-02-28 20:17:18
6689
4
原创 Java反射递归比较两个对象(对象中包括对象、List等)里面的不同字段
前言很多时候,我们需要对两个对象做diff,如果字段一多,比较起来相当的麻烦,利用反射,可以快速的实现一些diff比较,尽量性能不好,这是空间换时间的一些做法。正文核心实现如下:/** * * @author Cao Yong * @date 2021-05-28 9:48:12 */public class ModifyFieldsDiffUtil { public static <T> void diff(T before, T after, List<DiffC
2021-05-28 21:52:32
2097
原创 windows系统mysql-8.0.33 64位绿色版本安装详细步骤
一、前言MySQL有无数个版本,为什么要选择这个版本呢?因为目前很多公司的生效环境还是这一个版本,像阿里面云的RDS现在也都是这一个版本。二、准备工作下载官方下载链接选择对应版本下载即可:配置修改把下载的安装包解压到指定目录:我解压到了D:\software修改D:\software\mysql-5.6.16-winx64下的my-default.ini[client]default-character-set=utf8[mysql]default-character-set=u
2020-10-21 17:15:37
958
1
原创 用Java8中用Stream API对多个字段同时计算平均值
1.使用场景比如评论系统中,我们有多项打分,我们要同时对多个评分项求平均值,这个在数据库可以直接通过SQL也可以解决,在java 8后提供的Stream API也能解决这种求值问题,不适合数据量太大的统计。2.数据对象/** * 用户评分实体 */public class UserCommentDTO implements Serializable { /** * 详...
2019-06-20 14:04:18
8836
1
原创 观察者模式(监听器模式)+线程池 实现异步发送消息
1.使用场景大家都知道MQ有三个使用场景:1.解耦,2.同步变异步,3.消峰。在很多简单的场景,我们没有必要使用MQ来实现异步,我们可以通过spring的注解@Async或者通过多线程来解决。我在开发中遇到了这样一个使用场景:我们需要在满足条件的情况下,要同时往很多个用户小程序和公众号推送消息,由于推送消息的处理,是非常耗时的,做成同步明显是不合理的。我们需要异步的处理发消息。当然,我们可以使用...
2019-01-29 10:53:46
4036
2
原创 最新版最小化CentOS7下搭建最新版的hadoop3.1.1精简配置环境及测试wordcount
1.环境准备准备一台centos7的机器,去官网下载最新的安全包:下载地址安装jkd(已安装请忽略),下载地址个人习惯于使用rpm方式安装所以下载:用root账户登录,安装JKD:rpm -ivh jdk-8u192-linux-x64.rpm创建hadoop用户并设置密码:adduser hadooppasswd hadoop把hadoop用户加入到hadoop用户组:...
2019-01-11 16:06:26
636
1
原创 MySQL实现over partition by(分组后对组内数据排序)
前言开发中遇到了这样一个需求:统计商品库存,产品ID + 子产品名称都相同时,可以确定是同一款商品。当商品来自不同的渠道时,我们要统计每个渠道中最大的那一个。如果在Oracle中可以通过分析函数 OVER(PARTITION BY… ORDER BY…)来实现。在MySQL中应该怎么来实现呢。现在通过两种简单的方式来实现这一需求。数据准备/*Table structure fo...
2018-05-30 16:18:47
82227
12
原创 Spring Boot使用FastDFS结合Dropzone.js Bootstrap上传图片
绪论dropzone.js是一个非常强大的图片上传插件,而如今bootstrap的扁平化风格又如些的流行,当然也dropzone.js也有bootstrap风格的主题。本文主要讲如何在spring boot中使用dropzone.js实现图片上传功能。先看看效果: 环境搭建在spring boot的启动类中添加bean//显示声明CommonsMultipartResolver为mutipartR
2017-12-01 14:41:48
1859
原创 Shiro整合SSO单点登录系统
前言shiro是一个非常强大的权限管理框架,关于shiro与cas整合的示例有很多,但是我们平时开发的时候,很多公司并不是使用cas来做SSO的,而是自己公司会用自己开发的。本文就主要针对这种方式的整合。新增SSO相关的properties#sso服务器登录地址,service参数表示登录成功后要跳转的地址ssoServiceUrl=http://www.authserver.com/auth/l
2017-11-14 11:56:20
48431
16
原创 Java8函数式编程实践精华
绪论从java8开始,我们就可以通过java8中的StrameAPI与Lambda表达式实现函数式编程,可以让代码变得更加高效简洁。现在很多企业的生产代码已经开始使用java8了,对于还没有使用过java8进行的编程的朋友们可以好好的学习一下,我在企业中写java8也有一段时间了,我想把我在实际开发中用到的一些场景与大家分享一下,大部分例子都来源于我开发项目中的实例。其中我开发中用得比较多的是,Op
2017-11-01 22:37:30
3948
1
原创 Spring5.0.X源码阅读环境搭建Eclipse4.6.3(neon)
绪论Spring在J2EE中具有极高的地位,所以对于Spring源码的阅读,对于Java开发者来说能学习到很多的经验。很多人在搭建Spring源码环境的时候会出现很多的问题,为了让后面的人少走弯路,所以将自己的搭建经验与大家分享。1.环境准备下载Eclipse,搭建是Eclipse4.6.4(neon)。1.1 Eclipse安装Gradle插件由于Spring是用Gradle构建的,建议下载Gra
2017-08-05 01:29:07
2118
原创 CentOS7下搭建稳定版ActiveMQ5.15.0
1.下载ActivityMQ下载ActiveMQ5.15.0 上传文件到CentOS系统。 解压:tar -zxvf apache-activemq-5.15.0-bin.tar.gz查看目录:[root@localhost apache-activemq-5.15.0]# cd /usr/yong.cao/dev/activemq/apache-activemq-5.15.0[root@loc
2017-07-25 18:21:55
2761
原创 CentOS7下搭建solr6.6全文检索服务器及IK分词器配置
1.安装准备下载Tomcat8.5和solr6.6上传文件到CentOS并解压: 安装前请确保CentOS已安装过jdk。[root@localhost solr]# java -versionjava version "1.8.0_131"Java(TM) SE Runtime Environment (build 1.8.0_131-b11)Java HotSpot(TM) 64-Bit
2017-07-24 20:41:54
2718
原创 CenOS7搭建Redis-3.2.9及整合Jedis
1.上传安装包到CentOS上传的方法有很多种,我这里采用的是ftp上传。如果想搭建ftp的可以参考我的另一篇博文: CentOS7 搭建vsftpd详细教程 通过ftp我可以很方便的上传文件: 2.解压redis-3.2.9.tar.gztar -zxvf redis-3.2.9.tar.gz[root@localhost redis]# lsredis-3.2.9 redis-3.2.
2017-07-01 00:41:47
995
原创 深入探究HashMap的实现原理
1.绪论在Java数据结构中HashMap的实现,是相对复杂一点的了,其在Java数据结构中比较有代表性的了,面试中凡是问到Java数据结构,HashMap会被反复的问到,由此也可以看出,它是Java数据结构中比较重要的知识点。我们有必要掌握它的原理。本文不仅会讲到HashMap的基础原理,也会讲到HashMap在jdk1.8中引入的新特性,同时会扩展ConcurrentHashMap。2.Hash
2017-06-19 00:10:54
448
原创 CentOS7虚拟机下设置固定IP
1.使用场景当我们在当我们的CentOS在虚拟机下运行,我们为虚拟机设置的网络连接方式是NAT,我们会发现,ip地址会时不时的变化,如果我们要连接虚拟机中的服务是,ip也要时不时的修改,这样重复的操作费时又费力。这个时候就需要把网络接口从DHCP改为静态IP地址配置,让CentOS的网络接口分配静态IP地址。 我虚拟机的网络是这样配置的。 我下面实现的方式是通过网络管理器。网络管理器(Netwo
2017-06-18 18:17:53
2329
原创 CentOS7 搭建vsftpd详细教程
绪论vsfp是被公认目前最好的ftp之一,所以,为些搭建它还是很有意义的,有了它,我们还可以让虚拟机与主机更加方便的通信。root用户,在默认的情况下,是不允许做为ftp用户登录的,但是我们可以通过一些配置,来解禁。下面正是这些操作的详细讲解,适当的时候并贴上相应的脚本。1.安装vsftp用yum命令查找到了我们想要的vsftpd,开始安装。[root@localhost ftp]# yum sea
2017-06-18 17:14:30
4310
3
原创 CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程(四)
链接: 第一篇:FastDFS详细介绍 第二篇:FastDFS搭建 第三篇:FastDFS整合nginx 1.下载fastdfs-client-java1.1 下载源码在前面,FastDFS是环境都部署好了,接下来的整合,将变得相当容易。在我之前的教程里,已经将fastdfs-client-java-master下载好了。下载fastdfs-client-java-1.26如果下载有问题,或
2017-06-17 23:04:54
4766
1
原创 CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程(三)
链接: 第一篇:FastDFS详细介绍 第二篇:FastDFS搭建 第四篇:整合Java Spring MVC上传1.测试前面两篇博文已对FastDFS的安装和配置,做了比较详细的讲解。FastDFS的基础模块都搭好了,现在开始测试下载。1.1 配置客户端同样的,需要修改客户端的配置文件:vim /etc/fdfs/client.confbase_path=/opt/fastdfs_t
2017-06-17 20:47:31
14006
7
原创 CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程(二)
链接: 第一篇:FastDFS详细介绍 第三篇:FastDFS整合nginx 第四篇:整合Java Spring MVC上传1.CentOS7FastDFS搭建前面已下载好了要用到的工具集,下面就可以开始安装了: 如果安装过程中出现问题,可以下载我提供的,当前测试可以通过的工具包:fastdfs-5.11下载 fastdfs-client-java-1.26下载 fastdfs-n
2017-06-17 17:07:06
14306
1
原创 CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程(一)
链接: 第二篇:FastDFS搭建 第三篇:FastDFS整合nginx 第四篇:整合Java Spring MVC上传1.绪论最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的过程中遇到过很多的问题,为了能帮忙到以后搭建FastDFS的同学,少走弯路,与大家分享一下。FastDFS的作者淘宝资深架构余庆,这个优秀的轻量及的分布式文件系统的开源没多久,立马就火了。由于篇
2017-06-17 16:52:45
12220
2
sso与shiro整合所需工具类
2017-11-14
solr6.6IK分词器
2017-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人