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.Driver
url: jdbc:mysql://localhost:3306/microservice_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
username: root
password: 123456
2.2 Redis配置
spring:
redis:
host: localhost
port: 6379
password:
database: 0
timeout: 10000
2.3 公共配置
server:
tomcat:
uri-encoding: UTF-8
max-threads: 1000
min-spare-threads: 30
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-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>