# 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管理界面在执行器中创建对应的执行器,这样服务器启动才能注册成功
### 项目展示


