首页 > 其他分享 >Eureka介绍与使用

Eureka介绍与使用

时间:2024-07-07 20:27:47浏览次数:13  
标签:eureka 服务 介绍 Server Client 注册 使用 Eureka

        Eureka 是 Netflix 开发的一个开源服务注册与发现组件,它是 Spring Cloud 体系中的核心组件之一,主要用于微服务架构中的服务治理。Eureka 包含两个主要的组件:Eureka Server 和 Eureka Client。

Eureka Server

  • 角色:充当服务注册中心,提供服务注册和发现的功能。
  • 工作原理:服务实例在启动时会向 Eureka Server 注册自己的信息(如IP地址、端口号等),并定期发送心跳以续约。Eureka Server 维护着一个服务注册表,记录了所有可用的服务实例。
  • 自我保护机制:Eureka Server 有一个自我保护机制,当网络分区或其他异常情况下,它不会盲目地从服务注册表中移除服务实例,以保证系统的稳定性2。

Eureka Client

  • 角色:作为微服务系统中的服务实例,用于与 Eureka Server 进行交互。
  • 工作原理:Eureka Client 向 Eureka Server 发送心跳(默认周期为30秒),如果 Eureka Server 在多个心跳周期内没有接收到某个 Eureka Client 的心跳,它会将该实例从服务注册表中移除2。

使用 Eureka

  1. 搭建 Eureka Server:首先需要搭建一个 Eureka Server,作为服务注册中心。
  2. 配置 Eureka Client:在微服务应用中添加 Eureka Client 依赖,配置 Eureka Server 的地址。
  3. 服务注册与发现
    • 服务提供者(Provider)在启动时会向 Eureka Server 注册自己的服务信息。
    • 服务消费者(Consumer)在启动时也会向 Eureka Server 注册,并获取一份可用服务列表,然后可以通过 HTTP 或消息中间件远程调用服务提供者提供的服务​

Eureka 的配置示例

以下是 Eureka Server 和 Eureka Client 的配置示例:

Eureka Server 配置 (application.yml):

server:
  port: 8761 # Eureka Server 端口号

eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

Eureka Client 配置 (application.yml):

server:
  port: 8080 # 微服务应用的端口号

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/ # Eureka Server 的地址

常见问题及解决方案

  • 服务下线延迟:由于网络抖动或服务实例异常终止,Eureka Server 可能无法及时感知服务下线,可以通过调整 Eureka Server 的 lease-expiration-duration-in-seconds 来控制服务下线时间。
  • 集群搭建问题:在搭建 Eureka 集群时,需要确保所有 Eureka Server 实例能够相互注册和发现,这通常涉及到修改 eureka.client.service-url 配置。

Eureka 是微服务架构中服务注册与发现的重要组件,通过合理配置和使用,可以有效地管理微服务之间的通信和依赖关系。

标签:eureka,服务,介绍,Server,Client,注册,使用,Eureka
From: https://blog.csdn.net/wangbo_angel/article/details/140117539

相关文章

  • Kaggle网站免费算力使用,深度学习模型训练
    声明:本文主要内容为:kaggle网站数据集上传,训练模型下载、模型部署、提交后台运行等教程。1、账号注册此步骤本文略过,如有需要可以参考其他文章。2、上传资源不论是上传训练好的模型进行预测,还是训练用的数据集都可以按此步骤上传。如果是数据集的话,先要将数据集进行压缩,才......
  • 数据库基本指令大全-使用合集
    #数据库操作SHOWDATABASES;#查看当前所有的数据库USE库名;#打开指定的库SHOWTABLES;#查看当前库的所有表SHOWTABLESFROM库名;#查看其他库的所有表DESC表名;#查看表的列信息SELECT*FROM表名;#查看表中所有数据SELECT`字段`,`字段`FROM表名;#自定......
  • python 调用 bat,传入参数,bat中实现如果有参数传入则读取参数,没有的话就使用内部的变量
    以下是一个Python调用BAT脚本并向其传递参数的示例,同时BAT脚本中会判断是否有参数传入并进行相应处理:Python代码:pythonimportsubprocess#定义要传递的参数parameter="example_parameter"#调用BAT脚本并传递参数subprocess.run(["your_bat_script.b......
  • 硬件开发笔记(二十三):贴片电阻的类别、封装介绍,AD21导入贴片电阻原理图封装库3D模型
    前言  电阻,电容,电感还有各种基础的电子元器件、连接器和IC构成了各种实现功能的电子电路。  本篇介绍贴片电阻,并将贴片电阻封装导入AD21,预览其三维模型。 贴片电阻    贴片电阻(SMDResistor)作为一种不可或缺的电子元件,广泛应用于各种电路和设备中。其体积......
  • tcp 中的poll机制介绍
    加入poll或者select机制可以使程序更加健壮和高效,特别是在需要处理多个连接时。虽然上面的示例是基于单线程的accept和read,它只能处理一个连接,直到它结束才能处理下一个连接。这种方法在简单应用中可能足够,但在实际生产环境中,通常会遇到需要同时处理多个连接的情况。......
  • swiftui中TabView使用,以及Tab使用注意
    TabView官方文档:TabView|AppleDeveloperDocumentationTab官网文档:Tab|AppleDeveloperDocumentation使用交互式用户界面元素在多个子视图之间切换的视图。也就是手机底部的几个导航菜单一样,但是注意官方给的例子里面有使用Tab组件的,但是这个Tab组件注意:暂时只支持bet......
  • 如何在 Linux 中使用 ACL、chmod 和 chown 进行文件权限控制
    在Linux系统中,ACL(访问控制列表)、chown和chmod是管理文件和目录权限的主要工具。本文将详细介绍如何在CentOS中使用这些工具进行权限控制,并对它们的区别和具体用法进行说明。1.基本概念ACL(AccessControlList)ACL(AccessControlList)是一种用于控制文件和目录访问......
  • 通过JRaft简单使用raft选举
    依赖:<dependency><groupId>com.alipay.sofa</groupId><artifactId>jraft-core</artifactId><version>1.3.14</version></dependency>StateMachine.java:@Slf4jpublicclassStateMachineextendsStateMachineA......
  • mybatis-plus中last和orderBy的连用的使用顺序
    1. mybatis-plus中last和orderBy的连用的使用顺序在MyBatis-Plus中,last方法用于在构建查询时添加自定义的SQL片段,而orderBy方法用于指定排序规则。当你想要结合使用这两个方法时,可以先调用orderBy指定排序规则,然后调用last添加自定义的SQL片段。@Autowired......
  • 2024-07-07 如何把ipad当作windows副屏使用 ==》 通过软件dute display和数据线连接
    windows:进入dutedisplay官网https://www.duetdisplay.com/zh#download,下载并安装ipad:在苹果应用商店搜索dutedisplay,选中并下载 注意:你需要注册一个dutedisplay账号,才能登录该软件,它是付费的,so,我看到付费我就放弃了。如果,你给钱了,那么,接下来我也不知道对不对,你用ipad充电线......