国王小组:搭建交易所开发完整的Spring Cloud框架

简介: 关于SpringCloudSpring Cloud是一个有序的框架集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发方式完成 一键启动和部署。Spring Cloud并不重复制造车轮。它只是结合了各家公司开发的成熟实用的服务框架。通过Spring Boot风格的重新封装,屏蔽了复杂的配置和实现原理,最后给开发 作者留下了一套简单易懂、易于部署、易于维护的分布式系统开发套件。一般来说,一个完整的Spring Cloud框架应该是如下图所示。

关于SpringCloud
Spring Cloud是一个有序的框架集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发方式完成 一键启动和部署。Spring Cloud并不重复制造车轮。它只是结合了各家公司开发的成熟实用的服务框架。通过Spring Boot风格的重新封装,屏蔽了复杂的配置和实现原理,最后给开发 作者留下了一套简单易懂、易于部署、易于维护的分布式系统开发套件。一般来说,一个完整的Spring Cloud框架应该是如下图所示。
image.png
如果你对Spring Cloud不熟悉,可以先简单了解一下Spring Cloud的相关教程,这样你再回来看这个项目,就会比较容易上手。需要提醒的是,由于Springcloud框架图是一个完整的架构,为了让开发和部署更快,我们会在开发过程中适当裁剪一些内容,所以会有一些差异。

关于匹配交易引擎
系统的交易队列采用内存匹配,Kafka用于匹配订单信息传输,MongoDB持久化订单交易细节,MySQL记录整体订单交易。其中,01_Framework/Exchange项目主要负责内存匹配,01_Framework/Market项目主要负责订单交易持久化、行情生成、行情推送等服务,包括。

K线数据,间隔时间为。1分钟、5分钟、15分钟、30分钟、1小时、1天、1周、1个月
所有交易对的市场深度数据
所有交易对的最新价格
最近成交的交易对
内存匹配交易所支持的模式

限价单和限价单的匹配
匹配市场订单和限价订单
限价单与市价单的匹配
匹配市场订单与市场订单
限价单和市价单处理逻辑

image.png
注意:这张图片是很久以前的,最新代码中的逻辑更加复杂

匹配引擎支持的其他功能

除了普通的限价和市价的匹配功能外,本系统的匹配交易引擎还引入了主动交易模式。通过设置交易开始时间、初始发行量、初始发行价、交易对的活跃度(如BTC/USDT)模式等参数可以制定丰富的匹配交易模式,满足不同的匹配模式。

例如

交易所预计在2020年8月8日12:00:00推出交易对AAA/USDT,但作为一个新推出的货币,没有活跃度怎么行?项目方或交易所决定拿出10000个AAA,价格为0.0001USDT(市场价:0.0005),供大家抢购。系统支持这种活动的设置。

另外,如果项目方或交易所决定拿出1万个AAA以0.0001USDT的价格发行,我不希望大家抢购,而是希望所有充值USDT的用户都能平均分到1万个AAA。这个系统也支持这个活动的设置。

综上所述

n总之,本系统支持高度自定义的匹配模式。同时,你也可以开发自己的匹配交易模式,只要修改Exchange项目中的匹配逻辑即可。

关于技术构成
后台开发:Spring、SpringMVC、SpringData、SpringCloud、SpringBoot
数据库:Mysql、Mongodb
其他:redis、kafka、Ali OSS、Tencent Captcha
前台:Vue、iView、less

相关文章
|
1月前
|
XML 安全 Java
|
11天前
|
人工智能 前端开发 Java
Spring AI Alibaba + 通义千问,开发AI应用如此简单!!!
本文介绍了如何使用Spring AI Alibaba开发一个简单的AI对话应用。通过引入`spring-ai-alibaba-starter`依赖和配置API密钥,结合Spring Boot项目,只需几行代码即可实现与AI模型的交互。具体步骤包括创建Spring Boot项目、编写Controller处理对话请求以及前端页面展示对话内容。此外,文章还介绍了如何通过添加对话记忆功能,使AI能够理解上下文并进行连贯对话。最后,总结了Spring AI为Java开发者带来的便利,简化了AI应用的开发流程。
201 0
|
11天前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
7天前
|
Java 开发者 Spring
理解和解决Spring框架中的事务自调用问题
事务自调用问题是由于 Spring AOP 代理机制引起的,当方法在同一个类内部自调用时,事务注解将失效。通过使用代理对象调用、将事务逻辑分离到不同类中或使用 AspectJ 模式,可以有效解决这一问题。理解和解决这一问题,对于保证 Spring 应用中的事务管理正确性至关重要。掌握这些技巧,可以提高开发效率和代码的健壮性。
34 13
|
18天前
|
XML JSON Java
Spring Boot 开发中常见的错误
本文总结了 Java 开发中常见的几个问题及其改进方法,包括:1. 过度使用 `@Component` 注解;2. `@ResponseBody` 注解的错误用法;3. `@Autowired` 的不当使用;4. `application.properties` 管理不善;5. 异常处理不当。每部分详细解释了错误情况和建议的改进方案,并提供了相应的代码示例。
47 11
|
19天前
|
IDE Java 测试技术
互联网应用主流框架整合之Spring Boot开发
通过本文的介绍,我们详细探讨了Spring Boot开发的核心概念和实践方法,包括项目结构、数据访问层、服务层、控制层、配置管理、单元测试以及部署与运行。Spring Boot通过简化配置和强大的生态系统,使得互联网应用的开发更加高效和可靠。希望本文能够帮助开发者快速掌握Spring Boot,并在实际项目中灵活应用。
36 5
|
17天前
|
前端开发 Java 开发者
这款免费 IDEA 插件让你开发 Spring 程序更简单
Feign-Helper 是一款支持 Spring 框架的 IDEA 免费插件,提供 URL 快速搜索、Spring Web Controller 路径一键复制及 Feign 与 Controller 接口互相导航等功能,极大提升了开发效率。
|
29天前
|
缓存 Java 数据库连接
Spring框架中的事件机制:深入理解与实践
Spring框架是一个广泛使用的Java企业级应用框架,提供了依赖注入、面向切面编程(AOP)、事务管理、Web应用程序开发等一系列功能。在Spring框架中,事件机制是一种重要的通信方式,它允许不同组件之间进行松耦合的通信,提高了应用程序的可维护性和可扩展性。本文将深入探讨Spring框架中的事件机制,包括不同类型的事件、底层原理、应用实践以及优缺点。
64 8
|
23天前
|
XML Java 数据格式
Spring Boot 开发中的常见失误
本文深入分析了Spring Boot开发中常见的失误,包括不当使用@Component、@ResponseBody、@Autowired注解,以及不良的异常处理和日志记录实践,提供了有效的规避策略,帮助开发者提升代码质量和系统性能。
|
3月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
256 2