# springcloudalibaba-muban **Repository Path**: hepingan11/springcloudalibaba-muban ## Basic Information - **Project Name**: springcloudalibaba-muban - **Description**: 自研的springcloudalibaba项目架构开发模板 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-10-10 - **Last Updated**: 2025-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **自己学了三年Java总结出来的Springcloud-alibaba微服务架构模板** # 模板介绍 其中相关技术和中间件包含: - Mysql 8 - Redis - Sa-token - Mybatis-plus - Ali Oss - Nacos - RabbitMQ - Sentinel - Docker - 以及一些小杂件(fastjson,Druid连接池,lombok.....) 不用全部了解,比如你不想用rabbitmq直接在代码里面删除对应依赖和代码以及yml配置就行 **SpringCloud版本组件之间有严格的依赖,本次采用的版本对应关系如下:** | Spring Cloud Alibaba Version | Sentinel Version | Nacos Version | RocketMQ Version | Seata Version | | ---------------------------- | ---------------- | ------------- | ---------------- | ------------- | | 2023.0.1.0 | 1.8.6 | 2.3.2 | 5.1.4 | 2.0.0 | | Spring Cloud Alibaba Version | Spring Cloud Version | Spring Boot Version | | ---------------------------- | --------------------- | ------------------- | | 2023.0.1.0 | Spring Cloud 2023.0.1 | 3.2.4 | (改模板中没有使用RocketMQ,而是RabbiitMQ-3-management) # 环境配置 ## MySQL 使用了两个表作为测试,直接创建表就行(数据库默认使用的名字是'cloud-muban'): ```sql create table orders ( order_id bigint auto_increment primary key, order_name varchar(200) not null, amount double not null, user_id bigint null, username varchar(200) null, created_time datetime not null ) comment '订单'; create table user ( user_id bigint auto_increment primary key, username varchar(200) not null, password varchar(250) null, role varchar(10) not null comment '角色' ); ``` ## Nacos 如果你要使用nacos,我使用的是docker安装,持久化使用的mysql,一键安装指令: ```bash docker run -d ^ --name nacos-mysql ^ -p 8848:8848 ^ -p 9848:9848 ^ -e MODE=standalone ^ -e SPRING_DATASOURCE_PLATFORM=mysql ^ -e MYSQL_SERVICE_HOST=host.docker.internal ^ -e MYSQL_SERVICE_PORT=3306 ^ -e MYSQL_SERVICE_DB_NAME=nacos_config ^ -e MYSQL_SERVICE_USER=root ^ -e MYSQL_SERVICE_PASSWORD=123456 ^ -e MYSQL_DATABASE_NUM=1 ^ -e JVM_XMS=512m ^ -e JVM_XMX=512m ^ nacos/nacos-server:v2.3.2 ``` 当然启动后你会发现报错,那是因为你没有初始化mysql数据库表,下载我下面的sql语句或直接复制,然后新建一个nacos_config数据库运行就行: sql文件下载地址:https://img-hepingan.oss-cn-hangzhou.aliyuncs.com/page/mysql-schema.sql(文件下载地址失效了可以去官方下载对应版本的文件找到mysql-schema.sql或私我) - **Nacos网关模块配置:** ```yml server: port: 9000 spring: cloud: sentinel: transport: dashboard: http://127.0.0.1:8080 port: 8719 gateway: globalcors: cors-configurations: '[/**]': allowedOriginPatterns: - "http://localhost:8080" #允许前端跨域的地址 allowedMethods: - "GET" - "POST" - "PUT" - "DELETE" - "OPTIONS" - "HEAD" - "cloudTCH" allowedHeaders: "*" allowCredentials: true maxAge: 360000 # 解决options请求被拦截的问题 add-to-simple-url-handler-mapping: true discovery: locator: enabled: true #开启注册中心 routes: - id: cloud-system #路由ID,随便写只要是唯一的就行 uri: lb://cloud-system #匹配服务的路由地址 predicates: - Path=/auth/** - id: cloud-order uri: lb://cloud-order predicates: - Path=/order/** codec: max-in-memory-size: 1048576 servlet: multipart: max-file-size: 10240MB max-request-size: 10240MB ``` - **Nacos cloud-common模块配置:** ```yml # 阿里OSS ali-oss: endpoint: 'oss-cn-hangzhou.aliyuncs.com' accessKey: '' secretKey: '' bucketName: 'img-' domain: 'https://img-.oss-cn-hangzhou.aliyuncs.com' ``` - **Nacos cloud-order模块配置:** ```yml server: port: 9002 spring: rabbitmq: host: localhost port: 5672 virtual-host: / username: admin password: 1234 ``` - **cloud-system:** ```yml server: port: 9001 ``` - **cloud-parent父配置(即所有模块都引用了):** 记得修改为自己的mysql'和redis密码和数据库连接 ```yml mybatis-plus: mapper-locations: classpath:mapper/*.xml configuration: # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true cache-enabled: false jdbc-type-for-null: 'null' spring: # mysql配置 datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/cloud_muban?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true&useSSL=true username: root password: 123456 data: # redis配置 redis: timeout: 10s lettuce: pool: max-active: 200 max-wait: -1ms max-idle: 10 min-idle: 1 database: 1 host: 127.0.0.1 port: 6379 password: '' ``` ## RabbitMQ 依然是docker安装: ```bash docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=1234 -p 15672:15672 -p 5672:5672 rabbitmq:3-management ``` 账密为admin/1234 在cloud-order模块的test里有个MQTest类可以测试你的mq弄好没,记得新建个simple.queue队列; ## Sentinel 官网:[home | Sentinel](https://sentinelguard.io/zh-cn/index.html) 本次使用的版本是1.8.6,官网下载地址:https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar 下载好后直接在当前文件夹cmd运行 ```bash java -jar sentinel-dashboard-1.8.6.jar ``` 默认密码为sentinel/sentinel # 其它说明 common中一些类的教程参考视频:[https://www.bilibili.com/video/BV1a9nGz4EwE/?spm_id_from=333.1387.homepage.video_card.click&vd_source=190aa40e29cf9c29c0ec0fe896bdef1f](https://gitee.com/link?target=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1a9nGz4EwE%2F%3Fspm_id_from%3D333.1387.homepage.video_card.click%26vd_source%3D190aa40e29cf9c29c0ec0fe896bdef1f) 博客中阅读:[♪(^∇^*)欢迎肥来!SpringcloudAlibaba全家桶项目架构搭建教程,从零设计微服务架构(包含Nacos+RabbitMQ+Sentinel) | 天香园](https://ai.hepingan.top/2025/10/08/我的精华/SpringcloudAlibaba全家桶项目架构搭建教程,从零设计微服务架构-包含Nacos-RabbitMQ-Sentinel-Seata/) 项目发现问题了欢迎+q1973016127私聊我哦~