# cloud-dome **Repository Path**: daitaos/cloud-dome ## Basic Information - **Project Name**: cloud-dome - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-03-12 - **Last Updated**: 2021-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Open Cloud Development Platform #### 介绍 Open Cloud Development Platform是基于SpringCloud的企业级微服务快速开发框架,设计初衷为多租户、前后端分离,Web端基于Vue+ElementUI实现。涵盖:注册中心、OAuth2认证、授权、日志、gateway网关、分布式任务、flow流程等。 #### 软件目录结构 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0426/114723_be18eebe_1447492.png "模块.png") #### 功能介绍 #### 1. Eureka Server ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/094733_0249e3b7_1447492.png "微信图片_20200427094706.png") 注册中心很多,可以使用Consul,以及阿里的nacos,虽然厂家不同,但基本功能相似,可以根据实际情况自己选择。 #### 2. 统一认证、授权 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/102009_0f18ab28_1447492.png "微信图片_20200427101952.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/102113_30df5042_1447492.png "微信图片_20200427102052.png") 除支持OAuth2的四种常用认证方式外,增加了密码+图片验证码、手机号+短信验证码方式。 在实现方式上,采用重写抽象类AbstractTokenGranter的getOAuth2Authentication方法,结合CompositeTokenGranter类的组合功能,实现新增认证。 在授权方面,采用对菜单和功能控制的方式,通过角色,授权给用户 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/114553_e8626ebd_1447492.png "微信图片_20200427114455.png") #### 3. 流程、审批 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/124626_0eea2d9a_1447492.png "微信图片_20200427124532.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/124643_6577aca0_1447492.png "微信图片_20200427124547.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/124656_c871e0ac_1447492.png "微信图片_20200427124554.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/141722_8070edb3_1447492.png "微信图片_20200427141705.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/124709_7baad31c_1447492.png "微信图片_20200427124601.png") 集成了Camunda,可以通过前后端分离的web方式,实现模型的上传、流程的启动和终止、以及流程的审批。 #### 4. 路由 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/152745_4e11e03b_1447492.png "微信图片_20200427152719.png") 通过gateway实现路由功能。 路由同步 实现自定义RouteDefinitionLocator接口,覆盖原有实现。自定义实现从redis中获取路由信息后,自动更新本地服务的路由信息。 多租户功能 不同的租户,通过不同的域名(或子域名)访问网关,基于这个原则,可以通过域名来区分租户。TenantFilter全局过滤器,根据域名获取租户ID后,写入访问实际服务的Request的Head中,从而服务可以根据租户ID,处理租户的逻辑。 #### 5. 分布式任务调度 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/160042_69989ba6_1447492.png "微信图片_20200427160018.png") 通过quartz实现分布式任务调度。生成一个实现ITask接口的bean,然后就可以通过界面设置cron,实现定时调用了。 #### 6. 日志收集 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/165438_2e57606c_1447492.png "微信图片_20200427165413.png") 收集restful调用日志 #### 7. 基础数据维护 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/165836_a7279deb_1447492.png "微信图片_20200427165821.png") 在restful接口参数验证方面,采用@Validated注解的方式。对于需要特定权限才可以操作的功能,使用@PreAuthorize注解,再配合授权标识实现。 #### 8. 系统监控 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/174100_1c623f20_1447492.png "微信图片_20200427174032.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/174117_5ae113e9_1447492.png "微信图片_20200427174038.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/0427/174128_a543ba24_1447492.png "微信图片_20200427174044.png") **代码生成器** 用来生成后端代码和vue代码:[https://gitee.com/jackeli/Open-Cloud-Generator](https://gitee.com/jackeli/Open-Cloud-Generator) 前台web框架 vue+elementUI:[https://gitee.com/jackeli/Open-Cloud-Development-Admin-UI](https://gitee.com/jackeli/Open-Cloud-Development-Admin-UI) **交流群:1059804547**