# space-admin **Repository Path**: cpanmac/space-admin ## Basic Information - **Project Name**: space-admin - **Description**: - 基于 Spring Cloud 2021.0.2、Spring Cloud alibaba 2021.0.1.0、Spring Boot 2.7.0的RBAC权限管理系统 - 基于 VUE 的组件库 element-ui 实现前后端分离的微服务架构 - 采用 Nacos 作为注册中心、配置中心 - 采用 Sentinel 作为限流、熔断和降级,保证高并发下系统可用 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2023-01-30 - **Last Updated**: 2024-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## space-admin ### 介绍 - 基于 Spring Cloud 2021.0.2、Spring Cloud alibaba 2021.0.1.0、Spring Boot 2.7.0的RBAC权限管理系统 - 基于 VUE 的组件库 element-ui 实现前后端分离的微服务架构 - 采用 Nacos 作为注册中心、配置中心 - 采用 Sentinel 作为限流、熔断和降级,保证高并发下系统可用 ### 软件架构 ``` ├─space-admin ├─space-common ├─space-common-auth ├─space-common-cloud ├─space-common-core ├─space-common-db ├─space-common-dependencies ├─space-common-es ├─space-common-stream-rocket ├─space-common-redis ├─space-common-sentinel ├─space-common-sleuth ├─space-common-stroage ├─space-common-swagger ├─space-common-xxljob ``` ### 安装教程 环境192.168.56.76,镜像私服:阿里云 1、安装docker,[教程](https://blog.csdn.net/u010811939/article/details/122005358) 2、在linux上新建space文件夹,将项目space-admin/doc/build目录下的env文件与docker-compose.yml拷贝到space目录,将space-admin/doc/sql/init目录下的文件拷贝到space/sql目录,具体结构如下 ```shell ├─space ├─env ├─*.env ├─sql ├─space-* ├─docker-compose.yml ``` > **修改space-admin/doc/build/env/kafka.env的ip地址为对应宿主机地址** > > **KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.56.76:9092 #宿主机监听端口** 3、创建/root/space/logstash/config,拷贝logstash.conf文件到该目录下; 创建/root/space/es/config,拷贝elasticsearch.yml文件到该目录下,并修改/root/space/es文件夹的权限`chmod -R 777 /root/space/es`; 创建/root/space/rocket/mqbroker/config,拷贝broker.conf文件到该目录下,并修改/root/space/rocket/mqbroker文件夹的权限`chmod -R 777 /root/space/rocket`; 4、进入space目录,运行如下命令(启动nacos、mysql、redis、sentinel、rocketmq、kafka、kafka-manage、minio、elasticsearch、kibana、xxljob、monitor等项目依赖的中间件) ```shell docker-compose up -d ``` 5、配置本机host地址 ```shell 192.168.56.76 nacos 192.168.56.76 mysql 192.168.56.76 redis 192.168.56.76 sentinel 192.168.56.76 rocketmq 192.168.56.76 elasticsearch 192.168.56.76 minio 192.168.56.76 kibana 192.168.56.76 zipkin 192.168.56.76 monitor 192.168.56.76 kafka 192.168.56.76 kafkamanage 192.168.56.76 xxljob 192.168.56.76 space ``` 6、启动业务服务sys、gateway等 ### 使用说明 #### 中间件 | 访问地址 | 服务 | 访问地址 | 用户名 | 密码 | | ------------- | ----------- | ---------------- | ------ | ----------- | | 192.168.56.76 | nacos | nacos:8848 | admin | yanyu@space | | 192.168.56.76 | mysql | mysql:3306 | root | yanyu@space | | 192.168.56.76 | redis | redis:6379 | admin | yanyu@space | | 192.168.56.76 | sentinel | sentinel:8849 | admin | yanyu@space | | 192.168.56.76 | rocket | rocket:8180 | - | - | | 192.168.56.76 | minio | minio:9090 | admin | yanyu@space | | 192.168.56.76 | kibana | kibana:5601 | - | - | | 192.168.56.76 | zipkin | zipkin:9411 | - | - | | 192.168.56.76 | kafkamanage | kafkamanage:9010 | - | - | | 192.168.56.76 | monitor | monitor:32000 | admin | 123456 | | 192.168.56.76 | xxljob | xxljob:8080 | admin | 123456 | #### docker构建服务 1、打开space-admin/pom.xml,配置docker harbor用户名和密码 ```xml 用户名 密码 ``` 2、在Maven的setting文件中 ```xml com.spotify ``` > 如果本机没有安装docker可以利用其他服务器上的docker服务,在本机系统环境变量中做如下配置,然后重启电脑 > > ```shell > DOCKER_HOST tcp://192.168.56.76:2375 > ``` 3、docker编译 ```shell # 项目打包 mvn clean package # 生成镜像 mvn dockerfile:build # 镜像推送到镜像服务器 mvn dockerfile:push ``` #### 自定义配置 ##### p6spy 方式一:引入Sleuth,配置数据源(Sleuth默认实现了P6spy数据源代理) ```xml com.yanyu space-common-sleuth com.yanyu space-common-db ``` ```yaml datasource: url: jdbc:mysql://mysql:3306/space_sys?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf-8&useSSL=true driver-class-name: com.mysql.jdbc.Driver ``` 方式二:当关闭Sleuth时,可以配置jdbc数据源为p6spy开启 ```xml com.yanyu space-common-db ``` ```yaml datasource: url: jdbc:p6spy:mysql://mysql:3306/space_sys?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf-8&useSSL=true username: root password: root driver-class-name: com.p6spy.engine.spy.P6SpyDriver ``` ##### Swagger 主要分为网关配置文件和sys等业务服务配置文件 首先pom引入依赖包 ```xml com.yanyu space-common-swagger ``` **网关:** 配置文件 ```yaml space: swagger: gateway: locator: enabled: true ignored-services: - space-gateway - space-monitor ``` > 网关swagger根据nacos注册服务定时自动检测 > > ```properties > space.swagger.gateway.locator.enabled:网关swagger开启自动检测 > > space.swagger.gateway.locator.ignored-services:忽略哪些服务 > ``` **sys等业务服务:** 配置文件 ```yaml space: swagger: # 开启swagger配置 enabled: true ``` ##### Slueth 集成slueth链路追踪和log分布式日志 ```properties # 是否开启分布式日志 space.sleuth.log.enabled # 分布式日志发送排除的路径 spring.sleuth.log.web.exclude-patterns # 分布式日志发送包含的路径,优先级高于exclude-patterns spring.sleuth.log.web.include-patterns # 日志处理并发线程数 space.sleuth.log.processor.concurrency # 日志发送kafka主题 space.sleuth.log.sender.kafka.topic # 日志发送kafka地址 space.sleuth.log.sender.kafka.servers-addr # xxljob定时任务是否发送链路追送 spring.sleuth.xxljob.enabled ``` ##### xxljob 自动注册,需要先进入xxljob管理界面在执行器中创建对应的执行器,这样服务器启动才能注册成功 ### 项目展示 ![caidan](doc/img/caidan.png) ![code](doc/img/code.png) ![jiaose](doc/img/jiaose.png)