首页 > 其他分享 >Eureka的了解与基本使用

Eureka的了解与基本使用

时间:2024-11-22 18:16:11浏览次数:3  
标签:基本 服务 url eureka 了解 EurekaServer 注册 服务提供者 Eureka

Eureka架构中,微服务角色有两类:

        EurekaServer:服务端,注册中心
  •      记录服务信息
  •      心跳监控
        EurekaClient:客户端
                Provider:服务提供者
  •                 注册自己的信息到EurekaServer
  •                 每隔30秒向EurekaServer发送心跳
                Consumer:服务消费者
  •                 注册自己的信息到EurekaServer
  •                 每隔30秒向EurekaServer发送心跳
  •                 根据服务名称从EurekaServer拉取服务列表
  •                 基于服务列表做负载均衡,选中一个微服务后发起远程调用

Eureka的作用:

        消费者如何获取服务提供者具体信息?
  •         服务提供者启动时 向eureka注册自己的信息
  •         eureka保存这些信息
  •         消费者根据服务名称向eureka拉取提供者信息
        如果有多个服务提供者,消费者该如何选择?
  •         服务消费者利用负载均衡算法,从服务列表中挑选一个
        消费者如何感知服务提供者健康状态?
  •         服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态
  •         eureka会更新记录服务列表信息,心跳不正常会被剔除
  •         消费者就可以拉取到最新的信息

使用Eureka注册中心:

搭建EurekaServer

导入依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
编写启动类: 添加@EnableEurekaServer注解
添加application.yml文件,编写下面配置:
server:
  port: 10086
spring:
  application:
    name: eureka-server # 服务名
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka/ #     eureka注册中心服务地址

服务注册:

导入依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
配置文件:
spring:
  application:
    name: userservice    #服务名称
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka     #eureka注册中心服务地址

服务拉取:

修改访问的url路径,用服务提供者的服务名称代替IP、端口
public Order queryOrderById(Long orderId) {
    // 1.查询订单
    Order order = orderMapper.findById(orderId);
    // 2.获取用户信息
    //2.1 拼接远程调用url
    
    //"http://localhost:8080/user/" ---> "http://USERSERVICE/user/"
    String url = "http://USERSERVICE/user/" + order.getUserId();
    User user = restTemplate.getForObject(url, User.class);
    //3. 封装用户信息
    order.setUser(user);
    // 4.返回
    return order;
}
在注入RestTemplate实体类对象的方法上添加负载均衡注解@LoadBalanced
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
    return new RestTemplate();
}

注意事项:

eureka注册中心的实例名称是你的服务名称大写,调用时也需使用大写

spring:
  application:
    name: userservice    #服务名称
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka     #eureka注册中心服务地址

标签:基本,服务,url,eureka,了解,EurekaServer,注册,服务提供者,Eureka
From: https://blog.csdn.net/2301_82119611/article/details/143980052

相关文章

  • PostgreSQL插件TimeScaleDB基本使用
    时序数据是按照时间序列进行组织的数据,主要用于描述事物、现象随时间的变化趋势;每个数据点通常由时间戳和一个或多个与之相关的值组成;在金融,工业物联网,IT行业系统数据等多个领域有着较为广泛的应用。时序数据面临的问题:由于时序数据是采集频率较高,数据随时间增长速度较快,因此面......
  • 了解Envoy proxy
    前言:由于面试过程中遇到的前端服务代理的工具Envoyproxy,借此先浅浅的学习一下官方文档:https://www.envoyproxy.io/Envoyisanopensourceedgeandserviceproxy,designedforcloud-nativeapplicationsEnvoy是一个开源边缘和服务代理,专为云原生应用而设计。最初由Lyft......
  • 360度评估的基本流程是什么?
    360度评估法是一种从多个角度获取组织成员行为观察资料的方法。在这种评价模式中,评价者不仅仅包括被评价者的上级主管,还包括其他与之密切接触的人员,如同事、下属、客户等,同时包括被评价者的自评。虽然360度评估法已不是什么新鲜概念,也在企业内部对员工开展的绩效考核中也被有所应......
  • 【揭秘】Thymeleaf基本使用:从新手到高手的必经之路!
    Thymeleaf是一个现代的服务器端Java模板引擎,用于Web和独立环境。它能够处理HTML、XML、JavaScript、CSS甚至纯文本。Thymeleaf的主要目标是提供一种优雅且自然的方式来生成XML/XHTML/HTML5文档。打开免费领取面试资料https://fhos.urlint.cn/cHVLFV以下是一些基......
  • 一篇文章了解何为 “大数据治理“ 理论与实践
    什么是大数据治理?大数据治理是指在大数据环境中,围绕数据的管理、控制和优化,采用系统化的策略、流程、技术和标准,以确保数据的质量、合规性、安全性和可用性。它是企业数据管理的重要组成部分,尤其在大数据应用广泛的背景下显得尤为重要。大数据治理不仅涉及技术层面的工具......
  • Linux操作系统的安装、基本管理和常用命令(操作系统实验一)
    1.Linux操作系统(Centos)的安装安装VMware16在VMware16上创建虚拟机并安装Centos2.Linux系统的基本管理Linux的启动和退出启动Linux系统,输入用户名和密码后,登录系统;退出Linux系统,使用完毕后,退出系统。用户和用户组管理用户组管理。用户管理包括增加、修改和删除用......
  • Zepto基本选择器与DOM操作
    目录Zepto基本选择器ZeptoDOM操作Zepto基本选择器基础选择器ID选择器Zepto('#elementId');此代码会选取ID为elementId的DOM元素。类选择器Zepto('.className');选取所有拥有类名为className的元素。标签选择器Zepto('tagName');选取所有指定标签名(如div,s......
  • 一分钟带你了解FPGA
    FPGA(Field-ProgrammableGateArray)即现场可编程门阵列,是一种在PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。1、内部结构特点   FPGA主要由可编程逻辑单元(CLB,ConfigurableLogicBlock)、输入输出单元(IOB,Input/OutputBlock)和可编程互......
  • 使用Fortran实现基本图像识别
    Fortran作为一门高性能科学计算语言,以其强大的数值计算能力而闻名。它在处理多维数组和矩阵运算方面表现出色,非常适合用于实现图像处理任务。下面展示如何用Fortran实现简单的图像边缘检测。代码实现以下代码读取灰度图像数据,并利用Sobel算子进行边缘检测:fortran更多内容访问t......
  • 使用Python实现基本图像识别
    Python是一种强大且易于使用的编程语言,广泛应用于数据科学和图像处理领域。通过其丰富的库支持,我们可以快速实现图像处理任务,例如边缘检测。以下示例展示了如何用Python和基础工具实现简单的边缘检测。代码实现以下代码利用Sobel算子进行灰度图像的边缘检测:python更多内容访问......