项目背景: 本项目开发一套金融舆情风控系统,作为量化交易模型的前置过滤器。系统需要在买入股票前,自动扫描该股票相关的公告/新闻标题,判断是否存在负面/利空信号,帮助规避风险。 任务范围: 金融文本分类。对公司公告/财经新闻标题进行标注,判断其是否包含负面/利空信息。通过关键词规则库提取具体风险类型(监管处罚、ST/*ST、债务违约、业绩暴雷等),
1:tcp实现bio服务器,客户端 2:tcp实现nio服务器,客户端 2.1:nio实现http服务器 3:udp实现服务端,客户端 4:netty实现, 5:springboot整合websocket实现服务器长连接
国内最优秀的JAVA开源量化交易平台,能平替文华、MC、金字塔。具备历史回放、策略研发、模拟交易、实盘交易等功能。兼顾全自动与半自动的使用场景。
1定时任务springTask,Quartz,elastic-job,xxl-job等 2:redis管道技术 3:线程池技术,spring中的 ThreadPoolTaskExecutor, ThreadPoolTaskScheduler 4:zookeeper的分布式锁, 5:feign 6:序列化的对比ProtostuffUtil序列化,JdkSerializeUtil,jdk序列化,
consul,nacos config+bus,apollo,nacos ribbon hystrix,sentinel feign gateway bus stream slueth+zipkin
mq在消费侧幂等性: 1:通过在发起的时候加上一个redis的key,消费侧删除,这样就不会导致重复消费了 2:再通过mysql再检查一遍是否重复,双重保障 代码跑步起来,核心看思路
幂等性 分布式锁 redis分布式锁, 1:单节点redis分布式锁, 2:redisson实现单节点分布式锁,解决了锁续期,节点同步,不可重入等问题 3:redissonRedLock实现集群的分布式锁
zookeeper分布式锁的原理和实现 1:通过低效锁实现,但是低效锁会产生羊群效应 2:通过高效锁,解决羊群效应 3:通过redis防重,mysql防重和zk分布式锁防重等,避免多次扣减库存情况 这个工程没有调试,因为zookeeper不能连上,可能是因为依赖包版本不匹配的问题
数据隔离的starter的编写 1:包括mvc的拦截器隔离 2:feign的传递染色体标记 3:hystrix传递染色体标志 4:jdbc数据源隔离 5:redis的数据源隔离 6:rabbitmq的数据源隔离 7:mock接口数据隔离 8:零侵入方案,通过做starter来实现
服务器幂等 1:select+防重表+insert表 ,保障insert幂等 2:mysql乐观锁(update+version) 保障update幂等 3:使用http接口的token保障接口幂等
3:spring整合elastic-job任务调度 4:创建elastic-job的springboot-starter的模块 5:项目:处理过期订单,统计前一天每一小时的任务总数 6: 项目: 制定自己的分片策略ZhzJobShardingStrategy和配置springboot的注解 7:项目: elastic-job的拦截器 8:项目:开启失败转移,执行失败了,会转移到其他节点重新执行