项目名称(一):FICC 交易通系统【2019.03 – 至今】
使用的主要技术:
1. 采用 Dubbox+SSM(Spring+SpringMVC+Mybatis)搭建分布式应用。
2. 系统界面设计使用的是 easyUI 框架技术,页面传值使用标签技术及 Ajax 等。
3. 登录模块使用 CAS 与 SpringSecurity 组合技术,实现多节点的登录和验证功能,加密使用 MD5 算法。
4. 使用 Spring 声明式事务管理事务,连接池采用 C3P0、事务管理器为 DataSourceTransactionManager。
5. 使用 Mysql 数据库,存储引擎选择默认的 InnoDB 引擎。采用 Mycat 进行数据库分库分表操作。
6. 采用 SpringDataRedis 的 Zset 数据结构存储牌价信息。使用“心跳检测”技术监控牌价信息。
7. Spring 整合消息中间件 Kafka 进行数据价格的接收、询价和报价等,并对消息进行 JDBC 持久化操作。
8. 搭建 Nginx 集群环境,配置负载均衡与反向代理,保证项目在高并发下能够正常运行。
9. 使用模板模式设计签约模块、观察者模式设计询价模块、桥接模式设计产品模块,多处使用工厂模式等。
10. 通过 SpringTask 轮询挂单交易,利用线程池管理线程进行签约,并使用线程封装技术对共享数据进行处理。
功能模块描述:
1. 牌价模块:实时接收市场牌价,对放入缓存的牌价进行超时检测并通知用户,并根据市场推送的“标准期限” 价格,通过“两点式方程”算法计算非标准期限的价格等;
2. 外汇模块:根据实盘价格,发起即、远、掉签约交易。根据客户等级与金额取对应升贴水和授信,当为询价交 易时,需要通过消息总线向报价引擎询价。交易落地时需向核心发送账务信息,并对发送失败的账务信息进行 晚间批量发送。同时将交易信息异步发送 Murex 系统,价格需要进行拆分。对保证金和授信进行释放等;
3. 外汇存续期模块:对交易的远、掉交易进行特殊事件处理,根据客户需求可进行违约、提前交割、原价展期、 市价展期、强平、宽限等特殊处理。
4. 保证金与授信模块:实现部分与整体的增补与释放,以及根据保证金金额和风险因子进行估值与套查功能。
5. 账务模块:对所有的签约及特殊交易事件配置账务规则,根据客户号、机构、货币对等要素组装账务明细。对 金额的正确性要求极高,此模块不断进行代码走查、优化和重构,是系统最核心的模块。
6. 统计模块:统计未交割金额、已反平金额、展期金额、交割金额、损益金额等根据客户、机构进行结算。
职责描述:
1. 作为外汇模块的负责人,根据《用户需求说明书》分析用户需求并完成《软件需求规格说明书》。设计软件功 能和实现技术、算法和设计模式,完成《详细设计说明书》初稿。并对开发人员进行外汇业务培训。
2. 搭建 SSM 架构和 Redis、Kafka、Nginx 等开发环境,对服务地址等重要信息整理成数据字典,放便查阅。
3. 阶段性组织同事参加晨会,对开发进度和遇到的问题进行答复。每周举行周会对《项目开发计划》进行调整。
4. 根据开发计划完成核心模块开发,解决同事遇到的业务和技术问题。走查同事代码,整理存在缺陷与可重构代 码,并给出优化方案。整理外汇模块的应急卡片和参考学习文档。
5. 组织同事之间进行技术交流培训,并根据公司规范编写培训文档和视频录制,方便后期工作的交接和维护。制 作的 Redis 培训文档被评为优秀文档并纳入月刊和学习资料中。
项目名称(二):网银系统【2018.03 – 2019.02】
使用的主要技术:
1. 使用 Netty 与量化系统进行通信。并使用 Thrift 作为数据的编解码框架,实现跨语言的通信。
2. 采用 SpringBoot 进行单模块开发,嵌入 Tomcat 做为 Web 容器,与阿里大于整合实现短信通知等功能。
3. 使用 SpringCloud 搭建分布式架构,消息总线、分布式配置中心、负载均衡等技术对微服务进行管理。
4. 采用 Kafka 作为中间件,并与 Spring Cloud Bus 进行整合使用,降低与外部系统的耦合。
5. 使用 Mysql 数据库作为关系型数据库、Redis 作为非关系型数据库存储数据。使用 Spring 整合数组库中间件 MyBatis 进行数据操作,通过 MyBatis-Generator 逆向生成工程文件。
6. 使用 Git 进行版本管理、Freemarker 实现网页静态化、线程池管理多线程、有界阻塞队列存放消息、Docker 解