第二章 服务的注册和发现Eureka

        "Eureka"来源于古希腊词汇,意为“发现了”。在软件领域,Eureka是Netflix在线影⽚公司开源 的⼀个服务注册和发现组件,和其他的Netflix公司的服务组件(例如负载均衡,熔断器,⽹关等) ⼀起,被Spring Cloud社区整合为Spring Cloud Netflix模块。

2.1 Eureka简介

        和Zookeeper类似,Eureka是⼀个⽤于服务注册和发现的组件,最开始主要应⽤与亚⻢逊公司的云 计算服务平台AWS,Eureka分为Eureka Server和Eureka Client,Eureka Server为Eureka服务注册中⼼,Eureka Client为Eureka客户端。

        举个例⼦:Eureka好⽐滴滴⽹约⻋平台,没有滴滴时,⼈们出⻔叫⻋只能叫出租⻋。⼀些私家⻋想做出租却没有资格,被称为⿊⻋。⽽很多⼈想要约⻋,但是⽆奈出租⻋太少,不⽅便。私家⻋很多却不敢拦,⽽且满⼤街的⻋,谁知道哪个才是愿意载⼈的。⼀个想要,⼀个愿意给,就是缺少引⼦,缺乏管理啊。

        此时滴滴这样的⽹约⻋平台出现了,所有想载客的私家⻋全部到滴滴注册,记录你的⻋型(服务类型),身份信息(联系⽅式)。这样提供服务的私家⻋,在滴滴那⾥都能找到,⼀⽬了然。此时要叫⻋的⼈,只需要打开APP,输⼊你的⽬的地,选择⻋型(服务类型),滴滴⾃动安排⼀个符合需求的⻋到你⾯前,为你服务,完美!

        Eureka相当于微服务架构中的“滴滴”。负责微服务的注册和发现⼯作,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到Eureka注册中⼼,当服务需要调⽤其它服务时,就从Eureka找到服务的地址,进⾏调⽤。Eureka在Spring Cloud中的作⽤是⽤来作为服务治理实现服务注册和发现。Eureka主要涉及到三⼤⻆⾊:服务提供者、服务消费者、注册中⼼。

        服务注册是指,各个微服务在启动时,将⾃⼰的⽹络地址等信息注册到Eureka,服务提供者将⾃⼰的服务信息,如服务名、IP等告知服务注册中⼼。

        服务发现是指当⼀个服务消费者需要调⽤另外⼀个服务时,服务消费者从Eureka查询服务提供者的地址,并通过该地址调⽤服务提供者的接⼝。⼀个服务既可以是服务消费者,也可以是服务发现者。

        各个微服务与注册中⼼使⽤⼀定机制(例如⼼跳)通信。如果Eureka与某微服务⻓时间⽆法通信,Eureka会将该服务实例从服务注册中⼼中剔除,如果剔除掉这个服务实例过了⼀段时间,此服务恢复⼼跳,那么服务注册中⼼将该实例重新纳⼊到服务列表中,Eureka架构图,如图2-1所示。

        注意:Eureka2.x已经停更,解决⽅案推荐使⽤Nacos作为替换⽅案,Nacos在Spring Cloud Alibaba中讲解。

2.2 Eureka⼊⻔

        本节介绍Eureka的基本使⽤,创建Eureka Server,让后将上⾯⽀付微服务,和订单微服务注册到Eureka Server中。Eureka基本机构主要包括以下3个⻆⾊。

  • Eureka Server:服务注册中⼼,提供服务注册和发现功能。
  • Provider Service:服务提供者,案例中就是⽀付微服务。
  • Consumer Service:服务消费者,案例中就是订单微服务。

2.2.1 EurekaServer

1.选择依赖

选择下⾯依赖,如图2-2所示。

  • Spring Boot 2.4.8
  • Spring Boot DevTools
  • Lombok
  • Eureka Server

pom.xml配置⽂件代码如下。

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"> 
​
<modelVersion>4.0.0</modelVersion> 
<parent> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-parent</artifactId> 
<version>2.4.8</version> 
<relativePath/> <!-- lookup parent from repository --> 
</parent> 
​
<groupId>com.lxs.demo</groupId> 
<artifactId>04_cloud_eureka</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<name>04_cloud_eureka</name> 
<description>Demo project for Spring Boot</description> 
​
<properties> 
<java.version>1.8</java.version> 
<spring-cloud.version>2020.0.3</spring-cloud.version> 
</properties> 
​
<dependencies> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> 
</dependency> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-devtools</artifactId> 
<scope>runtime</scope> 
<optional>true</optional> 
</dependency> 
<dependency> 
<groupId>org.projectlombok</groupId> 
<artifactId>lombok</artifactId> 
<optional>true</optional> 
</dependency> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-test</artifactId> 
<scope>test</scope> 
</dependency> 
</d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值