1.熟悉JAVA,具备扎实的编程基础,具有良好的编码习惯。
2.熟练使用SSM(spring+springMVC+mybatis)框架
3.熟悉SpringBoot框架,自动配置原理,自定义starter。
4.熟悉Redis五种数据类型,key淘汰策略、哨兵模式、主从复制。
5.熟悉MySQL索引结构、MySQL引擎、SQL优化、锁问题、并发参数调整。
6.熟悉StarRocks数据模型、物化视图、BitMap索引
7.熟悉SpringCloud常用组件:Eureka、Consul、Ribbon、OpenFeign、Hystrix、GateWay、Config
8.熟悉RabbitMQ五种工作模式、消息可靠性投递、TTL、死信队列、消费端限流。
9.熟悉ElasticSearch结构、选举机制、索引流程、集群部署、参数优化。
10.熟悉常用设计模式:工厂模式、构建者模式、策略模式等。
11.熟悉JVM内存内结构,垃圾回收算法,常见字节码指令。
12.了解SpringCloud Alibaba相关组件:Nacos、Sentinel、Seata。
13.了解Zookeeper数据结构、分布式锁、leader选举流程。
14.了解flink
项目一:大数据实时报表分析平台
基于一百多张业务表,上百家企业,千万级别数据的实时报表分析平台,通过配置统计值,统计维度,以及筛选条件,用户能够自由配置动态生成报表以及数据仪表盘。同时用户可以自定义统计值,多统计值之间可以参与实时计算,并支持数据穿透。没有缓存的情况下,上百个统计值,百万级数据量单次查询可在3s内返回结果。
主要是将mysql业务数据库中的数据同步到数仓中。同步分为增量同步和全量同步,其中首次同步需要全量同步数据,采用DataX将mysql数据灌入数仓中。后续通过flink监听mysql的binlog日志将数据实时同步到数仓中。最后通过数仓查询生成报表数据。查询报表主要分为几个步骤,配置读取,维度查询,聚合数据查询,自定义字段计算,跨列合并,数据格式化。首先读取报表的维度和字段配置信息,根据配置信息查询维度数据,然后将将聚合数据根据维度列逐个查询,查询过程中会将自定义计算字段参与计算,然后将所有聚合统计值以及自定义字段根据维度进行跨列合并,接着根据数据格式配置对报表数据进行格式化处理,最终生成数据报表、仪表盘。
项目二:苏州公安互联网防线系统
本项目以SpringBoot为基础架构,RabbitMQ作为消息队列,Redis作为缓存,使用MyBatisPlus作为持久层框架,通过SpringSecurity做用户权限控制。
主要包含任务管理、消息通知、战果上报、积分管理,用户管理等功能模块。主要功能是根据个人身份证号、手机号、姓名等信息查询嫌疑人关于金融、生活、司法、出行、通讯方面的相关数据。也可以根据企业名称和企业信用代码查询企业司法相关信息,民警还可以根据手机号对嫌疑人进行出行布控,当嫌疑人通过网约车出行会发出预警定位嫌疑人位置,最后将数据进行整合生成研判报告。
其中查询的数据源主要分为三类:API接口、RPA机器人、FTP文件。RPA是流程自动化技主要原理是通过机器人爬取客户端、网页中的数据。所有的机器人通过控制中心统一管理调度。每个机器人通过控制中心对外提供接口调用。
FTP形式的数据源通过定时器对文件目录进行监控。根据网络环境的不同,数据源又分为公安网数据和互联网数据,公安网数据可以通过服务直接访问,互联网数据源通过Oracle数据库通道将请求参数、文件传递到外网。由外网前置服务发起请求,最终将结果通过Oracle回传到公安网,通过请求id绑定每一笔任务。异步数据则通过回调的形式获取返回结果。
同时打通了昆山市局服务调用,以苏州市局为主线,管理昆山和苏州市局。通过数据中台接入数据源,可视化界面配置数据源,实现统一管控。
项目三:中台产品
该项目是一个数据中台的项目,使用spring cloud 微服务框架,consul为服务注册中 心,以rabbitMq为消息队列,redis为缓存,其中的每个微服务都通过docker进行部署,通过 Feign进行服务间的通信调用,使用GateWay作为网关,ELK作为日志存储和搜索分析引擎。主要功能是实现API接口可视化配置以及数据库转API接口的功能,实现接口标准化管理。
API接口可视化配置主要将API接口入参、url等信息配置在服务中,对外暴露服务调用,实现API接口标准化管理。通过服务调用API接口流程如下:首先获取调用方信息,然后对黑白名单进行判断,黑白名单校验通过后会判断服务是否可用,如果服务可用接着对接口进行鉴权,鉴权通过后会对服务参数进行校验,然后进行限流处理,如果超出限流阈值会返回异常信息,等一段时间过后重新恢复调用。接着加载缓存中的数据,如果缓存中存在结果则直接返回,否则加载需要执行的外源信息,然后对外源参数的合法性进行校验。校验通过后,根据配置的参数映射规则组装请求参数后请求外源获取返回结果。根据配置的计算规则对结果进行计算解析,调用后存储调用外源记录,根据配置的状态码映射外源返回状态,最后记录调用日志。
数据库转API主要是通过将数据库中的零散数据通过代码实现在界面上的可配置化的数据抽取,将数据抽取出来形成可直接调用的接口,并将接口提供给外部调用 首先通过配置得到数据库连接,然后允许通过对数据库中的信息进行接口配置,接口配置, 首先需要配置外源信息,外源信息主要是对调用服务提供的调用信息,配置好外源之后,可以自动生成外源相对应的服务接口信息。其中接口的配置分为可视化和自定义SQL,两个部分,可视化的话,是通过可视化界面使客 户能够通过简便的方式直接在界面上面对自己需要的表和数据字段进行选择,选择完毕之后,这 些在后端代码中会将其组装为SQL语句去调用执行。
自定义SQL部分的话,主要是提供给专业人员 的SQL使用的,在SQL中通过指定语法的参数替换,然后在代码中的SQL解