公司做了大型分布式现货交易系统,包括各种体系,其中涉及的技术需要深入研究下。
其中我负责,整体系统中,最核心的账户体系部分设计、架构以及整体细节实现。
一、技术方面:
1、分布式协调方面:
zookeeper
redis
2、持久化方面
分布式缓存redis
数据持久mysql
3、系统通信方面
dubbo
netty(行情系统使用)
okhttp(http通信使用)
rocketMq
4、系统搭建方面
spring,mybatis,spring boot
5、其他
jwt,高并发,分布式任务
二、业务方面:
注册签约流程:
1、注册
2、签约
支付流程(三方支付):
1、出金
2、入金
盘后交易流程:
1、认购
2、配购
3、盘后非交易过户
4、提货
盘中交易流程
1、委托
2、撮合
3、成交
4、撤单
交易所盘中状态修改流程
1、出入金状态
2、交易挂起释放状态
3、账户锁定状态
4、开市闭市状态
盘后结算流程
盘后内部对账流程
盘后外部对账流程
三、数据流转方面
1、普通用户资金数据流转
2、普通用户持仓数据流转
3、平台资金数据流转
总结:涉及业务的具体细节不方便说了,就当给自己记个流水账。但是涉及的技术,自己总结并且写出来。
收货:
技术上,就是上面写的的那些
业务上,现货交易,金融系统,三方支付等业务
运维上,包括linux系统部署调试等,shell简单的编写。
开发工具,原来一直是eclipse,现在转idea了
吐槽:如果只是上面这些治标不治本的提高,那岂不是很low,呵呵
思维上,
整体流程思维模式,即在编写代码时需要对本系统业务进行考虑,相关业务需要通盘了解并确定是否有涉及。
高度思维模式,即跳出本系统,因为大型交易系统数据量大,流转复杂,涉及到的系统很多,通信方式也不同,所以需要考虑是否涉及其他系统,对整个交易体系进行思维。
无死角思维模式,即对于思维的业务线,不可中断,中间不可以有任何不明确或者任何不清除的死角。
代码上,
对于try/catch的敏感性提高,对于消息队列的业务去重敏感性提高,对于redis读取写入以及分布式缓存设计上,查询维度上敏感度提高,对于面向对象即抽象业务提取思维敏感度提高,对于其他代码的整洁度敏感性提高。对于订阅消息造成的高并发处理敏感度提高。对于重要代码部分埋点日志填写敏感度提高。
在沈阳这个技术相对发展较差的地方,还不错,收获颇丰,再接再厉,自在极意功分很多阶段,其实还差很多,有自知之明,继续吧
再次吐槽:技术人生首先是要有前瞻性眼光,现在貌似人工智能很火,我是跟风呢?还是继续跑java呢?其实java还没跑明白呢