Eureka介绍

Eureka介绍

产生的背景

一般我们自己的服务之间互相调用的时候,直接就在配置文件中配置被调用的服务地址。然后服务读取配置文件,发起调用。调用关系可以简化为下图:

服务直接调用

这样的调用会存在一些不小的问题:

  1. 服务B如果挂了的话,服务A即时调用不同
  2. 如果后续再新增了N多服务器的话,服务A每个服务都要维护一个调用地址,繁琐,容易出错
  3. 如果服务B是一个基础服务,有成百上千个服务调用它的话,每个服务都要维护一个服务B的地址。一旦服务B地址有所变更,那么每个服务都要修改

于是,服务中心就应运而生了。服务中心又称为注册中心,管理各种服务功能,包括服务的注册,发现,熔断负载,降级等。

有了服务中心之后,上图服务A调用服务B的流程,就转变为:

通过服务中心调用

  1. 服务A向服务中心请求,获取服务B的地址列表(前提是服务B在启动之后已经向服务中心注册过,否则获取到的结果为空列表)
  2. 服务中心将服务B的地址列表返回给服务A
  3. 服务A从地址列表中取出服务B的地址,发起调用请求

Eureka介绍

我们本文要介绍的Eureka大致的应用场景如下图:

Eureka 是一个服务发现工具。该体系结构主要是客户端/服务器,每个数据中心有一组 Eureka 服务器,通常每个可用区域一个。通常 Eureka 的客户使用嵌入式 SDK 来注册和发现服务。对于非本地集成的客户,使用功能区边框等透过 Eureka 透明地发现服务。

Eureka 提供了一个弱一致的服务视图,使用尽力而为复制。当客户端向服务器注册时,该服务器将尝试复制到其他服务器,但不提供保证。服务注册的生存时间(TTL)较短,要求客户端对服务器定时心跳。

Eureka实例

创建Eureka相关项目可参考附录

创建一个Eureka Server

附录

创建Eureka相关项目

借助Idea的Spring Assistant插件可以轻松的创建出Spring Cloud对应的项目

安装Spring Assistant

如果IDEA上已经安装了此插件,可以跳过这个小章节,直接进去创建项目阶段。

点击菜单栏“File”->”Settings”->”plugin”,在搜索栏输入Spring,选择第一个Spring Assistant,然后重启IDEA即可。

IDEA安装SpringAssistant

新建Eureka项目

右键,选择new Project,选择Spring Assistant

新建项目

点击下一步,填写项目信息

填写项目信息

点击下一步,选择 Spring Cloud Discovery,再在右边选择Eureka Server

选择Eureka Server

一直下一步到最后即可。

0%