自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 生产环境OSS使用不当引发OOM造成CPU100%问题

将导出的dump文件导入MAT(MemoryAnalyzer)中进行分析,打开后软件提示存在内存泄漏,点开后可发现PoolingHttpClientConnectionManager 这个对象是被一个数组对象引用着的,数组内对象数量多达38万,占据了总内存的96%结合查询业务错误日志,可以断定是内存溢出,导致GC线程在不停进行垃圾回收,但又始终回收不了内存,cpu自然而然就上去下不来了。,打开源码可以看到,该类中确实存在一个静态的数组对象,并且提供了方法去往数组中添加。从MAT中可以看到,最终的对象是。

2023-12-05 10:04:29 1354

原创 Hutool、Forest附件上传xlsx类型文件异常

类的 buildBody 方法中进入各自实现类中,最终都会定位到相同的代码去获取MIME类型总结:hutool和Forest工具类,在上传附件时,文件的MIME类型都是通过jdk自带的contentType的映射文件来获取的。

2023-11-15 16:09:34 641

原创 修改POI源码,优化百万级大数据量Excel导出

一、问题背景 最近在做项目大数据量Excel导出时,有前端反馈响应速度很慢,基本表现为前端页面触发请求之后,过了很长时间才会在浏览器页面弹出下载文件的窗口,而且响应时间会随着数据量的递增成正比。注:目前项目中涉及Excel导出相关的基本都是使用阿里的EasyExcel,而可以了解到的是,目前主流开源的excel导出的第三方工具其底层均是基于POI这一开源框架上所做的一些API功能集成,简化操作,可以让开发人员不需要关注底层POI的操作。二、定位问题 List&l...

2020-12-01 21:04:23 2052 1

原创 Mysql-列转行(字段中多个值转换为多行)

1、借助一张id自增的mysql表,自增id为1开始,并使得存储的id值尽可能大于字段里存的值个数2、拼写sqlt_auto_id 表中 id最小值为1:SELECTSUBSTRING_INDEX( SUBSTRING_INDEX( a.scene, ',', b.id ), ',', - 1 ) AS sceneFROM`t_organization` AS aJOIN t_auto_id AS b ON b.id <= ( length( a.scene ) - length

2020-11-16 11:37:21 2392 3

原创 Datax-HdfsWriter如何实现支持Map,List,Set等符合类型数据写入

一、问题背景 之前分析hdfswriter时,看到过api支持map,list,set类型的数据写入,因此,想将其合入到datax里,使得源数据端有类似json,array等这种数据可以直接导入到hive中。二. 环境准备Datax版本:3.0Hadoop版本:2.7.3Hive版本:2.3.2三. 源码 hdfs写入时,最重要的是获取字段对应类型的ObjectInspector,因此直接从ObjectInspectorFactory类入手看:Obje...

2020-09-24 17:55:32 796

原创 Datax-Hdfs如何实现支持binary类型数据读写

一、问题背景 主要的源码思路还是按照这篇HdfsWriter如何实现支持decimal类型数据写入来,这里不再介绍。上篇说binary类型写入和读取会有坑,因此这篇主要解释一下坑的地方以及解决的办法。PS:虽说binary类型的字段写入Hive,本人没有想到对于数据仓库建设使用上有什么用处,但是本着好奇、学习的心态,就去研究了一下并集成到datax内。开头附上github地址。二. 环境准备Datax版本:3.0Hadoop版本:2.7.3Hive版本:2.3.2三...

2020-09-18 15:04:30 1350

原创 Datax-HdfsWriter如何实现支持decimal类型数据写入

一、问题背景在做Datax数据同步时,发现源端binary类型的数据无法写入hive端binary类型的字段。看了一下官网文档,DataX HdfsWriter 插件文档,发现是1年前的,不信邪,自己看源码找原因。二. 集群环境Datax版本:3.0三. Datax日志...

2020-09-18 03:33:23 3667 5

原创 SpringBoot整合Activiti7

一、背景 因工作需要,公司需要建设一个类似工单系统,想借助activiti工作流引擎来进行实现,但目前网上Spring Boot与Activiti7整合的例子都不是特别全,大多都是Activiti6居多,借工作之余学习记录一下。二、环境搭建 一开始我选择的Activiti7最新的版本 7.1.0.M6,从7版本开始,activiti开始精简了原先的旧版本的一些接口,将原先的接口方法整合了security做权限验证出了新的接口api,新的api基本在xx-runtime包中...

2020-08-26 21:04:18 2550 1

原创 DataX-Mysql主键UUID类型切分主键

一、问题背景之前公司在使用datax时,需要从rds同步数据到hive,但是数据库中的主键id是uuid类型的字符串,使用datax默认的字符串分隔方式,其实会有很大的问题,所以官方也不推荐使用。二. 分析源码跟踪底层源码最终可以定位到这个RangeSplitUtil类上public static String[] doAsciiStringSplit(String left, String right, int expectSliceNumber) { int radix

2020-08-05 23:02:36 4473 5

原创 RMI原理浅析以及调用流程

一、定义RMI: 远程方法调用(Remote Method Invocation),它支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。Java RMI: 用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识,底层是通过Socket通...

2020-04-18 22:28:54 1569

原创 Datax-Mysql同步至Hive时时区问题导致日期减少一天

一、问题背景Datax从Mysql数据库到Hive数据同步任务时,发现同步时,date类型字段同步到Hive里中string类型字段时,部分日期会减少一天。二、集群环境Datax版本:3.0三、现象描述mysql数据库时间 Hive数据库中时间 1986-07-17 1986-07-16 1987-06-26 1987-06-25 1987-12-...

2019-10-21 12:08:42 4182

原创 ElasticSearch-delete_by_query大数据量删除时,导致SocketTimeout的问题

一、问题背景最近在做ES清空指定index下的指定type类型数据时,发现在大数据量情况下删除的时候会比较慢,会超过自己设定的socketTimeout时间,需要提升性能。二、集群环境ElasticSearch版本: 阿里云 5.5.3删除的数据量大小:7000w三、原始日志可以看到日志打印时间从13:44:11-14:14:16,删除30分钟后,程序抛出sockect...

2019-10-10 20:49:30 9980 10

原创 记一次DataX-MysqlReader性能优化

一、问题背景最近在做Datax从阿里云rds数据库到Hive数据同步任务时,发现同步耗时很久,500万的数据同步配置了splitPk并配置了50个线程并发需要212s,任务同步的平均速率一直保持在3-4M/s,而本地的Mysql测试数据库同步时不分片的平均速率就能到20M/s。二. 集群环境Rds环境:8000iops; 8core; 16g内存分片字段类型:bigint类...

2019-09-12 11:31:20 11292 13

空空如也

空空如也

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

TA关注的人

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