Spring Boot整合DataX同步数据
我们系统的基础数据存放在EBS
中,的有个基础数据同步功能,因为变化频率比较低,所以采用定时加手动的方式同步,每日凌晨三点由ETL工具同步到我们中间表,然后存储过程再处理数据。手动则是程序调用Kettle
脚本同步数据到中间表没然后执行存储过程。刚开始上线时,量较小,也就几万条数据,手动同步比较快,越到后期,数据量逐渐增多,达到一百多万的基础数据,通过Kettle
同步一次得花十多分钟。业务方实在无法忍受,要求我们必须优化。
我们系统的基础数据存放在EBS
中,的有个基础数据同步功能,因为变化频率比较低,所以采用定时加手动的方式同步,每日凌晨三点由ETL工具同步到我们中间表,然后存储过程再处理数据。手动则是程序调用Kettle
脚本同步数据到中间表没然后执行存储过程。刚开始上线时,量较小,也就几万条数据,手动同步比较快,越到后期,数据量逐渐增多,达到一百多万的基础数据,通过Kettle
同步一次得花十多分钟。业务方实在无法忍受,要求我们必须优化。
作为CRUD程序员,大部分Java开发者应该都在用Mybatis Plus
来操作数据库。但是BaseMapper
默认仅提供了int insert(T entity)
这个单条插入的方法。那么我们想批量插入数据该怎么办呢?
最近业务给咱们开发同事提了一个很简单的需求-生成小程序码,同事可能是平时写CRUD写多了,听到是不熟悉的领域的东西就觉得有些头大,便来问我如何实现,我说:“这个得看官方说明文档了,然后调接口实现。如果觉得麻烦就找开源组件直接引用即可,比如WxJava
”。可能是我表述得不够清楚,同事依然一脸懵逼,感觉甚是复杂。
在Go语言中,在实例化时候对象时,有时候会看到new
和make
这两个关键字,那么它们俩有什么区别呢?都是在什么情况下才会用到这个两个关键字呢?
我们都知道,Go里面的interface{}
是用于定义接口,但是它除了定义一组接口外,还可以作为一种类型使用,这类型可以是任意类型。
Go语言中的类型断言,一般用于类型转换,但是这类转换是有限制的
RocketMQ安装有两种方式,一种是源码安装,一种则是直接下载binary
版本进行安装,我为了省事,便选择了后者
每个人都希望自己的代码是0Bug,上线后一直平稳,也不会出现任何问题,但是事与愿违,当我们的代码部署上线,可能会因为代码Bug,或者其他甚至表面上看起来显得莫名其妙的原因而爆出异常问题。为了搞清楚这些问题的原因并解决掉,我们需要借助一些工具、手段去分期现象背后的起因。由于年纪比较大,记性是越来越不行,故有此记。
作为Java开发者,大部分人应该都知道arthas
这款神奇,不得不说,这工具确实为我们在诊断Java程序时带来了莫大的便利。一般我们在诊断进程时,是采用独立的arthas
jar文件,attach
进程的方式来运行。官方其实还给我们提供其他的用法,这里,我们就来尝试集成到应用程序中。
说到图片压缩,大部分人应该都知道tinypng
这个在线图片压缩工具,不得不说,这货的压缩质量还挺不错的。而且,我也经常用到它。前几天,我要压缩几张自己的照片用于电子请柬,不想把这些私有图片上传到别人的网站上,就想着找个开源的。最终还真找到一个非常不错的开源图片在线压缩工具-squoosh