第3章:服务治理:Spring Cloud Eureka
Spring Cloud Eureka基于NetFlix Eureka做了二次封装,主要负责微服务架构中的服务治理功能。
服务治理
服务治理是微服务架构中最核心与基础的模块,主要用来实现各个微服务实例的自动化注册与发现。
解决微服务架构中的服务实例维护问题,有很多服务治理框架与产品,这些产品都围绕:服务注册与服务发现机制来完成对微服务应用实例的自动化管理。
服务注册:服务治理框架下,构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机 端口号 版本号 通信协议等附加信息告知注册中心,注册中心按服务名分类组织服务清单。另外,服务注册中心还需要以心跳的方式检测清单中的服务是否可用,不可用则从清单移除,达到排除故障服务的效果。
服务发现:基本运行思路:【服务治理框架下,服务间调用不再通过指定具体的实例地址实现,而是通过向服务名发起请求调用实现。所以,服务调用方在调用时,不清楚具体对方服务实例位置,先向服务注册中心咨询服务,获取所有服务的实例清单,再去访问。调用方访问提供方时,以某种轮询策略取出一个位置来进行服务调用。(客户端负载均衡)】在实际的情况下会有不同的实现策略。
搭建服务注册中心
创建项目Spring Boot项目:eureka-server
POM.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.7.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type></