一、什么是微服务
微服务是分布式架构的一种,分布式架构其实就是要把服务做一个拆分。
在单体架构中,我们把所有的服务都写在一起,随着业务的复杂代码的耦合度就会越来越高,不便于将来的升级维护。
所以往往需要拆分这些服务,微服务在拆分的时候,会根据业务功能模块把一个单体的应用拆分成许多个独立的项目,每个项目完成一部分的业务功能,然后独立开发和部署。这些独立的项目就成为一个微服务。进而构成一个服务集群。
二、什么是SpringCloud
Spring Cloud 是一套基于 Spring Boot 框架的完整的微服务解决方案,是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。Spring Cloud 并不重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。换句话说:Spring Cloud 提供了构建分布式系统所需的“全家桶”。
三、微服务基本组成
生产者:提供服务
消费者:消费服务
服务注册/发现中心:服务注册,发现,监控
四、搭建服务注册/发现中心
下面我们来搭建一个最基础的微服务的服务注册/发现中心。
1、创建父项目
首先,创建一个springboot项目springclouddemo
因为父项目不需要写代码,所以把下面的文件都删掉。
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.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.wanmait</groupId> <artifactId>clouddemo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>clouddemo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2、创建服务注册发现中心模块
在父工程springclouddemo上右键,新建一个module:springclouddemo-server-eureka
创建好的模块结构如下:
(1)修改配置文件
修改springcloud-server-eureka配置文件application.properties为下面的代码:
#启动端口 server.port=8761 #Eureka主机名称 eureka.instance.hostname=localhost #不将自己注册到Eureka Server eureka.client.register-with-eureka=false #不从Eureka Server获取注册信息 eureka.client.fetch-registry=false
(2)添加依赖
在pom文件中添加eureka-server的依赖
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.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.wanmait</groupId> <artifactId>cloud-server-eureka</artifactId> <version>0.0.1-SNAPSHOT</version> <name>cloud-server-eureka</name> <description>Demo project for Spring Boot</description> <properties> <java.version>11</java.version> <spring-cloud.version>2021.0.0</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
(3)在启动类上添加注解
然后在application.properties启动类上加上注解@EnableEurekaServer,来声明是一个基于Eureka的注册发现中心。
@SpringBootApplication @EnableEurekaServer public class SpringclouddemoServerEurekApplication { public static void main(String[] args) { SpringApplication.run(SpringclouddemoServerEurekApplication.class, args); System.out.println("服务监控访问地址:http://www.localhost:8761"); } }
(4)启动springcloud-server-eureka服务
点击绿色尖头启动
(5)访问注册中心
启动成功以后,在浏览器中访问 http://localhost:8761 查看服务注册中心是否启动成功。
启动成功界面如下:
至此,服务注册/发现中心搭建完成。
下一课我们将学习如何来搭建生产者模块和消费者模块,请继续关注。
0条评论
点击登录参与评论