1 服务治理
服务治理是微服务架构中最为核心和基础的模块,主要来实现各个微服务实例的自动化注册与发现。为了解决微服务架构中的服务实例维护问题,引入了eureka来进行维护,同时也简化的这些服务之间的关系,更加简单方便。
服务治理:当我们在说微服务治理的时候究竟在说什么
2 服务间调用
在服务间的互相调用,最原始的方式是谁需要就添加谁的依赖,以前的场景是这样的:
服务A调用服务C和服务D,服务B调用服务C和服务D
现在的服务都比较简单,容易找到,所以我们将这些服务都注册到一个注册中心里面,然后如果我们需要调用这些服务都需要经过一个注册中心才可以找得到。
Eureka分为Server端和Client端:
Server端为注册中心
Client分为了消费者(Consumer)和提供者(Provider)
Server端和Client端都是提供了高可用的配置:
Server端在集群部署时如果有分片出现故障时,Eureka就会转入自我保护模式,它在有故障的时候依旧可以继续提供服务的发现和注册,当故障分片恢复运行时,集群的其他分片会把他们的状态再次同步回来。
Client端同样支持集群部署,部署在不同的服务器上进行同步配置,就可以实现高可用。
3 搭建注册中心
目录结构
3.1 创建spring boot项目,添加依赖
<?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 http://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.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</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>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.2 配置文件:application.properties
# 当前Eureka服务器端口
server.port=8761
# 服务注册中心实例的主机名
eureka.instance.hostname=localhost
# 是否向服务注册中心注册自己
eureka.client.registerWithEureka=false
# 是否检索服务
eureka.client.fetchRegistry=false
3.3 在启动类上添加注解
3.4 运行结果
4 最后
4.1 代码示例:
待上传