Giter VIP home page Giter VIP logo

open-platform's Introduction

微服务开放平台 3.1.0

简介

搭建基于OAuth2的开放平台、为APP端、应用服务提供统一接口管控平台、为第三方合作伙伴的业务对接提供授信可控的技术对接平台

  • 分布式架构,Nacos(服务注册+配置中心)统一管理、Feign(RPC服务调用)
  • 统一API网关(参数验签、身份认证、接口鉴权、接口调试、接口限流、接口状态、接口外网访问)
  • 统一Oauth2认证协议

管理后台

  • 后台默认账号:admin 123456
  • 后台测试账号:test 123456
  • SpringBootAdmin账号:sba 123456

源码

使用手册

使用手册

技术支持

技术支持

  • 学习交流(千人群):760809808 open-cloud交流群

功能介绍

功能介绍

代码结构

open-platform
├── docs                               -- 文档及脚本
    ├── bin                            -- 执行脚本
    ├── config                         -- 公共配置,用于导入到nacos配置中心
    ├── sql                            -- sql文件
      ├── data                         -- 增量数据
├── docker                             -- Docker部署脚本
    ├── elk                            -- ELK部署脚本
    ├── influxdb                       -- InfluxDB部署脚本
    ├── monitor                        -- Grafana部署脚本
├── components                         -- 公共组件
    ├── common-core         -- 提供微服务相关依赖包、工具类、全局异常解析等
    ├── common-starter      -- SpringBoot自动配置扫描
    ├── java-sdk            -- 开放平台api集成SDK(完善中...)
    ├── tenant-starter      -- 多租户模块,多数据源自动切换(完善中...)
├── migration                          -- 多环境数据迁移-菜单、操作、路由、异构API
├── platform                           -- 平台服务
    ├── api-spring-server   -- API开放网关-基于SpringCloudGateway[port = 8888](推荐)
    ├── api-zuul-server     -- API开放网关-基于Zuul[port = 8888](功能完善)
    ├── base-client         -- 平台基础服务接口
    ├── base-server         -- 平台基础服务器[port=8233]
    ├── generator-server    -- 在线代码生成服务器[port = 5555]
    ├── sba-server          -- SpringBootAdmin监控服务[port = 8849]
    ├── sentinel-dashboard  -- Sentinel控制台服务[port = 8080]
    ├── uaa-admin-server    -- 平台用户认证服务器[port = 8211]
    ├── uaa-portal-server   -- 门户开发者认证服务器[port = 7211]
├── services                           -- 通用微服务
    ├── bpm-client          -- 工作流接口
    ├── bpm-server          -- 工作流服务器[port = 8255]
    ├── comment-server      -- 评价服务[port = 8311]
    ├── dingtalk-server     -- 钉钉服务[port = 8222]
    ├── file-server         -- 文件存储服务[port = 8225]
    ├── msg-client          -- 消息服务接口
    ├── msg-server          -- 消息服务器[port = 8266]
    ├── org-server          -- 组织架构服务[port = 8280]
    ├── payment-server      -- 支付服务[port = 8288]
    ├── sso-ui-demo         -- SSO单点登录演示demo[port = 2222]
    ├── task-client         -- 任务调度接口
    ├── task-server         -- 调度服务器[port = 8501]
    ├── tenant-demo         -- 多租户演示demo[port = 6878]
    ├── user-server         -- 用户服务[port = 8277]

快速开始

本项目基于SpringCloud打造的分布式快速开发框架. 需要了解SpringCloud,SpringBoot,SpringSecurity,分布式原理。

  1. 准备环境

    • Java1.8 (v1.8.0_131+)
    • Nacos服务注册和配置中心 (v1.0.0+) 阿里巴巴Nacos
    • Sentinel流量控制、熔断降级、系统负载保护 (v1.6.0+) 阿里巴巴Sentinel
    • Redis (v3.2.00+)
    • RabbitMq (v3.7+)(需安装rabbitmq_delayed_message_exchange插件 下载地址
    • Mysql (v5.5.28+)
    • InfluxDB (v1.7.9+)
    • ELK (v7.4.1+)
    • 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 && scheduler.sql
    • docs/sql/org.sql
    • docs/sql/data/update.sql

    执行创建数据库open_platform_user并执行sql脚本

    • docs/sql/user.sql

    执行创建数据库open_platform_payment并执行sql脚本

    • docs/sql/payment.sql

    执行创建数据库open_platform_comment并执行sql脚本

    • docs/sql/comment.sql
  3. 启动nacos服务发现&配置中心,新建公共配置文件

    • 访问 http://localhost:8848/nacos/index.html
    • 新建配置文件及导入(根据需要导入docs/config下配置文件)
      • docs/config/db.properties > db.properties
      • docs/config/rabbitmq.properties > rabbitmq.properties
      • docs/config/redis.properties > redis.properties
      • docs/config/common.properties > common.properties

    如图: nacos

  4. 修改主pom.xml 初始化maven项目

    maven clean install

    本地启动,默认不用修改

    <!--Nacos配置中心地址-->
    <config.server-addr>127.0.0.1:8848</config.server-addr>
    <!--Nacos配置中心命名空间,用于支持多环境.这里必须使用ID,不能使用名称,默认为空-->
    <config.namespace></config.namespace>
    <!--Nacos服务发现地址-->
    <discovery.server-addr>127.0.0.1:8848</discovery.server-addr>
    <!--Nacos服务发现命名空间,用于支持多环境.这里必须使用ID,不能使用名称,默认为空-->
    <discovery.namespace></discovery.namespace>
  5. 本地启动(按顺序启动)

    1. [必需]BaseApplication(平台基础服务)
    2. [必需]UaaAdminApplication(平台用户认证服务器)
    3. [必需]GatewaySpringApplication(推荐)或GatewayZuulApplication
    访问 http://localhost:8888
    

    4.[非必需]SpringBootAdmin(监控服务器)(非必需)

    访问 http://localhost:8849
    
  6. 前端启动

    npm install
    npm run dev

    访问 http://localhost:8080

  7. 项目打包部署

    • maven多环境打包,替换变量
    mvn clean package -P {dev|test|uat|online}
    • 项目启动
    ./docs/bin/startup.sh {start|stop|restart|status} base-server.jar
    ./docs/bin/startup.sh {start|stop|restart|status} uaa-admin-server.jar
    ./docs/bin/startup.sh {start|stop|restart|status} api-spring-server.jar
  8. docker部署

    • 配置DOCKER私服仓库
    • maven多环境打包,替换变量.并构建docker镜像
    mvn clean package -P {dev|test|uat|online} dockerfile:build dockerfile:push
    • 启动docker镜像
    docker run -d -e JAVA_OPTS="-Xms128m -Xmx768m" -p 8233:8233 --name base-server uhonliu/base-server:3.1.0-{dev|test|uat|online}
    docker run -d -e JAVA_OPTS="-Xms128m -Xmx768m" -p 8211:8211 --name uaa-admin-server uhonliu/uaa-admin-server:3.1.0-{dev|test|uat|online}
    docker run -d -e JAVA_OPTS="-Xms128m -Xmx768m" -p 8888:8888 --name api-spring-server uhonliu/api-spring-server:3.1.0-{dev|test|uat|online}

参考项目及文档

open-platform's People

Contributors

uhonliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.