本篇文章主要介绍 Eureka ,搭建服务注册中心,以及
Eureka介
Spring Cloud Eureka:服务治理,主要负责完成微服务架构中的服务治理功能,Spring Cloud通过为Eureka增加了Spring Boot风格的自动化配置,我们只需要通过简单的引入依赖和注解配置就能让Spring Boot构建的微服务引用轻松地与Eureka服务治理体系进行整合。
服务治理是微服务架构中最核心和基础的模块,它主要用来实现各个微服务实例的自动注册和发现。
Eureka分为 Eureka Server (服务注册中心)和Eureka Client(服务发现和消费)
Eureka服务端:注册中心
Eureka服务端,也成为服务注册中心在服务治理框架中,通常会构建一个注册中心,每个服务单元向注册中心登记自己提供服务,包含一些主机与端口号,版本号,通信协议等信息,注册中心按照服务名分类组织服务清单。服务注册中心支持高可用配置
Eureka客户端:注册和发现
Eureka客户端,主要负责服务的注册和发现。客户端服务通过注解和参数配置的方式。嵌入在客户端应用程序的代码中,程序运行时,Eureka客户端向注册中心提供注册,并周期性的发送心跳。来更新与服务中心的连接状态。同时,它也可以从Eureka服务端查询当前注册的服务信息,并把它们缓存到本地,且周期性的刷新这些信息。
搭建服务注册中心
通过IDEA构建一个SpringBoot项目,在pom.xml中添加Eureka的依赖以及SpringCloud的版本
注意:SpringBoot的版本和SpringCloud版本要兼容,不然启动会报下面的错误,
我的SpringBoot parent版本:1.5.3.RELEASE SpringCloud版本:Dalston.SR3
创建一个SpringBoot的启动类 @EnableEurekaServer注解表示Eureka服务端的启动注解
配置allpication.yaml 使用YAML结构的配置文件
启动RegistCenterOne类 出现以下信息表示启动成功
EurekaUI界面 http://localhost1:1111
Instances currently registered with Eureka 显示注册在该注册中心的服务
注册服务提供者
有了注册中心,接下来就需要有其他服务注册到注册中心上去
创建一个SpringBoot web项目 pom.xml和注册中心配置一样,创建一个Controllerl类和一个启动类
HellowordController类
HellowordMain类 @EnableDiscoveryClient 表示在程序中嵌入一个注册启动,程序启动后,该服务会根据配置自动向注册中心注册
application.yaml配置文件
首先启动上面的注册中心,然后启动HellowordMain 查看HellowordMain 后台出现以下信息表示启动 注册成功
查看注册中心后台 可以发现hello-service:8012已经注册到注册中心上面
在查看EurekaUI
高可用注册中心
在本地环境下测试一个注册中心就可以满足所有的测试,但是在生产环境下,为了集群的高可用,需要部署多个注册中心,如果有一个注册中心挂了,可以启用其他的注册中心,确保集群能够正常运行。
在微服务中,一个服务既可以是Eureka Server,也可以是Eureka Client 。通过设置两个参数
eureka:client:register-with-eureka:true eureka:client:fetch-registry:true
Eureka Service 的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就形成一组互相注册的服务注册中心,以实现服务清单的相互同步,达到高可用的效果。
在创建一个SpringBoot 项目 复制一份上面的注册中心,在配置文件中修改一下,在注册中心地址中加上两个注册地址,使用逗号隔开
同时在原先的注册中心配置文件中也加上相应的两个注册注册中心地址
同时开启两个注册中心 查看其中一个注册中心的UI 可以看到注册中心不仅有自身实例也有另一个注册中心的实例
这样Eureka的高可用就实现了