jenkins打包工具

apollo配置中心

eurake注册中心

redis

rabbitmq消息队列

收获

日期判断

贷后要对数据文件进行接收处理落库,那么各种日期和各个跑批任务的架构联动顺序都是很重要的,一定要关注文件日期,数据日期和跑批日期等的差异。

判断重跑

贷后跑批任务不可避免的要进行重跑,所以保证程序以及数据库中数据的幂等性就很重要了。我采用的方法比较粗暴,在进入跑批程序开始,首先从redis获取当前任务号taskNo的跑批标志的值`String isRerunFlag=redisTemplate.opsForHash().get("isRerunFlag",taskNo);
,判断这个跑批标志和当前跑批时间taskDate是否相等if(taskDate.equals(isRerunFlag)):如果相等则代表重跑,清空正式表,把备份表的数据还原到正式表;如果不相等则代表今日首次执行,把备份表清空,把正式表的数据插入备份表,再设置重跑标志redisTemplate.opsForHash().put("isRerunFlag",taskNo,taskDate);`

远程调试

在启动jar时加上远程调试的命令:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=50055或者
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50055这两种jdk版本不同,但两种配置都可用。
在idea编译器中添加一个remote的环境配置,主机和端口就填服务器上的主机和端口就可以远程调试了,注意jar包的代码一定要和本地项目中的代码一样。

小的心得

代码一定要写的整洁干净,从一开始就把整体结构搞好,可复用性就强。代码注释要写好,异常该捕获就捕获,日志也一定要打。
各种随业务会变动的配置不要写死,写在数据库里,从数据库中读取是更方便的做法(因为换版时只需要刷sql)