掌握SSM、SSH、spring boot、springcloud等主流框架开发java企业级应用。
会用HTML5、CSS、JS编写网页页面;使用过vue、angular前端框架构;
会使用node进行前端开发。
熟练掌握mysql、oracle、MongoDb等数据库常规的数据操作。
经常使用第三方中间件如,zookeeper、redis、kafka、elasticsearch、MQ等构建软件系统。
项目名称:电信网页爬虫
项目描述:爬取电信各系统的网页数据,分析用户对电信产品的态度以及页面数据私密级别。
对各系统进行测评。
项目特点:springboot框架、selenium+chromedriver、MongoDb+redis
技术实现:webdriver:使用webdriver将java爬虫逻辑转译成浏览器可识别的脚本从而操作网页。将需要爬取信息的url地址放在
队列中,利用springboot定时任务定期执行爬虫代码;设置多种爬取方式如“主题爬取”,“深度爬取”,以应对多种
业务需求。
MongoDb+redis:爬取的网页内容存放到MongoDb数据库中,使用队列读取数据并进行分析,并把分析后有序的数据和分析结果存放到redis服务中。
项目心得:通过此项目初次接触到java爬虫的原理,在开发的过程中通过对复杂数据的处理加强了java基础语言的使用。
项目名称:动力环境与监控
项目描述:监控电信在全省范围内动力设备的设备环境参数,以达到实时维护的目的。
项目特点:springboot+mybatis架构、cas单点登陆、elasticsearch、canal数据监控
技术实现:cas单点登陆:动环的子服务模块众多,为了避免各系统之间的重复登陆验证。我们设置统一登陆页面,使用cas单点
认证,实现系统间的身份信任。
elasticsearch:页面需要展示设备在一段时间内的信号波动曲线,这些数据在采集时,由于数据量巨大,所以将数据存放在分布式
es服务中。使用es的java jar包进行es连接,获取设备在es中的数据,并展示。
canal数据监控:新增或修改设备采集配置和信号配置时,系统需要自动下发配置。重新采集。使用阿里的canal监控表的数据变
化,一旦发生变化,就触发设备配置下发。
项目名称: 动力设备数据采集
项目描述:连接全省动力设备,依照设备协议获取设备数据,分析并判断异常情况,发送告警。
项目特点:分布式集群、rpc通信、多线程、kafka消息队列、redis缓存、动态协议库
技术实现:分布式集群:全省17个地市,每个地市有上千设备,每个设备有数百个参数和信号。采集服务采用3个调度器,并进
行nginx负载均衡,把任务的请求下发到6个执行器中执行;
多线程:执行器内部维护一个一定数量的线程池,执行调度器下发的任务。同时设置一个和调度器做心跳测试的守护
线程,一旦执行器下线将会使任务线程挂起。
Kafka消息队列:数据采集过程中的设备故障以及设备数据分析过程中的异常需要反馈到负责人,为了解除代码的耦
合度,我们将这些异常信息发送到kafka消息队列中,以发布订阅的方式推送。同时为了确保kafka服务的高可用性,
采用了3个kafka节点进行主从切换。
Redis缓存:数据的处理是本项目的核心,为了避免数据存入数据库带来频繁的io等待,我们将数据存放到具有百万
级别并发的redis缓存中。采用了redis sentinel集群模式进行主从切换以应对节点掉线时的故障迁移。