在 Amazon EC2 上构建 gRPC 服务器

2023-12-19

当我尝试在 Amazon EC2 实例上构建 gRPC 服务器/客户端时遇到问题。

我有一个实例 A(具有私有 ip:例如 1.2.3.4)。服务器代码就像

from concurrent import futures
import time
import math

import grpc

import helloworld_pb2

_ONE_DAY_IN_SECONDS = 60 * 60 * 24

class Greeter(helloworld_pb2.GreeterServicer):

  def SayHello(self, request, context):
    return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name)


def serve():
  server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
  helloworld_pb2.add_GreeterServicer_to_server(Greeter(), server)
  server.add_insecure_port('1.2.3.4:50051')

  server.start()
  try:
    while True:
      time.sleep(_ONE_DAY_IN_SECONDS)
  except KeyboardInterrupt:
    server.stop(0)

if __name__ == '__main__':
  serve()

另一方面,实例 B 有私有 ip 2.3.4.5,我想在其上运行客户端脚本

from __future__ import print_function

import grpc

import helloworld_pb2


def run():
  channel = grpc.insecure_channel('1.2.3.4:50051')
  stub = helloworld_pb2.GreeterStub(channel)
  response = stub.SayHello(helloworld_pb2.HelloRequest(name='you'))
  print("Greeter client received: " + response.message)


if __name__ == '__main__':
  run()

客户端和服务器代码在本地计算机上运行良好。但是,当我尝试在 ec2 集群上运行它们时,客户端无法找到服务器

Traceback (most recent call last):
  File "helloworld_client.py", line 47, in <module>
    run()
  File "helloworld_client.py", line 42, in run
    response = stub.SayHello(helloworld_pb2.HelloRequest(name='you'))
  File "/usr/local/lib/python3.4/dist-packages/grpc/_channel.py", line 481, in __call__
    return _end_unary_response_blocking(state, False, deadline)
  File "/usr/local/lib/python3.4/dist-packages/grpc/_channel.py", line 432, in _end_unary_response_blocking
    raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, )>

我应该怎么做才能让脚本运行?

Thanks.


我发现问题出在哪里了。通过设置安全组-输入-类型-所有流量,服务器和客户端之间的连接正常。

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

在 Amazon EC2 上构建 gRPC 服务器 的相关文章

  • 集群式 WildFly 10 域消息传递

    我有三台机器位于不同的网络 作为主控 作为节点1 作为节点2 在 as master 中 我将 WildFly 作为域主机主服务器 两个节点将 WildFly 作为域主机从服务器 每个节点在 full ha 服务器组中启动一个实例 从 as
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • 图像未在 Twitter 上显示 - 错误:由于请求超时,获取页面失败

    这是我网站的网址https www healthdrop in https www healthdrop in我得到了 错误 由于请求超时 获取页面失败 试穿时https cards dev twitter com validator ht
  • AWS - 如何从 CloudWatch Alarm 重新启动或重新启动 EC2 实例?

    有时我的应用程序会无缘无故地死掉 我可以使用 CloudWatch 和 CPU 使用指标下降来检测到这一点 此时我想重新启动java应用程序或整个EC2实例 有什么建议我怎样才能实现这一目标 Thanks AWS 云观察 https aws
  • PHP 和 ADODB 连接失败

    我的任务是迁移服务器 这包括移动我没有构建的应用程序 其中一些具有 ADODB connection 我似乎无法在新服务器上修复它 我只得到空白屏幕 我已经对 ADODB connection 与 PHP 进行了相当广泛的研究 但找不到明确
  • 如何将文件从我的 Windows 7 计算机传输到 Amazon EC2 实例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望能够将多个文件 html php jpg 等 传输到我托管 Web 服务器的 Amazon EC2 实例 做到这一点最简单或最有
  • GridGain - 通过 Grid.startNodes API 使用 SSH 以编程方式打开节点

    我正在使用 Grid startNodes java util Collection java util Map boolean int int 如此处定义 http gridgain com api javadoc org gridgai
  • 如何获取 EC2 实例的 CloudWatch 指标数据

    我想获取我的 EC2 实例的 Cloudmetrics 数据 以便我可以使用这些数据绘制图表并将其显示在我的 Android 设备上 我怎么做 有相同的示例程序或教程吗 提前致谢 这就是我正在做的 private static void f
  • 如何通过 SSH 启动进程,使其保持运行?

    我有三个文件 Monitor sh 它启动 python 脚本 sudo python webCheck sudo python apiCheck 以及其他的 webCheck 和 apiCheck 它应该在我关闭终端后在后台运行 它无限循
  • 在 Laravel 中使用 grpc,“未找到‘Grpc\ChannelCredentials’类”。

    我正在尝试在 Laravel 项目中使用 grpc 这是我的composer json 文件的一部分 require datto protobuf php dev master google auth 0 7 0 grpc grpc dev
  • AWS EC2 反向 DNS (PTR) 失败

    到处寻找 找不到答案 我有域名 mydomain com root 和 www 记录指向我的主服务器 它运行我的网站 我现在使用单独的 AWS ec2 实例为我的域设置电子邮件服务器 这是在子域上运行的mail 我的 DNS 看起来像这样
  • 如何在启动时添加 EC2 实例属性?

    我们使用 Amazon ECS 提供服务 我们有一个名为application在该集群中 我们有多项服务 dev app dev kafka dev zookeeper qa app qa kafka qa zookeeper etc 服务
  • Node.js Socket.IO 无法完全工作

    我运行一个侦听端口 5000 的独立服务器 当我通过 Netcat 或 Telnet 连接到它时 该应用程序不会在终端上打印任何内容 但在 Netcat Telnet 应用程序屏幕上 它显示连接已建立 var io require sock
  • 是否可以使用jmeter来测试grpc

    想知道是否有人尝试过使用 jmeter 来测试 gRPC 应用程序 我本来希望 我可以编写一个带有非阻塞 异步存根的 gRPC 客户端类 该存根可以对服务器进行非阻塞调用 创建上述客户端的Jar 将 Jar 导入到 JMeter 在Jmet
  • 亚马逊 AWS Java API。我看不到我的 AMI

    我正在使用 Amazon AWS 的 Java API 我成功进行了身份验证 然后获取了所有图像 但我的图像不在其中 我的 AMI 是私有的 但我想自从我经过身份验证后我仍然会看到它们 这是我的来源 final AmazonEC2 clie
  • Nuxt.js 使用 https 调用服务器端 API 的问题

    当我使用 HTTP 时 我遇到 nuxt 服务器端 API 调用问题S 在客户端 一切都很好 当我通过链接在客户端切换页面时 API 可以工作 但是当我按下 Ctrl f5 并且数据将在服务器端预取时 实际上没有 API 调用 也没有提供数
  • 如何使用 iam-role 启动 ec2-instance?

    我可以在管理控制台中使用 iam role 启动 ec2 instance 但我不知道如何从 aws ruby sdk 中使用 iam role 启动 ec2 instance iam role test s Policy is here
  • 微服务架构中protobuf文件的组织

    在我的公司 我们有一个由微服务组织的系统 每个服务都有一个专用的 git 存储库 我们想引入 gRPC 并且想知道如何共享 protobuf 文件并为我们的各种语言构建库 根据我们收集的一些示例 我们最终决定使用一个包含所有 protobu
  • 负载平衡集群中的 PHP 会话 - 如何?

    好的 我得到了这个完全罕见的负载平衡 PHP 网站的独特场景 令人遗憾的是 它过去没有进行负载平衡 现在我们开始遇到问题 目前唯一的问题是 PHP 会话 当然 一开始没有人想到这个问题 因此 PHP 会话配置保留为默认值 因此 两台服务器都
  • 使用 aws elastic beanstalk 将非 www 重定向到 www

    我正在使用 Elastic Beanstalk 并按照说明使用 Express Web 服务器部署我的应用程序 如下所示 http docs aws amazon com elasticbeanstalk latest dg create

随机推荐

  • Angular 服务 - GET 返回未定义

    我正在尝试使用角度服务从数据库中获取用户 在服务中执行 GET 请求时 我可以console log res 并得到回应 但是 当我尝试从另一个组件获取数据时 它总是出现undefined 请帮忙 用户 service ts import
  • 将工作表链接到主工作表并在主工作表不存在时保留值? Excel 2010

    我有很多工作表 目前 每三个月我必须一张一张地浏览这些工作表 以更新几个单元格中的信息 如果我可以创建一个包含这几个更新的单元格的主源文件 我的所有工作表都链接到该文件 那就太好了 这样我就可以更新这个文件 然后我的所有文件都会更新 我唯一
  • Angular 6 中 ng add 与 npm install 之间的区别

    随着 Angular6 的发布 他们添加了一个新命令ng add https github com angular material2 blob master src lib schematics collection json 谁能告诉我
  • jquery ajax 和完整服务器路径

    当使用 jquery 通过 ajax 提交表单时 有没有办法使用完整的服务器路径而不是 url 下面的示例不起作用 但它会让您了解我正在尝试做什么 我知道你不能执行跨域 ajax 请求 但这都在同一台物理服务器上 我不想设置代理或任何太花哨
  • Go gin 获取请求体 json

    我使用邮递员发布数据并在正文中放置一些简单的 json 请求正文 order 1 Name ts1 我需要将数据传输到 json 我尝试如下 我无法获取 json 不知道缺少什么 router POST user func c gin Co
  • CSS 动画 - 为一个又一个元素设置动画

    我想要为一个元素设置动画 然后再为另一个元素设置动画 这可以用 CSS 实现吗 我似乎无法让它工作here http jsbin com licapepose 1 edit html css output到目前为止我的尝试 我有两个主要问题
  • PHP中如何检查字符串是否可以用作变量名?

    在 PHP 中可以使用可变变量 例如 class obj fieldName Surname object new obj object gt Name John object gt fieldName Doe echo object gt
  • 尝试使用 maven 编译 JavaFX 项目时断言失败

    我正在开发一个 javaFX 项目 我想使用 maven 在终端中编译它 但我无法让它工作 它在 IntelliJ 中编译得很好 但当我在终端中时却编译不好 我正在使用编译脚本来运行它 我使用的是 M2 MacBook Air 这是我的 J
  • 奇怪的 Linq 错误

    我正在使用 Linq 将任何对象的数组转换为 CSV 列表 String Join From item In objectArray Select item ToString ToArray 这给了我一个奇怪的错误 范围变量名称不能与 Ob
  • 如何在IOS中制作慢动作视频

    我要做 慢动作 在视频文件和音频中 在一些帧之间 需要store将渐变视频作为新视频 Ref http www youtube com watch v BJ3 xMGzauk http www youtube com watch v BJ3
  • 如何使用 jquery 在 bootstrap 中激活导航栏

    我想让导航栏在我单击时处于活动状态 这是我使用的jquery document ready function navbar li click function e navbar li removeClass active var this
  • 如何使用 Python 和 OpenCV 从左到右、从上到下对轮廓进行排序

    我正在寻找带有数字和字符的图像的轮廓 用于 OCR 因此 我需要将轮廓从左到右排序 同时逐行排序 即从上到下 现在 轮廓不是这样排序的 例如 上面图像的轮廓是随机排序的 我需要的是排序为 D o y o u k n o w s o m e
  • android - FileProvider - 名称不能为空

    我的清单中有以下 FileProvider
  • 使用 BATCH 脚本检查目录中是否存在任何类型的文件

    您好 我正在编写一个批处理文件来检查给定文件夹内是否有任何类型的文件 到目前为止我已经尝试过以下方法 if EXIST FOLDERNAME echo Files Exist ELSE echo Empty 如果我知道文件扩展名 例如带有以
  • 正确使用AddClipboardFormatListener并订阅WM_CLIPBOARDUPDATE消息

    我当前正在尝试在我的应用程序中使用 Windows 剪贴板及其通知 具体来说 我正在尝试订阅WM CLIPBOARDUPDATE https learn microsoft com en us windows win32 dataxchg
  • 使用默认值python设置字典的缺失值

    我有一个 defaultdict list 和其他普通字典 A 1 blah nire 2 fooblah 3 blahblah B 1 something 2 somethingsomething 现在假设我有这样的东西 missing
  • 如何从命令行关闭 Rserve

    这个问题涉及到紧密联系 https stackoverflow com questions 23264328 connection of java and r with rserve或许也与此有关关闭预订 https stackoverfl
  • 在 mac osx 上启动应用程序的多个进程

    我在 mac osx 10 9 上使用 python 2 7 来创建应用程序 该应用程序将文件名作为参数 然后打开文件 并继续监视文件的更改 直到文件关闭 对于单个文件来说它工作得很好 我使用 py2app 和 platypus 将 pyt
  • PHP/Angularjs/发布数据为空

    我确实选择了两个字段 month and origin 以表格形式提交给AngularJS控制器 我使用的是与 Ionic 框架打包的 1 3 13 版本 观看一个console log inside then方法值已正确填充 The q
  • 在 Amazon EC2 上构建 gRPC 服务器

    当我尝试在 Amazon EC2 实例上构建 gRPC 服务器 客户端时遇到问题 我有一个实例 A 具有私有 ip 例如 1 2 3 4 服务器代码就像 from concurrent import futures import time