01_Eureka 源码初探
![01_Eureka源码初探](https://static001.geekbang.org/infoq/ef/ef9663f92cac9c1dfef74362174fb53b.jpeg)
前言
学习本课程之前,希望需要具备如下知识,Eureka应用。能够将client和server通过eureka完成注册,并能够完成应用的简单调用
课程目标
本篇课程作为Eureka系列的入门热身,希望大家能够掌握和了解如下内容。
了解Eureka整体的结构
了解Eureka中的一些概念及名词
了解Eureka各个组件之间的交互关系以及流程
目录
概述
Eureka架构图
请求流程图
代码说明
图说流程
1.概述
Eureka的一些概念
服务提供者(Provider):我们这里可以把它称作服务提供者或者叫做server。当然这里只是一个相对的概念,如服务A可以作为server给服务B提供服务,同时服务B也可以作为server给A提供服务。
一个springboot应用,通过注解标明
服务调用者(Consumer): 作为服务使用者,调用Provider端的接口,返回数据进行逻辑处理,
一个springboot应用,通过注解标明
,这里我们吧Provider
和Consumer
都称作Eureka的client。因为它们续约将本身作为client注册到Eureka上。而Eureka
服务在这里称之为Eureka server.服务注册(Rigister):服务(包括Server和Client)启动时,会将本身注册到Eureka Server上,同时会将一些数据信息发送到Eureka Server上(包含ip,端口,服务名等)
服务续约(Renew):这个概念是在注册中心中比较常见的,不仅仅是在Eureka中。该功能通过心跳机制实现,每间隔30s会向Eureka发送一个信息通知Eureka,自己还在运行。若长时间未续约,则该服务会被剔除。具体源码后续会进行分析
服务下线(Eviction):若Eureka client长时间未向Eureka Server发送心跳,则会将该节点从Eureka 中剔除。
2.Eureka架构图
Eureka是满足
CAP
理论中的AP
,无法保障一致性,因为对于Eureka来说每个节点都是等价的。Eureka集群之间,每个节点会作为client向其他节点发送信息。这块内容后续会详细解释,本篇先作为入门热身。
![](https://static001.geekbang.org/infoq/61/61e163074710734663d9810df67a7d85.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
Eureka
3.代码实践
3.1.Eureka Server
pom配置
引入注解
配置文件
3.2.服务提供者(Provider)
这里我们模拟一个用户服务调用订单服务的功能。将
user
作为访问调用者,order
作为服务提供者
pom依赖
注解
配置文件
3.3.服务调用者(Consumer)
pom依赖
这里包含了后续Feign的配置,可以先添加进来
注解
配置文件
4.图说流程
一张图说明上述几个服务之间的流程。
![](https://static001.geekbang.org/infoq/3a/3a615b77e8163c56bff0bda6044c1a1b.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
1.Eureka启动集群
2.user服务和order服务启动时,需要将自己注册到Eureka Server上。同时会把user和order相关节点的ip,port,serviceName等传递给Eureka上,并获取到注册信息。
3.
User
服务调用Order
服务时,会从Eureka中获取到一个对应的Order服务的List,其中Instance包含了ip,port,sericeName等信息。4.通过一些策略同上述的list中选中一个节点,通过http完成访问的调用。
访问Eureka服务获取Eureka页面,可以查看所有注册到Eureka Server上的一些服务的信息。
![](https://static001.geekbang.org/infoq/e4/e42b98ef6fbc06c5d7a3f7f649b46825.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
关于
![](https://static001.geekbang.org/infoq/72/72ff2cb3d2a429fc91a187583122b805.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
版权声明: 本文为 InfoQ 作者【阿亮】的原创文章。
原文链接:【http://xie.infoq.cn/article/8bcdd7a9f1b717793bc40bcb0】。文章转载请联系作者。
评论