总结

关于在公司的第一个项目 做个总结别让自己忘了
这个项目是一个后台处理项目做的是二期,把一期的坑填了好长时间,数据量一年大概在2亿以上,所以在一期基础上加入了ES查询以提高查询效率
项目用的技术springcloud,mybatis,redis,mq,nginx,es ,Maven
简单来说项目是一个消息处理系统,上游每天凌晨会把数据推到数据库 ,系统通过扫描得知数据库有新数据会进行获取数据进行处理,从而将数据接入公司平台(短信/彩信/微信/APP)进行推送

技术搭建

redis(2*2*2)
	rabbitmq
	nginx

负责模块

因为是二期项目并没有推倒重做所以是在一期基础上修改的。
在二期我主要负责补发的模块(单张补发,当日补发,分红补发且只针对短信进行补发)从抽取数据组装发送接收回执一套进行了新建
发送短信会有失败的概率(有用户的原因也有上游推的数据的原因)所以需要进行补发
补发主要涉及从数据库获取发送失败的数据。单张补发会在页面要求用户填入新的手机号并对手机号进行校验从而进行补发;当日补发对当天发送失败的数据进行补发从而进行再一次的发送;分红补发仅针对某项数据源通知的发送失败的数据进行补发(分红补发会去核心库对客户更改后的手机号进行匹配获取最新手机号进行发送)
我负责的补发推送模块;当接到补发模块推送过来的数据时首先会对数据进行校验(手机号的黑名单,短信内容的过滤重保证同一手机号同一条短信一天内只能发送一次)最后再执行发送
推送用了MQ消息队列将数据先放入MQ消息队列等待消费,消费时会将数据放入数据库留痕并改变其发送状态通过Nginx转发请求将数据发送至公司平台
接收回执 公司平台发送完短信后接收到当条信息的回执时会将当条信息的回执发送到服务器放在Rabbitmq队列,当消费端扫描发现后会将回执保存到Redis,慢慢进行处理从而根据回执信息更改数据库信息发送状态
我还负责了像是统计发送量,处理效率,发送效率等功能
优化这方面主要负责了ES的查询,导出,同步数据等。
主要问题是ES不支持分页所以将数据从ES查询出100条放入Redis来进行分页处理

技术问题

JAVA定时器的使用
HTTP长链接与短链接的问题
POI导出EXCEL表头合并
JAVA文字输出为图片
JAVA工作流Workflow