SpringCloud微服务框架搭建详解(基于Nacos)
一、Nacos安装与配置(Windows环境)
1. Nacos下载
- 访问Nacos官方GitHub发布页面:https://github.com/alibaba/nacos/releases
- 下载最新稳定版本的Nacos(例如:nacos-server-2.2.0.zip)
2. 安装步骤
- 解压下载的zip文件到指定目录,例如:
D:\nacos
- 进入Nacos的bin目录:
D:\nacos\bin
- 启动Nacos服务器:
- 单机模式启动:双击
startup.cmd
或在命令行执行startup.cmd -m standalone
3. 验证安装
- 打开浏览器,访问Nacos控制台:
http://localhost:8848/nacos
- 默认账号密码:nacos/nacos
二、Nacos配置列表详解
1. 配置列表创建
- 登录Nacos控制台
- 点击左侧菜单"配置管理" -> "配置列表"
- 点击右上角"+"按钮,创建配置
- 填写配置信息:
- Data ID:配置文件名,通常格式为
服务名称.properties
或服务名称-环境.yaml
- Group:配置分组,默认为
DEFAULT_GROUP
- 配置格式:选择YAML、Properties、JSON等
- 配置内容:填写具体配置
2. 常用配置示例
2.1 数据库配置(MySQL)
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/microservice_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8username: rootpassword: 123456
2.2 Redis配置
spring:redis:host: localhostport: 6379password: database: 0timeout: 10000
2.3 公共配置
server:tomcat:uri-encoding: UTF-8max-threads: 1000min-spare-threads: 30spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8
三、SpringCloud微服务项目搭建
1. 项目结构
microservice-demo├── common # 公共模块├── gateway-service # 网关服务├── auth-service # 认证服务├── user-service # 用户服务├── order-service # 订单服务└── pom.xml # 父POM文件
2. 父POM文件配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.11</version></parent><groupId>com.example</groupId><artifactId>microservice-demo</artifactId><version>1.0.0</version><packaging>pom</packaging><name>microservice-demo</name><description>SpringCloud微服务示例</description><modules><module>common</module><module>gateway-service</module><module>auth-service</module><module>user-service</module><module>order-service</module></modules><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.11</spring-boot.version><spring-cloud.version>2021.0.4</spring-cloud.version><spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version><mybatis-plus.version>3.5.2</mybatis-plus.version><druid.version>1.2.12</druid.version><fastjson.version>2.0.16</fastjson.version><hutool.version>5.8.9</hutool.version></properties><dependencyManagement><dependencies><!-- Spring Cloud --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Cloud Alibaba --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency>