畅购商城swagger文档如何搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了畅购商城swagger文档如何搭建相关的知识,希望对你有一定的参考价值。

参考技术A 利用代码直接生成规范文档的工具。
Swagger是规范RESTful API服务的语言或者说工具,不仅可以用来定义接口,还可以测接口,一举两得。


Swagger的规范文档是用yaml文件或者json文件来表述的。

首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”

高薪就业一直是黑马的标签,而高薪就业的核心就是项目。


要说19年什么项目最火,非畅购莫属了。畅购作为大型微服务框架B2C商城,电商行业拥有最多、最实用的行业技术解决方案,在深圳JavaEE老沈和6老师的共同研发下,畅购全面普及,应用到课程,获得全国的学生一致好评。


少年,你们以为到此止步了吗?NO!


为了让学子在职场上更具竞争力,保障行业技术领先优势,保证课程与企业技术无缝接轨,深圳黑马JavaEE继畅购项目之后又一力作--《智牛股》,下面我们全面了解一下智牛股项目:



PART 1


项目介绍

基于Spring Cloud Alibaba微服务解决方案,采用分布式架构,高并发缓存、异步队列与分库分表设计,实现行情订阅分发、撮合交易、深度成交、委托挂单、浮盈计算等核心功能,目标打造高并发、海量数据的专业化金融交易平台。


PART 2


项目价值


a)   行业地位

金融是现代经济的核心,交易平台是金融核心系统,基于业内证券、外汇、贵金属等多种金融衍生品交易经验, 打造出以股票证券交易为主的智牛股项目。


b)   发展潜力

在金融行业领域, 证券、外汇、贵金属等金融产品的交易, 有着非常广阔的市场空间, 国内A股的每日成交金额就达数千亿金额, 外汇更是达到每日2万亿美元的成交量。掌握证券交易平台的开发, 等于掌握金融交易领域的实现能力,能够拓展实现其他金融衍生产品的交易, 切入金融领域核心。


c)   业务价值

金融行业人才稀缺,而能够成为金融IT复合型人才更为稀有,一般研发人员很难有机会接触金融核心交易系统,门槛条件高,且培养成本巨大,本项目借鉴业内沉淀的多年业务经验,生产级的技术实践方案,致力于培养和打造专业的金融IT复合型人才。


d)   业务特色

金融行业有各种系统,但都是侧重在某个领域,比如上交所/深交所,侧重的是竞价撮合, 东方财富/同花顺等券商平台, 侧重的是柜台交易。本项目广泛借鉴业内沉淀与改进的领先经验,打造了一套行情、交易、资讯、出入金等核心功能集于一体的完整金融解决方案,不仅有广度,还有深度,最大程度的丰富学员业务经验。


PART 3


技术亮点

1、高效的微服务通讯方案, 内部微服务采用 SpringBoot2.X+Protobuf+gRpc 通讯, 外部对接采用基于 NIO 的 Netty + Protobuf 长连接通讯, 保障交易服务的稳定可靠,又能具有较好的性能。


2、灵活高效的网关接入, 业务服务采用Spring Cloud GateWay 作统一网关接入, 相比 ZUUL 其他网关 有 2-3 倍性能提升,  交易服务采用自定义的代理服务, 基于Netty实现, 高效稳定。


3、紧随主流前沿技术, 采用 Nacos 作服务注册发现与统一配置管理, 在这 方面, 相比 Eureka 与 Spring Cloud Config 在性能与稳定性方面, 也是有非 常明显的改进;采用 Sentinel 作为熔断限流组件, 相比 Hystrix 性能更优, 功 能丰富; 采用主流的 RocketMQ,适合互联网海量数据的同步处理; 采用 ElasticSearch,在搜索方面目前有最为广泛的应用及优越的性能表现。


4、采用 Spring Cloud Alibaba 最新版本及核心生态组件,具备完整的微服务技术解决方案, 集成 Nacos 作统一配置化管理, Sentinel 作熔断降级控制, ELK 作统一日志管理, 以及 CAT 的分布式链路监控功能, 完善的服务治理功能。


5、数据层服务采用 Redis 集群作热点缓存, Ceph 作分布式文件存储, MongoDB 作 NoSQL 缓存, 支撑海量交易服务。


6、Spring Boot 2.X + Gateway + Spring Security OAuth2 统一认证鉴权与 Token增强技术运用,提升鉴权处理效率。


7、采用 Jenkins+Git+Maven+Docker+ Registry 持续集成技术、便于服务的管理与 发布。


8、Seata(fescar) Server 优秀的分布式事务 TCC 框架, 快速、高效、侵入性低。


9、XXL-JOB 集群分布式任务调度平台, 功能强大, 动态可配置, 支持多种调度策略。


10、采用众多集群技术, 最佳生产级的部署方案,包含MariaDB 集群、Redis 集群、RocketMQ 集群、XXL-JOB 集群、ES 集群、Ceph集群等,支撑海量数据与高并发场景。


PART 4


课程亮点

1、课程紧随主流技术, 拒绝落后淘汰技术(摒弃Eureka、Zuul1.x、Hystrix等), 采用最新的Spring Cloud Alibaba微服务技术方案。技术点丰富, 每个技术点的选型, 都是经过横纵对比, 且与业务有效结合。


2、真实项目案例, 无论是项目的业务和技术知识, 都是经过累积沉淀,不断改进形成的行业领先经验,认真学习与掌握整个项目, 能够成为一名专业的金融IT人才。


3、提供进入金融核心领域的机会,本项目深入交易核心,学习掌握整套技术, 不仅适用于证券股票交易, 也适用于外汇、期货、贵金属等交易,能够广泛应用于金融行业的各种交易领域。


4、最优的生产级实践方案, 项目对重要技术点进行横纵多个维度分析, 拓宽技术面, 深入理解技术,不是简单的带入技术, 采用最优生产实践方案, 提供稳定高效的服务, 使技术更好的服务于业务。


5、培养打造专业复合型人才, 项目不只技术的简单使用, 还涉及架构设计、技术选型、性能调优,持续集成、集群部署等, 打造一体化、高素质、且全面的专业性人才。


PART 5


业务功能构架


(点击查看高清大图)


PART 6


技术构架图

首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”

(点击查看高清大图)


PART 7


技术解决方案


  1. 服务高可用解决方案(KeepAlived+Lvs+Nginx)

  2. 微服务网关解决方案(Spring Cloud Gateway)

  3. 微服务高效通讯解决方案

    (SpringBoot2.X+gRpc+Protobuf+Netty)。

  4. 微服务注册发现与配置管理解决方案。(Nacos集群+Mariadb+Nginx)

  5. 微服务熔断降级限流解决方案(Sentinel + dashboard)

  6. 微服务分布式事务解决方案(Seata Server)

  7. 微服务异步消息架构解决方案(RocketMQ集群)

  8. 微服务链路监控解决方案(Cat集群)

  9. 微服务统一鉴权解决方案

    (OAuth2+Redis+TokenEhancer)

  10. 微服务统一日志解决方案

    (ElasticSearch+Logstash+Kibana)

  11.  热点缓存解决方案(Redis集群)

  12. 分布式锁解决方案(Spring Integration Redis)

  13. 前后分离与文档管理解决方案(Swagger2聚合文档)

  14. 多数据源解决方案(Spring Boot + Durid + JPA/MyBatis)

  15.  分布式文件存储解决方案(Ceph集群)

  16.  分布式搜索解决方案(ElasticSearch集群)

  17.  分布式任务调度解决方案(XXL-JOB集群)

  18.  可持续集成自动发布解决方案

    (Jenkins+Git+Maven+Docker+Registry)

  19. 数据库同步解决方案(Mariadb+Canal+Kafka)



PART 8


业务/功能解决方案


6.1行情订阅分发解决方案


行情服务如何支持海量用户接入, 同时做到高效, 稳定的转发? 如何设计能够支撑接入更多的行情源,  便于平台的扩展?  


如何对行情数据做二次加工(开盘价, 收盘价, 涨跌幅)? 实时行情数据如何高效处理? 基于业内经验, 提供一套完整的解决方案:


  1. 分库(Mariadb, Postgresql)分表(股票产品, 日期等维度)设计

  2. 增加代理服务, 采用无状态化设计, 支持水平扩展

  3. 服务内部解耦设计,  采用RocketMQ异步队列架构

  4. Redis缓存设计

  5. Http连接池

  6. 多数据源


首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”
(点击查看高清大图)

首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”
(点击查看高清大图)


6.2股票交易解决方案


股票交易是项目核心功能, 交易要考虑行情, 资金, 交易规则等因素, 还要注重性能与稳定性,  基于撮合交易, 深度成交机制, 实现了完整的交易功能:


  1. SpringBoot2.X+gRpc+Protobuf+WebSocket 高效通讯方案

  2. Seata分布式事务解决方案

  3. 基于Redis热点缓存技术

  4. SpringBoot + Druid + Mybatis多数据源解决方案

  5. RocketMQ异步通讯

  6. Spring Integration Redis 分布式锁


首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”

(点击查看高清大图)


首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”
(点击查看高清大图)

首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”
(点击查看高清大图)


6.3业务功能解决方案


用户服务与鉴权功能:


  1. Spring Security OAuth2统一认证, 密码模式运用

  2. 高性能微服务token鉴权方案,  token增强技术运用

  3. Sentinel降级限流

  4. Ceph分布式文件服务集群, Swift Api运用

  5. 全局序列ID生成, SnowFlake 运用


首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”
(点击查看高清大图)

首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”
(点击查看高清大图)

首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”
(点击查看高清大图)

后台管理服务功能:


  1. 统一平台权限模块设计

  2. REST HATEOAS运用

  3. Spring Data Rest运用

  4. Swagger2 与GateWay集成及高级运用

  5. Spring Session Redis运用



首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”

(点击查看高清大图)


6.4报表与任务调度解决方案


XXL-JOB集群能够保障服务的高可用, 提升任务执行的稳定性,调度服务和执行服务两部分互相解耦, 提升整体系统的稳定性和扩展性, 同时路由策略丰富, 能够满足智牛股项目报表处理, 任务调度等各种场景的使用。


首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”

(点击查看高清大图)


首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”

(点击查看高清大图)


6.5 分布式文件存储解决方案


Ceph是一个去中心化的分布式存储系统, 具备优良的性能、可靠性和可扩展性。通过Ceph集群,能够帮助我们解决用户的文件存储,  项目图片, 资讯附件处理等问题。


Ceph提供了一套REST风格的Api来访问, 通过网关可以适配兼容swift api,  简洁的文件操作接口,  易于接入使用,  能够支撑处理海量文件信息。


首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”

(点击查看高清大图)


首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”

(点击查看高清大图)


看完之后,是不是有种键盘敲烂,月薪3w的感觉!“智牛股”项目将会在深圳黑马2020年新开的JavaEE班级中全面上线


已经上班的小伙伴们也不要觉得可惜,身为咱们老学员,同样享受学习的福利哦!到时候老师会通知你们回来拷贝项目资料哒~嘻嘻,是不是想想就好激动!


好了,文末来一波现成的福利~


免费入门Java首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”

Java7天基础班免费学

首发 | 继畅购后,深圳黑马JavaEE又一力作“牛股”


黑妹微信:heimei0755


愿你我都能拥有

清醒的眼光与前进的勇气

成为不被时代所抛弃的人

以上是关于畅购商城swagger文档如何搭建的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot整合Swagger2搭建API在线文档

Laravel(PHP)使用Swagger生成API文档不完全指南 - 基本概念和环境搭建 - 简书

swagger管理接口工程简单搭建

swagger搭建(基于springBoot)详解

测试网站搭建+渗透+审计之第三篇Swagger接口渗透测试

yii2 使用 zircote/swagger-php 进行swagger 搭建