建行大学(建设银行内部项目)-https://u.ccb.com/
1. 使用SpringMVC框架来实现模型层、视图层、控制层的管理,提高藕合。过滤器过滤不安全访问,拦截器对请求进行TOKEN权限校验。
2. 使用Spring框架的内置注解和IOC完成对象注入管理和容器管理。通过AOP切面来实现日志和异常管理。
3. 使用AKSK校验来保证和第三方接口交互的安全性问题,同时可以结合拦截器和AOP切面统一对需要AKSK校验的接口进行管理。
4. 使用SpringBoot框架和框架内部自带的tomcat进行快速开发,结合Maven对lib包的管理,将需要使用的pom文件依赖构建进来,提高开发效率。
5. 简单业务使用SpringDataJPA或MybatisPlus来实现JDBC的交互、复杂业务使用Mybatis实现JDBC的交互。
6. 由于项目庞大,功能模块较多,使用SpringCloud来进行微服务管理,每个模块单独分为一个服务,这样服务之间用过Feign外呼或者HttpClient交互,保证模块之前尽可能的藕合,不用相互影响,利于维护。
7. 通过SpringBatch和XXL-JOB来实现分布式数据批处理,保证数据处理的有效性和安全性。XXL-JOB的图形化可配置界面更利于定时任务的维护及管理。
8. 通过Druid结合Mysql和Oracle来生成数据库连接池,保证多数据源的使用性,Druid的管理界面还可以查询每个SQL的日志管理,方便问题跟踪。
9. 使用Nacos完成分布式服务注册和配置管理,开发人员可以根据不同的开发环境对应不同的配置信息,方便多环境开发,提高开发效率。比如application-dev.yml、application-sit.yml、application-prod.yml。
10. 使用Redis做数据缓存处理,减轻数据库的访问压力,防止高并发。做好Redis数据有效期的设置和布隆过滤器的设置,防止大批量失效或访问到空的情况导致缓存穿透、缓存雪崩等情况,Redis数据备份采用AOF和RDB的双模式,保证备份数据能快速恢复的同时数据还具有的完整性。通过Redis Cluster实现分布式集群,节省内存。
11. 对于部分功能通过RabbitMQ进行异步处理,减少接口返回等待时间,提高接口响应效率,比如用户登录的时候需要给这个用户增加积分并发送短信,那么在校验用户登录成功的时候就可以异步调用消息队列来执行增加积分和发送短信的功能,然后直接返回接口,不用等待异步的操作。采取ACK手动确认的形式防止队列没有被成功消费,同时判断执行唯一编号来判定重复消费的行为。编写config配置类的时候实行消息持久化。
12. 通过Flyway做数据脚本管控,保证SQL执行的安全性和可追溯性,同时也能保证数据库的安全性,防止员工私自在堡垒机直接执行未验证的SQL语句, 防止数据库崩坏导致不可用。
企业内部管理
金融