【XXL开源社区】已经发布一系列开源软件产品,涉及分布式、基础中间件、效率工具等多个领域。包含项目有:任务调度、配置中心、通讯框架(+注册中心)、消息队列、SSO、API管理、爬虫……等等。
访问网址: https://www.xuxueli.com/page/projects.html
1.分布式任务调度平台: XXl-JOB
github源码地址:https://github.com/xuxueli/xxl-job
1.1 架构设计
1.1.1 设计思想
将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。
将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑。
因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性;
1.1.2 系统组成
- 调度模块(调度中心):
负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块;
支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover。 - 执行模块(执行器):
负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效;
接收“调度中心”的执行请求、终止请求和日志请求等。
1.1.3 架构图
2.接口文档——Swagger
SWAGGER 官网:https://swagger.io/
SpringBoot集成springfox-swagger2构建restful API :https://blog.csdn.net/u014231523/article/details/54562695
SpringMVC集成springfox-swagger2构建restful API:https://blog.csdn.net/u014231523/article/details/54411026
官方Swagger-Wiki使用详情:https://github.com/swagger-api/swagger-core/wiki/Annotations
首先按照它的规范去定义接口及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等。支持从设计和文档到测试和部署的整个API生命周期的开发。
名称 | 描述 | 属性 |
---|---|---|
@Api |
将一个类标记为Swagger资源。 | tags–表示说明 value–也是说明,可以使用tags替代 但是tags如果有多个值,会生成多个list |
@ApiImplicitParam | 表示API操作中的单个参数。 | |
@ApiImplicitParams | 包装器,允许多个ApiImplicitParam对象的列表。 | name–参数名 value–参数说明 dataType–数据类型 paramType–参数类型 example–举例说明 |
@ApiModel | 提供有关Swagger模型的其他信息。 | value–表示对象名 description–描述 |
@ApiModelProperty | 添加和操作模型属性的数据。 | value–字段说明 name–重写属性名字 dataType–重写属性类型 required–是否必填 example–举例说明 hidden–隐藏 |
@ApiOperation | 描述针对特定路径的操作或通常的HTTP方法。 | value用于方法描述 notes用于提示内容 tags可以重新分组(视情况而用) |
@ApiParam | 为操作参数添加其他元数据。 | name–参数名 value–参数说明 required–是否必填 |
@ApiResponse | 描述操作的可能响应。 | |
@ApiResponses | 包装器,允许包含多个ApiResponse对象的列表。 | |
@Authorization | 声明要在资源或操作上使用的授权方案。 | |
@AuthorizationScope | 描述OAuth2授权范围。 |