开发语言:java
框架:spring、springmvc、springboot、hibernate、mybatis
中间件: rabbitmq、kafka
数据库:MySQL、SqlServer、MongoDB、Redis
版本管理、文档和自动化部署工具:Svn/Git/Jenkins
单元、性能测试:Junit、Jmeter
服务器 : Linux常用操作,基本的 Shell 脚本编写
绿洲告警项目:
该项目主要功能:
通过rabbitmq接收设备侧的消息或者经另一个项目处理过的设备侧消息,判断该消息是否达到用户设置的告警条件,若是达到告警条件,则将该消息生成告警信息通过短信、邮件推送给该用户的子用户。
该项目应用到的技术组件:
MongoDB进行数据存储,存储用户设置的告警策略(比如CPU、内存的阈值,AC、AP的多少分钟上报多少次算一次告警等)、AC、AP告警消息(需再达到告警后进行统计聚合),用户需推送策略(哪些子账号,其接收方式,接收地址等);
Redis进行中间数据存储和做缓存使用,缓存用户的各个告警策略,AC、AP的中间数据,项目是分布式的,用到Redisson分布式锁;
rabbitmq作为消息传输通道,接收告警消息,经过处理后的AC、AP告警信息放到消息队列,之后进行推送。
项目大致实现方案:
该告警项目中告警类型多达20种类型,有些类型告警消息只需直接存储,有些类型需要存储并发送给子账户,cpu、内存类型告警消息需要与用户的告警设定值比较判断其是否达到告警,若达到告警则进行推送,AC、AP两种告警消息需要存储到Redis中,具体是将两种消息存到RScoreSortedSet(Redisson中的一种集合,可以按分数排序,此处分数是,消息中的告警时间),之后开启定时任务去轮询RScoreSortedSet中的AC、AP两种告警消息,取出达到告警策略中设置的时间的消息,放入消息队列中进行推送。推送时需对消息进行加工调取推送项目进行推送。
探针数据上传微软云项目:
该项目主要功能:
该探针微服务通过rabbitmq接收不同用户的探针消息,经过处理后写入本地,然后上传到微软Azure云存储中,中间为用户生成访问微软云存储的SAS秘钥,用户可通过SAS秘钥访问其微软云上的文件并下载。
该项目应用到的技术组件:
MySQL存储用户的微软云访问秘钥,通过JPA的简单接口进行增删改查;
Redisson用作分布式锁,上传文件时有一个追加内容过程此处需要加锁。
项目大致实现方案:
该项目通过rabbitmq从消息队列中接收探针消息,提取需要字段进行拼接存入一个阻塞队列,另外开启一个定时任务每分钟倒出阻塞队列中的数据写入本地文件,当阻塞队列满了的时候,也将数据倒出并写入本地,文件写入本地后,将文件path存入另一个阻塞队列,开启一个定时任务没两分钟将对列中的path1倒出,根据path将文件压缩并上传到微软云中。