1、熟悉JAVA,熟悉集合、JUC等知识;
2、熟悉JVM内存结构,类加载机制,垃圾回收等知识;
3、熟悉MySQL数据库,Redis数据库,了解非关系型数据库MongoDB;
4、了解消息中间件RabbitMQ和全文搜索引擎Elasticsearch并能够使用;
5、了解Spring IOC、AOP机制,了解SpringBoot自动装配原理;
6、了解docker,熟悉git和基本的linux命令。
项目名称:某单位数据采集系统
项目概述:该项目通过消息队列和缓存机制控制爬虫端来实现了对多个目标网站的文本数据采集,将采集到的数据进行持久化,并实现了对数据的快速检索、数据分析(维度分析、热度分析、词频统计)等功能。
主要工作:
1、架构设计:根据架构设计原则,将项目整体架构划分为用户控制域、中央控制域、数据存储域、爬虫通信域、爬虫执行域、爬虫数据清洗域和数据分析域;
2、用户权限控制:主要分为单点登录和权限验证,基于JWT+Redis+MySQL;
3、快速全文检索:将采集到的文本信息存入MongoDB进行持久化,并将MongoDB数据通过Monstache导入ElasticSearch中,实现快速全文检索;
4、数据分析:在第三点的基础上,对采集到的数据进行处理,包括增删改查和聚合统计等操作,利用MongDB聚合操作实现热度分析、维度分析等功能;
5、数据同步:为了满足用户在不同场景下对数据一致性的需求,通过设置双源MongoDB实现远程服务器到本地服务器的数据同步;
6、双端通信:实现后端服务器对爬虫脚本的启停,通过使用RabbitMQ+Redis的方式,并且后期优化了双端的通信流程。
角色 | 职位 |
负责人 | 后端开发工程师 |
队员 | 后端工程师 |