一、什么是Eureka?
官方翻译:Eureka是一个基于Rest的服务,用于定位服务,以实现云端中间层服务发现和故障转移。即--Eureka主管服务的注册与发现。
在微服务架构中,只需要使用服务的标识符(微服务名称),就可以访问到服务。如果将一部手机比喻为一个微服务架构,那么每一个电话号码就是一个微服务,而管理号码的电话簿就相当于Eureka,它可以发现你保存的每一个号码并注册到电话簿中,可以随时查看该号码的详情。
二、Eureka原理
根据上图进行现实中的举例:
将上图比喻为一个商场,Application Client为商家,Application Service为顾客,而Eureka Server就是每层楼的楼层索引图;
商家必须要先到楼层索引图中注册登记,而楼层索引图为商家的店铺进行统一管理。当顾客来到商场后,会首先看到索引图,看是否存在她需要的商铺,有就会去进行访问购物。
三、Eureka在Maven项目中的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<!--尾缀是server的属于Eureka的服务端,即注册中心端-->
</dependency>
四、在application.yml中的主要配置
server:
port: 7001 #端口号必配
eureka:
instance:
hostname: localhost #eureka服务端的实例名称
Client:
register-with-eureka: false #false表示不向注册中心注册自己
fetch-registry: false #false表示自己端就是注册中心,职责仅是维护服务实例,并不需要去检索服务。
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
五、在主启动类上,标注启动Eureka的相关注解
@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer //表示Eureka服务端启动类,接受其他微服务注册进来
public class EurekaServer7001_App {
public static void main(String[] args){
SpringApplication.run(EurekaServer7001_App.class,args);
}
}
表示这个微服务是Eureka服务端,即注册中心。允许并接受其他微服务注册进来进行管理。
启动Eureka服务端的启动类,在浏览器上输入localhost:7001/,能正常访问到spring eureka 就ok了。但此时注册中心并没有任何微服务注册进去。如下图所示
访问地址http://localhost:7001/可以通过电脑的host文件进行地址映射,在yml文件中配置的地址就可以是我们映射的地址加端口号。