gRPC 客户端在 Kubernetes 内重新连接

2024-04-01

如果我们在 Kubernetes Pod 中定义微服务,那么当服务 Pod 重新启动时,我们是否需要检测 gRPC 客户端重新连接?

当 Pod 重新启动时,主机名不会更改,但我们不能保证 IP 地址保持不变。那么 gRPC 客户端是否仍然能够检测到要重新连接的新服务器?


当 TCP 连接断开(因为旧 pod 停止)时,gRPC 的通道将尝试以指数退避重新连接。每次重新连接尝试都意味着解析 DNS 地址,尽管由于旧 DNS 条目的 TTL(生存时间),它可能不会立即检测到新地址。另外,我相信某些实现会在检测到故障时而不是在尝试之前解析地址。

此过程会自然发生,您的应用程序无需执行任何操作,但在重新建立连接之前可能会遇到 RPC 失败。在 RPC 上启用“等待就绪”将减少 RPC 在此过渡期间失败的机会,尽管这样的 RPC 通常意味着您不关心响应延迟。

如果 DNS 地址(最终)没有重新解析,那么这将是一个错误,您应该提交问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gRPC 客户端在 Kubernetes 内重新连接 的相关文章

随机推荐

  • 如何从 bash 执行 mongo 命令?

    我正在尝试从 bash 脚本运行此命令 mongo 192 168 10 20 27000 eval use admin db shutdownServer quit 但我收到此错误 rs initiate use admin db shu
  • 从选择的结果创建插入脚本

    使用 SQL Server Management Studio 有一种方法可以在选择结果网格中选择一行或多行 并让 SQL Server Mangement Studio 生成一个或多个插入语句 每选择一行一个 该语句会将该数据插入到表中相
  • libuv 只是 POSIX 系统上 libev 的包装吗?

    我真的很困惑 libev 和 libuv libuv 只是 POSIX 系统上 libev 的包装吗 如果不是的话区别在哪里 不再 从 libuv v0 9 开始 这是libuv github问题 https github com joye
  • 访问 VBA:如何获取表单中的输入并在查询中使用它们

    HI 我有一个带有几个按钮的表单 每个按钮运行几行代码 代码中也有查询 例如 select from table where number 6 现在 如果我想在表单中输入数字 我该怎么做 在按钮附近添加一个未绑定的文本控件 更新您的按钮代码
  • 如何在 R 中使用神经网络包时实现自己的误差函数?

    我正在尝试在 R 中的神经网络包中实现自定义错误函数 通常使用代表误差平方和和交叉熵的 sse 和 ce 来计算误差 任何人都可以向我提供有关如何实现自己的误差函数的详细信息 虽然软件包说我们可以使用自定义的错误函数 但用户手册中没有对此提
  • 有没有办法判断 Safari 是否全屏? (例如 document.fullscreenElement)

    我正在尝试使用 Javascript 确定 Safari 是否处于全屏模式 Chrome 和 Mozilla 都使用带有供应商前缀的 document fullscreenElement 版本 isFullscreen function r
  • 单击 Firebase 动态链接后 - DynamicLinks.dynamicLinks().handleUniversalLink 返回 false

    我正在使用 Firebase 动态链接 并且在 Firebase 控制台中创建的链接很少 这是我复制粘贴到电子邮件并单击的示例短链接 https app xxx com deeplink xyz https app xxx com deep
  • 对象跟随鼠标光标

    我正在做一个Wpf应用程序 我创建了一个眼睛形状的控件 我在画布中放置了一个椭圆 眼睛 我的目的是当鼠标光标进入画布时 椭圆跟随鼠标光标 您对如何执行此任务有什么建议吗 非常感谢您的关注 Cheers EDIT 我已经更新了 Xaml 中的
  • 创建特定大小的零向量

    我想初始化一个具有在运行时确定的特定大小的零向量 在 C 语言中 它会是这样的 int main void uint size get uchar int A size size memset A 0 size size sizeof in
  • C++/CLI pin_ptr

    是 C CLI 的pin ptr http msdn microsoft com en us library 1dz8byfh 28v vs 80 29 aspx相当于C 的固定陈述 http msdn microsoft com en u
  • 警告:错误的管道:没有元素“x264enc”

    过去几天我一直在努力让它运行 我有一个需要 x264enc 的 gstreamer 命令 我正在运行一个Mac我似乎无法安装 x264 开发库 我已经安装了gst plugins bad但这没有帮助 我在论坛中读到 在安装之前我需要先安装
  • 如何拆分 Visual Studio 解决方案?

    我有一个 Visual Studio 2008 解决方案 其中包含超过 40 个相互依赖的 C 和 C CLI 项目 使用该解决方案的速度非常慢 通常我一次只需要几个项目 因此我决定将解决方案拆分为包含 3 5 个项目的多个解决方案 我还想
  • php 5.x 7.x,ssl pdo 错误:对等证书 CN=`someName' 与预期的 CN='someIP' 不匹配

    我们有一个在端口 3306 上带有 mysql 的服务器 我们有证书和密钥 并且我们尝试连接到该服务器 但我们看到这样的问题 对等证书 CN SomeName 与预期的 CN someIP 不匹配 我读了很多文章 但找不到 PDO PHP
  • Symfony 2 安全性:不断从用户提供商重新加载数据?

    当用户已经登录时 安全组件会在每次请求时不断从用户提供程序重新加载数据 有办法避免这种情况吗 当您的用户提供程序不在本地数据库中 例如在 Web 服务中 时 这可能会显着降低系统速度 对于每个请求我都会得到这个 2012 08 15 20
  • 如何将变量从一个应用程序域传递到另一个应用程序域

    我想知道 如果我有一个变量 例如一个字符串 如何将其值传递到我的新应用程序域 static string str static void Main string args str abc AppDomain domain AppDomain
  • 未在虚拟机内分配外部 IP

    我正在尝试设置几个 Centos 6 虚拟机 我为它们分配了静态 IP 但运行 ifconfig 时 我看不到外部 IP 只看到内部 IP Google 不允许这种功能吗 除了Anderson所说的之外 这是从实例本身查询外部IP的命令 c
  • 是否有 API 可以通过编程方式制作 MS Office 365 Powerpoint 演示文稿?

    可以用谷歌来完成 但我们这里使用微软的产品 我希望能够发出 JSON 请求 向其发送一些可访问图像的 URL 并为每个图像创建一张幻灯片 有几种方法可以解决这个问题 第一种是使用 MS PPT 中附带的内置 API 它是一组 COM 对象
  • 每个 Unix 文件描述都有自己的读/写缓冲区吗?

    在参照这个问题 https stackoverflow com q 5200923 1586关于 read 和 write 我想知道每个打开的文件描述是否都有自己的读写缓冲区 或者当文件一次打开多次时 文件是否可能有一个读写缓冲区 我很好奇
  • 启动 Eclipse 导致无法创建 Java 虚拟机

    启动 eclipse exe 时出现错误消息 创建Java虚拟机失败 当我单击 eclipsec exe 时 Eclipse 将启动 有什么区别eclipse exe and eclipsec exe 为什么昨天运行的 eclipse ex
  • gRPC 客户端在 Kubernetes 内重新连接

    如果我们在 Kubernetes Pod 中定义微服务 那么当服务 Pod 重新启动时 我们是否需要检测 gRPC 客户端重新连接 当 Pod 重新启动时 主机名不会更改 但我们不能保证 IP 地址保持不变 那么 gRPC 客户端是否仍然能