Eureka REST 相关接口

news2025/6/7 7:06:28

可供非 Java 应用程序使用的 Eureka REST 操作。

appID 是应用程序的名称,instanceID 是与实例关联的唯一标识符。在 AWS 云中,instanceID 是实例的实例 ID;在其他数据中心,它是实例的主机名。

对于 XML/JSON,HTTP 的 ACCEPT 类型以及提供的 content-type 必须分别包含 application/xmlapplication/json

操作HTTP 动作描述
注册新应用程序实例POST /eureka/v2/apps/{appID}输入: JSON/XML 负载
HTTP 状态码: 成功时返回 204
注销应用程序实例DELETE /eureka/v2/apps/{appID}/{instanceID}HTTP 状态码: 成功时返回 200
发送应用程序实例心跳PUT /eureka/v2/apps/{appID}/{instanceID}HTTP 状态码:
* 成功时返回 200
* 如果 instanceID 不存在则返回 404
查询所有实例GET /eureka/v2/appsHTTP 状态码: 成功时返回 200
输出: JSON/XML
查询特定 appID 的所有实例GET /eureka/v2/apps/{appID}HTTP 状态码: 成功时返回 200
输出: JSON/XML
查询特定 appID/instanceIDGET /eureka/v2/apps/{appID}/{instanceID}HTTP 状态码: 成功时返回 200
输出: JSON/XML
查询特定 instanceIDGET /eureka/v2/instances/{instanceID}HTTP 状态码: 成功时返回 200
输出: JSON/XML
将实例移出服务PUT /eureka/v2/apps/{appID}/{instanceID}/status?value=OUT_OF_SERVICEHTTP 状态码:
* 成功时返回 200
* 失败时返回 500
将实例移回服务(移除覆盖状态)DELETE /eureka/v2/apps/{appID}/{instanceID}/status?value=UPHTTP 状态码:
* 成功时返回 200
* 失败时返回 500
(value=UP 是可选的,它作为移除覆盖状态后回退状态的建议值)
更新元数据PUT /eureka/v2/apps/{appID}/{instanceID}/metadata?key=valueHTTP 状态码:
* 成功时返回 200
* 失败时返回 500
查询特定 vip 地址下的所有实例GET /eureka/v2/vips/{vipAddress}HTTP 状态码:
* 成功时返回 200,输出:JSON/XML
* 如果 vipAddress 不存在则返回 404
查询特定安全 vip 地址下的所有实例GET /eureka/v2/svips/{svipAddress}HTTP 状态码:
* 成功时返回 200,输出:JSON/XML
* 如果 svipAddress 不存在则返回 404

注册 (REGISTER)

注册时,需要提交一个符合以下 XSD 的 XML(或 JSON)请求体:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Eureka Instance Registration",
  "type": "object",
  "required": [
    "hostName",
    "app",
    "ipAddr",
    "vipAddress",
    "secureVipAddress",
    "status",
    "securePort",
    "homePageUrl",
    "statusPageUrl",
    "healthCheckUrl",
    "dataCenterInfo"
  ],
  "properties": {
    "hostName": {
      "type": "string",
      "description": "在 EC2 中应为公共 DNS 名称(在 EC2 内部解析为私有 IP)"
    },
    "app": {
      "type": "string",
      "description": "应用程序名称 (appID)"
    },
    "ipAddr": {
      "type": "string",
      "description": "实例的 IP 地址"
    },
    "vipAddress": {
      "type": "string",
      "description": "虚拟 IP 地址"
    },
    "secureVipAddress": {
      "type": "string",
      "description": "安全虚拟 IP 地址"
    },
    "status": {
      "type": "string",
      "enum": ["UP", "DOWN", "STARTING", "OUT_OF_SERVICE", "UNKNOWN"],
      "description": "实例状态"
    },
    "port": {
      "type": "integer",
      "minimum": 1,
      "description": "服务端口(可选)"
    },
    "securePort": {
      "type": "integer",
      "minimum": 1,
      "description": "安全端口"
    },
    "homePageUrl": {
      "type": "string",
      "description": "主页 URL"
    },
    "statusPageUrl": {
      "type": "string",
      "description": "状态页 URL"
    },
    "healthCheckUrl": {
      "type": "string",
      "description": "健康检查 URL"
    },
    "dataCenterInfo": {
      "type": "object",
      "required": ["name"],
      "properties": {
        "name": {
          "type": "string",
          "enum": ["MyOwn", "Amazon"],
          "description": "数据中心名称"
        },
        "metadata": {
          "type": "object",
          "properties": {
            "ami-launch-index": {"type": "string"},
            "local-hostname": {"type": "string"},
            "availability-zone": {"type": "string"},
            "instance-id": {"type": "string"},
            "public-ipv4": {"type": "string"},
            "public-hostname": {"type": "string"},
            "ami-manifest-path": {"type": "string"},
            "local-ipv4": {"type": "string"},
            "hostname": {"type": "string"},
            "ami-id": {"type": "string"},
            "instance-type": {"type": "string"}
          },
          "description": "仅当 name 为 Amazon 时需要 AWS 元数据",
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "leaseInfo": {
      "type": "object",
      "properties": {
        "evictionDurationInSecs": {
          "type": "integer",
          "minimum": 1,
          "description": "租约驱逐时间(秒),默认为 90 秒(可选)"
        }
      },
      "additionalProperties": false
    },
    "metadata": {
      "type": "object",
      "description": "应用特定的键值对元数据(可选)",
      "additionalProperties": {
        "type": ["string", "number", "boolean", "null"]
      }
    }
  },
  "additionalProperties": false
}

续约 (RENEW)

示例: PUT /eureka/v2/apps/MYAPP/i-6589ef6

响应:
• 状态码: 200 (成功)

• 状态码: 404 (Eureka 不认识该实例,请先注册)

• 状态码: 500 (失败)

注销 (CANCEL)

(如果 Eureka 在 evictionDurationInSecs(驱逐持续时间)内未收到服务节点的心跳,则该节点将自动注销)

示例: DELETE /eureka/v2/apps/MYAPP/i-6589ef6

响应:
• 状态码: 200 (成功)

• 状态码: 500 (失败)


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2402599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言字符数组输入输出方法大全(附带实例)

在 C语言中,字符数组是一种特殊的数组,用于存储和处理字符串。理解字符数组的输入和输出操作对于初学者来说至关重要,因为这是处理文本数据的基础。 字符数组的定义与初始化 在讨论输入输出之前,我们先来回顾一下字符数组的定义…

短视频矩阵SaaS系统:开源部署与核心功能架构指南

一、系统架构概述 短视频矩阵系统是基于SaaS(软件即服务)模式的多平台内容管理解决方案,通过开源技术实现账号聚合、智能创作、跨平台分发及数据闭环。系统采用微服务架构,支持高并发场景下的弹性扩展。 二、核心功能模块开发逻辑…

oss:上传图片到阿里云403 Forbidden

访问图片出现403Forbidden问题,我们可以直接登录oss账号,查看对应权限是否开通,是否存在跨域问题

4. 数据类型

4.1 数据类型分类 分类 数据类型 说明 数值类型 BIT(M) 位类型。M指定位数,默认值1,范围1 - 64 TINYINT [UNSIGNED] 带符号的范围 -128 ~ 127,无符号范围0 ~ 255,默认有符号 BOOL 使用0和1表示真和假 SMALLINT [UNSIGNED] 带符号是…

MySQL基础(二)SQL语言、客户端工具

目录 三、SQL语言 3.1 概念 3.2 基本操作 四、客户端工具 三、SQL语言 3.1 概念 SQL(Structured Query Language)结构化查询语言。SQL用于对存储数据,更新,查询和管理关系型数据库的程序设计语言。 通常执行对数据库的增删改…

CppCon 2015 学习:C++ in the audio industry

实时编程(real-time programming):音频处理对延迟极度敏感,要求代码必须非常高效且稳定。无锁线程同步(lock-free thread synchronization):避免阻塞,提高性能,尤其是在多…

C++算法-动态规划2

第 4 题 字符串分割 (Word Break) 难度: Medium备注:出自 leetcode题目描述 Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, given s "l…

软信天成:数据驱动型背后的人工智能,基于机器学习的数据管理

在数字化转型浪潮中,当代企业如同逆水行舟,不进则退。无数企业希望通过数字化转型捕获全新的市场机遇,改善财政状况,在未来市场竞争中占据一席之地。要想获得成功的数字化转型,关键因素在于具备可靠、及时的数据用以支…

MySQL提升

事务 事务:在多个操作合在一起视为一个整体。要么就不做、要么就做完。 事务应该满足ACID A : 原子性。不可分割。C : 一致性。追求的目标,在开始到结束没有发生预定外的情况。I : 隔离性。不同的事务是独立的。D : 持久性。系统崩溃,数据依然…

go语言的锁

本篇文章主要讲锁,主要会涉及go的sync.Mutex和sync.RWMutex。 一.锁的概念和发展 1.1 锁的概念 所谓的加锁和解锁其实就是指一个数据是否被占用了,通过Mutex内的一个状态来表示。 例如,取 0 表示未加锁,1 表示已加锁&#xff…

VUE解决页面请求接口大规模并发的问题(请求队列)

方案1: 请求队列 // RequestQueue.js export default class RequestQueue {constructor(maxConcurrent) {this.maxConcurrent maxConcurrent; // 最大并发请求数this.currentConcurrent 0; // 当前并发请求数this.queue []; // 请求队列this.requestId 0; // …

IDEA安装迁移IDEA配置数据位置

需求 因为C盘有清空风险,需要把IDEA(2025)安装位置以及配置数据都挪到D盘。 安装 到官网下载安装包 安装,这里可以改下安装位置 这几个选项随意,然后一直下一步就好 完成后重启或不重启都随意 迁移数据 初次安…

Blazor-表单提交的艺术:如何优雅地实现 (下)

在上一章节中我们使用HTML的方式介绍了如何在Blazor框架下进行表单的提交&#xff0c;而在Blazor框架中也为我们内置了<EditForm>组件来代替原始的HTML,<form>&#xff0c;下面我们将对<EditForm>的用法进行讲解&#xff0c;并将两种表单方式进行对比&#x…

五子棋网络对战游戏的设计与实现设计与实现【源码+文档】

五子棋网络对战游戏的设计与实现 摘 要 在现代社会中,及其它无线设备越来越多的走进普通老百姓的工作和生活。随着3G技术的普及与应用&#xff0c;基于Java开发的软件在上的使用非常的广泛&#xff0c;增值服务的内容也是越来越多&#xff0c;对丰富人们的生活内容、提供快…

Vue基础(14)_列表过滤、列表排序

Array.prototype.filter()【ES5】 filter() 方法创建给定数组一部分的浅拷贝&#xff0c;其包含通过所提供函数实现的测试的所有元素。 语法&#xff1a; filter(callbackFn) filter(callbackFn, thisArg) 参数&#xff1a; callbackFn(回调函数)&#xff1a;为数组中的每个元…

Spring Boot项目中JSON解析库的深度解析与应用实践

在现代Web开发中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;作为轻量级的数据交换格式&#xff0c;已成为前后端通信的核心桥梁。Spring Boot作为Java生态中最流行的微服务框架&#xff0c;提供了对多种JSON库的无缝集成支持。本文将深入探讨Spring B…

我用Amazon Q写了一个Docker客户端,并上架了懒猫微服商店

自从接触了Amazon Q&#xff0c;我陆陆续续写了不少小软件&#xff0c;其中这个项目是一个典型的例子&#xff0c;自己平时来使用&#xff0c;也分享给一些 NAS 爱好者来用。 故事还要用上次折腾黑群晖说起&#xff0c;本意想把 NAS 和打印机共享二合一的&#xff0c;所以把闲着…

Django CMS 的 Demo

以下是关于 Django CMS 的 Demo 示例及相关资源的整理 安装与运行 Django CMS 示例 使用 djangocms-installer 快速创建 Django CMS 项目&#xff1a; pip install django_cms djangocms -p . mysite安装记录 pip install django-cms Looking in indexes: https://pypi.tun…

在 UE5 蓝图中配置Actor类型的Asset以作为位置和旋转设置目标

目标 UE5的蓝图的事件图表里面&#xff0c;有一个模块&#xff08;节点&#xff09;如图&#xff0c;这是一个设置Actor的location和rotation量的模块&#xff0c;其中需要接收一个Target作为输入&#xff0c;这个Target应该就是一个在map中具备location和rotation信息的实例化…

适用于vue3的大屏数据展示组件库DataV(踩坑版)

踩坑版 如果按照官网(https://datav-vue3.jiaminghi.com/)的vue3安装有问题 官网是将dataview/datav-vue3 安装为本地依赖 npm install dataview/datav-vue31、跑起来报错&#xff08;报错信息忘记保留了&#xff09; 有人说找到node_modules&#xff0c; 安装成功后会有这个…