详解Eureka服务注册和调用

这篇具有很好参考价值的文章主要介绍了详解Eureka服务注册和调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.概述

2.环境

2.1.项目结构

2.2.项目架构

2.3.依赖

3.注册中心

3.1.配置使用

3.2.管理页

3.3.集群

4.服务注册

5.服务调用

5.2.Ribbon

5.3.Feign

5.4.OpenFeign


1.概述

我们把从外部进入到微服务集群里的流量称为“南北流量”、微服务集群节点间流转的流量称为“东西流量”。就“南北流量”而言微服务架构其实仍然是一个中心化的架构,这个中心是“目录”,因为需要一个“目录”来记录服务的相关信息(诸如部署在哪台服务器上),“南北流量”才能找得到服务。这个"目录"在微服务体系中被称为“注册中心”。注册中心是微服务体系中最重要的一个组件,在Netflix版本的spring cloud中,注册中心组件是——eureka。

服务提供者向注册中心(Eureka Server)中注册数据,消费者在注册中心(Eureka Server)中获取数据。系统中的微服务使用Eureka客户端链接到Eureka Server中,并且维持心跳(即固定时间向server发送信号,证明自己存活。)

详解Eureka服务注册和调用

以上整个流程中,有两个组件的参与:

  • 注册中心
  • 远程服务调用组件

在Netflix版的spring cloud中注册中心一直都是eureka,但是远程服务调用组件有好几个可选:

  • Ribbon
  • Feign
  • OpenFeign。

它们之间从上到下都是逐渐优化、取代的关系。

本文会首先讲使用eureka进行服务注册,然后顺序的讲以上几种远程服务调用组件的使用和其相较于前一个的优化点在哪里。

2.环境

2.1.项目结构

详解Eureka服务注册和调用

整个示例项目用标准的maven结构,分为三个子module:

  • eureka,注册中心
  • userService,服务提供者
  • consumer,服务调用者

整个项目的依赖的版本管理在最顶层的父级pom.xml中进行。

2.2.项目架构

整个示例项目之所以分为三部分是希望在服务调用者和服务之间使用通信组件来展示如何结合注册中心来进行服务间的通信:

详解Eureka服务注册和调用

2.3.依赖

spring官网,进入spring cloud的项目,项目首页详细记录着Netflix版本的spring cloud和spring boot之间的版本对应关系:

详解Eureka服务注册和调用

本项目我们选取spring boot 2.6.Xspring cloud Netflix aka jubilee。

在最顶级的父pom中引入依赖:

 <properties>
        <spring-cloud.version>2021.0.7</spring-cloud.version>
        <spring-boot.version>2.6.10</spring-boot.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

3.注册中心

3.1.配置使用

依赖:

详解Eureka服务注册和调用

配置:

详解Eureka服务注册和调用

启动:

@SpringBootApplication
@EnableEurekaServer
public class EurekaMain {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain.class);
    }
}

3.2.管理页

通过IP+端口号的方式可以访问到eureka server的管理页:

整个管理页里面最重要的一部分是框起来的这部分,这部分显示的是注册在当前eureka server上的服务有哪些,目前还没有服务注册,所以没有显示任何东西。

详解Eureka服务注册和调用

3.3.集群

eureka支持集群模式用于相互冗余容灾。eureka集群的配置很简单,没必要单独写了例子,以下是博主之前做的eureka的集群配置文件,看后会一目了然。

在每个eureka上关联其它eureka:

详解Eureka服务注册和调用

 服务注册到所有eureka上:

详解Eureka服务注册和调用

4.服务注册

注册中心已经准备好了,接下来我们要准备一个服务,将它注册到配置中心上。
依赖:

详解Eureka服务注册和调用

配置:

详解Eureka服务注册和调用

启动:

@SpringBootApplication
@EnableEurekaClient
public class UserServiceMain {
    public static void main(String[] args) {
        SpringApplication.run(UserServiceMain.class,args);
    }
}

启动服务后,可以在eureka server上查看服务是否已经注册: 

详解Eureka服务注册和调用

5.服务调用

准备好注册中心、注册好服务后,接下来就是如何调用服务的问题了。也就是如何用以下几种组件来调用服务:

  • Ribbon
  • Feign
  • OpenFeign

5.2.Ribbon

ribbon只是一个负载均衡组件,需要依赖于其它HTTP通信组件来实现通信,一般用ribbon+spring boot自带的RestTemplate。

依赖:

eureka的以来里集成了ribbon,所以要使用ribbon来调服务的时候,直接引入eureka的依赖即可。

详解Eureka服务注册和调用

配置:

@LoadBalanced用来将RestTemplate托管给ribbon来管理。

详解Eureka服务注册和调用

详解Eureka服务注册和调用

服务调用:

详解Eureka服务注册和调用 结果:

详解Eureka服务注册和调用

5.3.Feign

ribbon+restTemplate可以完成服务的调用以及负载均衡,但是存在一个很明显的地方就是服务名直接写死,不便于维护。srping体系中主体思想是依赖倒置,也就是面向接口编程,所以社区推出了Feign,其封装了ribbon和http请求工具,使得其除了能完成负载均衡和http请求以外,可以面向接口编程来完成服务调用。

依赖:

详解Eureka服务注册和调用

服务层:

详解Eureka服务注册和调用 服务调用:

详解Eureka服务注册和调用 开启Feign:

详解Eureka服务注册和调用

结果:

详解Eureka服务注册和调用

5.4.OpenFeign

feign面向接口的、声明式的服务调用组件,其封装了ribbon,目的是简化服务调用代码,使得服务调用具有rest风格。Openfeigin是feigin的升级版,增强了对springMVC注解的支持。

以上是博主写过的一个OpenFeign的示例。

依赖:

详解Eureka服务注册和调用

 启动:

详解Eureka服务注册和调用

服务层:

详解Eureka服务注册和调用

服务调用:

详解Eureka服务注册和调用文章来源地址https://www.toymoban.com/news/detail-478744.html

到了这里,关于详解Eureka服务注册和调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud学习笔记(上):服务注册与发现:Eureka、Zookeeper、Consul+负载均衡服务调用:Ribbon

    SpringCloud=分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶。 springboot版本选择: git源码地址:https://github.com/spring-projects/spring-boot/releases/ SpringBoot2.0新特性:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release springcloud版本选

    2024年02月08日
    浏览(43)
  • 一、开发环境window10微服务注册中心搭建—Eureka

    简述: Eureka 是天生集群的,搭建配置相当简单:不论你有多少的机器部署,只要相互之间指定对方的 注册中心 地址就可以了 ,而多个 Eureka Server 之间是通过复制的方式完成注册服务的同步,遵循AP原则。 优点: 从设计角度来看,Eureka可以说是无懈可击,注册中心、提供者

    2024年02月05日
    浏览(42)
  • springcloud五大组件:Eureka:注册中心、Zuul:服务网关、Ribbon:负载均衡、Feign:服务调用、Hystix:熔断器

    Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。 SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。 Eureka包含两个组件:Eureka Server和Eure

    2024年04月10日
    浏览(43)
  • Eureka注册中心 与 OpenFeign调用接口

    一个应用通过接口,调用另一个应用的接口。使用OpenFeign来实现接口调用。 通过OpenFeign(本文接下来简称Feign)调用远程接口,需要Eureka注册中心的支持。 OpenFeign调用接口的逻辑如下: 提供接口的应用(A),将自身注册到Eureka服务器(注册中心);应用A需要给自己起一个应

    2024年02月15日
    浏览(50)
  • 【SpringCloud】Eureka原理分析、搭建Eureka服务、服务注册、服务发现

    🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 当有两个服务,第一个服务需要远程调用第二个服务,采用的方式是发起一次HTTP请求,在之前的代码中是将服务提供者的ip和端口号硬编码到

    2024年02月07日
    浏览(49)
  • eureka服务注册和服务发现

    我们要在orderservice中根据查询到的userId来查询user,将user信息封装到查询到的order中。 一个微服务,既可以是服务提供者,又可以是服务消费者,因此eureka将服务注册、服务发现等功能统一封装到了eureka-client端

    2024年02月10日
    浏览(37)
  • 1.2 eureka注册中心,完成服务注册

    目录 环境搭建 搭建eureka服务 导入eureka服务端依赖 编写启动类,添加@EnableEurekaServer注解 编写eureka配置文件 启动服务,访问eureka Euraka服务注册 创建了两个子模块 在模块里导入rureka客户端依赖  编写eureka配置文件 添加Services 创建父工程,父工程中导入spring cloud的依赖,用来统

    2024年02月14日
    浏览(40)
  • 【1.2】Java微服务:eureka注册中心,完成服务注册

    目录 环境搭建 搭建eureka服务 导入eureka服务端依赖 编写启动类,添加@EnableEurekaServer注解 编写eureka配置文件 启动服务,访问eureka Euraka服务注册 创建了两个子模块 在模块里导入rureka客户端依赖  编写eureka配置文件 添加Services 创建父工程,父工程中导入spring cloud的依赖,用来统

    2024年02月14日
    浏览(38)
  • 什么是Eureka?以及Eureka注册服务的搭建

         导包  这是默认的Eureka server 的地址端口号为8761 如果我想用,子集的地址和自己的端口号,那么得在 yml配置文件里去写响应的配置,具体如下面的代码块实现  yml 主启动类 配置文件配置了,相当于把Eureka-server 那个类加载到IOC容器里供spring使用 然后允许就可以了,就

    2024年02月11日
    浏览(41)
  • 服务注册发现_搭建单机Eureka注册中心

    创建cloud-eureka-server7001模块 pom添加依赖 写yml文件 主启动类 测试 访问浏览器localhostL:7001 参数: Environment: 环境,默认为test,该参数在实际使用过程中,可以不用更改 Data center: 数据中心,使用的是默认的是 “MyOwn” Current time:当前的系统时间 Uptime:已经运行了多少时间

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包