open-cloud是一款基于SpringCloud、SpringSecurity、Oauth2、Nacos打造的开放式微服务平台。 利于企业微服务开发、更安全、更便捷的对接APP或前端应用。
搭建基于OAuth2的开放平台、为APP端、应用服务提供统一接口管控平台、为第三方合作伙伴的业务对接提供授信可控的技术对接平台:
1、分布式架构,Nacos(服务注册+配置中心)统一管理
2、统一API网关(参数验签、身份认证、接口鉴权、接口调试、接口限流、接口状态、接口外网访问)
3、统一oauth2认证协议
代码结构
open-cloud ├── docs -- 文档及脚本 ├── bin -- 执行脚本 ├── config -- 公共配置,用于导入到nacos配置中心 ├── sql -- sql文件 ├── data -- 增量数据 ├── components -- 公共组件 ├── open-cloud-common-core -- 提供微服务相关依赖包、工具类、全局异常解析等 ├── open-cloud-common-starter -- SpringBoot自动配置扫描 ├── open-cloud-tenant-starter -- 多租户模块,多数据源自动切换(完善中...) ├── open-cloud-java-sdk -- 开放平台api集成SDK(完善中...) ├── platform -- 平台服务 ├── open-cloud-api-spring-server -- API开放网关-基于SpringCloudGateway[port = 8888](推荐) ├── open-cloud-api-zuul-server -- API开放网关-基于Zuul[port = 8888](功能完善) ├── open-cloud-base-client -- 平台基础服务接口 ├── open-cloud-base-server -- 平台基础服务器[port=8233] ├── open-cloud-uaa-admin-server -- 平台用户认证服务器[port = 8211] ├── open-cloud-uaa-portal-server -- 门户开发者认证服务器[port = 7211] ├── open-cloud-generator-server -- 在线代码生成服务器[port = 5555] ├── services -- 通用微服务 ├── open-cloud-msg-client -- 消息服务接口 ├── open-cloud-msg-server -- 消息服务器[port = 8266] ├── open-cloud-task-client -- 任务调度接口 ├── open-cloud-task-server -- 调度服务器[port = 8501] ├── open-cloud-bpm-client -- 工作流接口 ├── open-cloud-bpm-server -- 工作流服务器[port = 8255] ├── open-cloud-sba-server -- SpringBootAdmin监控服务[port = 8849] ├── open-cloud-sso-ui-demo -- SSO单点登录演示demo[port = 8849]
快速开始
本项目基于springCloud打造的分布式快速开发框架. 需要了解SpringCloud,SpringBoot,SpringSecurity,分布式原理。
1、准备环境
Java1.8 (v1.8.0_131+)
Nacos服务注册和配置中心(v1.0.0+) 阿里巴巴nacos.io
Redis (v3.2.00+)
RabbitMq (v3.7+)(需安装rabbitmq_delayed_message_exchange插件 下载地址)
Mysql (v5.5.28+)
Maven (v3+)
Nodejs (v10.14.2+)
2、执行创建数据库open-platform并执行sql脚本
docs/sql/oauth2.sql
docs/sql/base.sql
docs/sql/gateway.sql
docs/sql/msg.sql
docs/sql/quartz.sql && task.sql ...
3、启动nacos服务发现&配置中心,新建公共配置文件
访问 http://localhost:8848/nacos/index.html
导入配置 /docs/config/DEFAULT_GROUP.zip(nacos1.0.3以上版本支持一键导入)
新建配置文件 (nacos1.0.3以下版本)
项目目录/docs/config/db.properties > db.properties
项目目录/docs/config/rabbitmq.properties > rabbitmq.properties
项目目录/docs/config/redis.properties > redis.properties
项目目录/docs/config/common.properties > common.properties
4、修改主pom.xml
初始化maven项目
maven clean install
本地启动,默认不用修改
5、本地启动(按顺序启动)
5.1、[必需]BaseApplication(平台基础服务)
5.2、[必需]UaaAdminApplication(平台用户认证服务器)
5.3、[必需]GatewaySpringApplication(推荐)或GatewayZuulApplication
访问 http://localhost:8888
5.4、[非必需]SpringBootAdmin(监控服务器)(非必需)
访问 http://localhost:8849
6、前端启动
npm install npm run dev
访问 http://localhost:8080
7、项目打包部署
maven多环境打包,替换变量
mvn clean install package -P {dev|test|online}
项目启动
./docs/bin/startup.sh {start|stop|restart|status} open-cloud-base-server.jar ./docs/bin/startup.sh {start|stop|restart|status} open-cloud-uaa-admin-server.jar ./docs/bin/startup.sh {start|stop|restart|status} open-cloud-api-spring-server.jar
8、docker部署
配置DOCKER私服仓库
maven多环境打包,替换变量.并构建docker镜像
clean install package -P {dev|test|online} dockerfile:build
启动docker镜像
docker run -d -e JAVA_OPTS="-Xms128m -Xmx256m" -p 8233:8233 --name base-server open.cloud/open-cloud-base-server:3.0.0 docker run -d -e JAVA_OPTS="-Xms128m -Xmx256m" -p 8211:8211 --name uaa-admin-server open.cloud/open-cloud-uaa-admin-server:3.0.0 docker run -d -e JAVA_OPTS="-Xms128m -Xmx256m" -p 8888:8888 --name api-spring-server open.cloud/open-cloud-api-spring-server:3.0.0