目录
一、介绍
Spring Cloud是实现微服务架构的一系列框架的有序集合,是在Spring Boot基础上构建的,用于简化分布式系统构建的工具集,是拥有众多子项目的项目集合。使用Spring Cloud一站式解决方案能在从容应对业务发展的同时大大减少开发成本。
微服务其实就是讲单体项目中沉重的业务进行拆分,拆分为微小的各个服务,来进行完成这一个业务。
1.1 springCloud的原生组件
1.1.1 Eureka实现服务治理
1.1.2 Ribbon主要提供客户侧的软件负载均衡算法
1.1.3 Hystrix断路器,保护系统,控制故障范围;
1.1.4 Zuul,api网关,路由,负载均衡等多种作用
1.1.5 Config配置管理
1.2 SpringCloud的阿里巴巴组件
1.2.1 nacos
1.2.2 openfeign + 负载均衡
1.2.3 Sentinel
1.2.4 网关
1.2.5 负载均衡
二、nacos
nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
2.1 nacos的特点
2.1.1 动态服务发现
2.1.2 服务配置
2.1.3 服务元数据及流量管理
2.2 搭建nacos服务器
2.2.1 nacos的下载地址:Releases · alibaba/nacos · GitHub
2.2.2 解压安装包
2.2.3 打开配置文件(nacos安装目录 -> conf -> application.properties)
2.2.4 在数据库中执行sql文件(nacos安装目录 -> conf -> nacos-mysql.sql),即将nacos的数据库文件导入到数据库中
2.2.5 启动bin目录下的startup.cmd文件
三、创建微服务项目
3.1 在父类的pom文件中添加依赖
3.1.1 springCloud配置
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${springcloudalibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
3.1.2 SpringBoot 配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
3.1.3 需要注意版本问题
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring-cloud.version>Hoxton.SR8</spring-cloud.version>
<springboot.version>2.3.2.RELEASE</springboot.version>
<springcloudalibaba.version>2.2.5.RELEASE</springcloudalibaba.version>
</properties>
3.1.4 在build中配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/**</include>
</includes>
</resource>
</resources>
</build>
3.2 创建微服务项目,即子模块
3.2.1 在子模块中配置 .yml文件
application:
name: nacos-student
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
3.2.2 创建启动器,添加注解,这里举例
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.java704.feign"})
@MapperScan("com.java704.dao")
public class IndexApplication {
public static void main(String[] args) {
SpringApplication.run(IndexApplication.class,args);
}
}