寻求有关以最小的开销在 Netflix Eureka 可发现的 Spring Boot 服务上进行开发的正确方法的建议

2024-03-29

我们正在运行一个基于 Spring Boot 的环境,其中包含大约 15 个微服务和一个注册到 Eureka 的 Zuul 边缘网关。目前,我已经设置了所有微服务通过 Zuul 网关调用其他微服务(例如,如果 serviceA 需要调用 serviceB,则 URL 配置属性将为serviceB.baseUrl=http://zuul.mydomain.com:7001其中 zuul.mydomain.com 是我们在 AWS 上的开发服务器,所有其他微服务都在其后面运行)。 Zuul 反过来通过 Eureka 注册表查找代理微服务。

这样做的一个好处是,对于在他的机器上本地工作的开发人员来说,他只需要运行他的服务,并且其他服务上的所有其他依赖项都可以通过 AWS 上的 Zuul 网关访问(在我们的生态系统中,有很多此类跨服务依赖关系)。

现在,我真的很想充分利用 Eureka / Ribbon 的全部潜力,并通过其服务名称和一个对等微服务直接调用@LoadBalanced RestTemplate但我发现这会给开发人员带来很大的压力,必须在他的机器上重新创建整个生态系统。至少,他必须运行 Eureka、他自己的服务以及他的服务所依赖的任何其他服务。这使得发展的准入门槛过高。

我确实考虑过让开发人员的本地实例注册到AWS上的Eureka服务,但问题是AWS上的所有服务都是使用EC2实例的私有IP注册的,而开发人员的机器基本上无法访问EC2实例的私有IP。如果我强制服务使用其公共 IP 进行注册,则意味着我必须为每个服务使用更多的 ElasticIP 分配,或者在每次 EC2 实例重新启动时更改 IP。

我可以在本地网络中运行本地 Eureka + 微服务环境,但这意味着我需要为我们运营的每个办公室创建一个这样的环境,而这意味着更多的管理费用。除了这个问题之外,这可能意味着开发人员 A 可能正在调用开发人员 B 的尚未完成的依赖服务版本,如果出现问题,这只会让每个人都感到困惑(这些服务部署到我们的 AWS 环境中至少在部署之前先经过代码审查)。

如果有人找到了一种方法来简化开发人员的设置,同时能够利用对等服务调用的可能性Feign / @LoadBalanced RestTemplate客户们,我很想得到一些正确方向的指导。


已确认我可以通过以下方式完成我想要的任务(即能够在支持 Ribbon 的 RestTemplate 客户端上进行本地开发,而无需运行 Eureka):

  1. 使用以下属性强制 Ribbon 不使用 Eureka:ribbon.eureka.enabled=false
  2. 使用以下示例属性手动向功能区提供指向的服务器:servicename.ribbon.listOfServers=test.service.com:8080
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

寻求有关以最小的开销在 Netflix Eureka 可发现的 Spring Boot 服务上进行开发的正确方法的建议 的相关文章

  • Access / Word 2010 VBA 邮件合并尝试打开 [文件夹名称].mdb 而不是 ACCDB 源

    我们正在尝试从 Access 中自动执行邮件合并过程 单击按钮后 VBA 将运行指定当前数据库 accdb 作为数据源并运行 SQL 具体代码如下 Set up Word Dim objWord As Object Set objWord
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1
  • 如何为 Windows toast 注册协议?

    如何注册 Windows toast 协议 样本中来自https blogs msdn microsoft com tiles and toasts 2015 07 02 adaptive and interactive toast not
  • ngmodel与Angular2中复选框的动态数组绑定

    我有一个 Angular 2 组件 其中我从数组生成复选框列表 现在我需要根据选中的复选框填充不同的数组 这应该是双向绑定 这意味着如果复选框的值已在数组中 则必须已经检查了复选框 我在 Angular 1 中使用了一个名为 checkli
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default
  • 在 Android 中使用 iText 将图像添加到特定位置

    我想使用 Android 中的 iText 将图像添加到 PDF 文件中的特定位置 这是一个可填写的表单 我添加了作为图像占位符的文本框 我想要做的就是像这样获取该文本框和图像 public class FormFill public st
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • NGinx $proxy_add_x_forwarded_for 和 real_ip_header

    我在 NGinx 下有一个 web 应用程序和另一个前端负载均衡器 如下所示 x x x x IP 地址 客户端 a a a a gt LB b b b b gt NGX c c c c gt WEBAPP d d d d 这是我的 NGi
  • Typescript 函数接口重载

    我有以下代码 interface MySecondInterface a type A interface MyInterface val1 string val2 string MySecondInterface a
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 自定义 Visual Studio 2008 中的位置栏

    有人成功定制了 VS 2008 的 Places Bar 吗 我从 VS 2005 进行的自定义设置并没有转移到 2008 显然 并且无论我如何处理注册表 我都无法使我的自定义位置出现在 打开 对话框中 我已经阅读并应用了相关的MS KB文
  • 使用泛型全面实现特征

    我正在通过实现矩阵数学来练习 Rust 但遇到了一些障碍 我定义了我认为与矩阵相关的特征 trait Matrix
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创
  • 保存符号方程以供以后使用?

    From here http www mathworks com help releases R2011a toolbox symbolic brvfu8o 1 html brvfxem 1 我正在尝试求解这样的符号方程组 syms x y
  • android ndk 硬件调试内存

    背景 我对 C 很有经验 对 Android 和 Java 还很陌生 但这是编程的环境问题 我已经用 ANSI C 开发了一个管理应用程序 可以移植到任何操作系统 只需在依赖于操作系统的代码中添加 UI 即可 它使用相当多的内存 特别是对于
  • CUDA 中指令重放的其他原因

    这是我从 nvprof CUDA 5 5 获得的输出 Invocations Metric Name Metric Description Min Max Avg Device Tesla K40c 0 Kernel MyKernel do

随机推荐

  • 关于Java Cassandra Client,哪一个更好? CQL 怎么样? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试使用 Hive 作为数据库来开发应用程序 然后我还找到了 noSQL 解决方案作为它的替代方案 现在决定使用 Cassand
  • Notepad++改变文字颜色?

    我正在使用 Notepad 来模拟 ISPF 屏幕 我使用 StyleConfigurator 选择合适的字体 将其着色为绿色 并设置黑色背景 如何永久更改所选文本的颜色 例如 如果我的客户名称 THALECRESS 如何将客户名称 蓝色
  • 在 opentok ios sdk 中,呼叫者没有从接收者那里收到结束呼叫事件

    我有一个 iPhone 应用程序 我需要在其中管理从呼叫者到接收者的视频通话 并且它通过使用 Opentok 框架完美地工作 视频通话和音频一切正常 但我在从接收方结束呼叫而不接听电话时遇到问题 如果接收者接听电话然后结束通话 则呼叫者会收
  • 如何批量获取DynamoDB中的索引表?

    如何在DynamoDB中批量获取全局二级索引 这些参数给了我一个架构错误 因为这个哈希键仅在索引表中 主键有其他 const params RequestItems MyTableName Keys ThisHashKeyIsOnlyInI
  • ARM 汇编 SOS 中的 64 位除法

    我正在计算 16 个 64 位数字相加的平均值 我认为我已经正确完成了所有加法 但现在我需要弄清楚如何将 64 位数字除以 16 但我被困住了 任何帮助都会非常感谢你 到目前为止 这是我的代码 tableSize EQU 16 sum EQ
  • 破折号是 R 正则表达式中的特殊字符吗?

    尽管阅读了R 正则表达式的帮助页面 http stat ethz ch R manual R devel library base html regex html 最后 要包含文字 请将其放在第一个或最后一个 或者 对于 perl 仅 TR
  • AutoPostback 与 TextBox 失去焦点

    A TextBox被设定为AutoPostback因为更改值会导致重新计算和显示许多 仅显示 字段 效果很好 但是 当该字段被跳出时 焦点会短暂移动到下一个字段 然后在重新绘制页面时消失 因此任何地方都没有焦点 我希望焦点集中在新字段上 而
  • pandas 和 numpy 的平均值不同

    我有一个 MEMS IMU 我一直在其上收集数据 并使用 pandas 从中获取一些统计数据 每个周期收集 6 个 32 位浮点数 对于给定的收集运行 数据速率是固定的 数据速率在 100Hz 到 1000Hz 之间变化 收集时间长达 72
  • Android 精确闹钟总是关闭 3 分钟

    我有一个应用程序使用AlarmManager定期在整点唤醒手机并向 Android Wear 手表发送消息 然后手表会发出短暂的振动 我有两个用户 他们分别使用安装了 Android 5 1 1 的三星 Galaxy S6 和安装了 5 1
  • 锚定在桌子周围 - 无法在 Outlook 中工作

    我正在为 Mailchimp 开发一份时事通讯 其中一个块的 HTML 结构如下 table border 0 cellpadding 0 cellspacing 0 width 100 align center tr td valign
  • 是否可以获取所有实现接口的类? [复制]

    这个问题在这里已经有答案了 我可以通过反思或类似的方式来做到这一点吗 没有 100 可靠的方法可以做你想做的事 原因是 Java 中类加载的工作方式 Java 中的类是 按需 加载的 第一次在代码中引用类 无论是静态还是动态 时 JVM 将
  • int64_t的宽度,总是64位吗?

    对于以下代码 static inline float fix2float int64 t f return float f 1 lt lt 60 lt error here 编译器向我发出这些警告 warning left shift co
  • Flex 项目均匀分布,但第一个项目左对齐

    弹性盒的justify content space around使我的列表项水平均匀分布 有没有办法拥有完全相同的东西 唯一的区别是左边的第一个项目左边没有空间 也就是说 列表从容器的左边缘 开始 而不是使用justify content
  • kafka Consumer 0.10 向后兼容吗?

    kafka消费者0 10与0 9代理兼容吗 如果我没记错的话 0 9 消费者仍然被认为是测试版 而 0 10 是稳定的 对吗 这就是为什么我有兴趣使用 0 10 版本 但我的代理版本是 0 9 我还不想升级 如果您想使用 0 10 客户端
  • 如何在响应中返回特定字符后关闭 netcat 连接?

    我们有一个非常简单的 TCP 消息传递脚本 它将一些文本发送到服务器端口 该端口返回并显示响应 我们关心的脚本部分看起来像这样 cat someFile netcat somehost 1234 一旦我们获得特定的字符代码 具体来说 001
  • “HttpRequest”不包含“Params”的定义

    我在用着 NET核心2 0 2创建一个ASP NET网络应用程序在C 每次我使用Request Url在我的控制器中 dotnet run输出错误 错误CS1061 HttpRequest 不包含 Url 的定义 并且找不到接受 HttpR
  • 从超类 static main 创建子类

    我有一个通用的抽象类 SuperClass 我想要有一个main方法 这将是每个子类的默认 main 方法 并且会执行相同的操作 但具有派生并调用它的正确子类对象 像这样 public abstract class SuperClass s
  • 错误:行太大:大小 8168,最大大小 8164

    我正在使用 PostgreSql 9 2 我有很多角色 并且所有角色都被授予了模式的 USAGE 权限 当我尝试创建新用户并授予权限时 我收到错误 CREATE ROLE my user GRANT USAGE on schema my s
  • 如何检查 PHP 是否打开了端口 465 和 587?

    我正在尝试使用 PHPMailer 通过 SMTP 和 gmail 发送电子邮件 我使用的确切脚本适用于其他服务器 但不适用于该特定托管公司的服务器 我已经检查过phpinfo 它告诉我allow url fopen is on并且没有di
  • 寻求有关以最小的开销在 Netflix Eureka 可发现的 Spring Boot 服务上进行开发的正确方法的建议

    我们正在运行一个基于 Spring Boot 的环境 其中包含大约 15 个微服务和一个注册到 Eureka 的 Zuul 边缘网关 目前 我已经设置了所有微服务通过 Zuul 网关调用其他微服务 例如 如果 serviceA 需要调用 s