gpt4 book ai didi

用于 Web 应用程序的 node.js golang 复合架构

转载 作者:数据小太阳 更新时间:2023-10-29 03:16:54 26 4
gpt4 key购买 nike

我目前正在构建一个将使用 node.js 进行基本路由的网络应用程序。该应用程序的某些部分需要更多处理器,我想对这些部分使用 golang。但是,我不确定在两种语言之间安装和通信的最佳方式。我正在使用 Amazon Elastic Beanstalk 进行初始测试,因此任何细节都可以针对该平台。

本质上归结为以下两个问题:

1) 如何在 Amazon EC2 上同时安装 node.js 和 golang docker 镜像?亚马逊有一个或另一个的指南,但没有两个。

2) 将处理器密集型任务从 node.js 卸载到 golang 代码库的最佳方法是什么(我可以想象 RPC,或者只是在某个本地主机端口上运行 golang,但我对这种类型的东西不熟悉)? golang 任务可能是严肃的数字运算或复杂的图形搜索。

感谢您的指导。

最佳答案

  1. Go 部署起来很简单。只需在 linux box(或使用 gox)上构建它并部署二进制文件。 (您不需要在服务器上安装 go 来运行 go 程序)
  2. Go 和 Node.js 之间的通信有很多选择。这里有一些:

    1. 如果您正在做的工作需要很长时间,让用户等待响应可能不合适。对于后台任务,您可以使用队列(例如 Redis 的 rpoplpush 或真正的队列,例如 Kafka 或 RabbitMQ,或者因为您使用的是亚马逊:SQS)。将您的作业作为 JSON 对象推送到队列中,然后编写一个从队列中提取的 Go 程序,进行处理,然后将最终结果写入某处。
    2. Go 有一个 jsonrpc library .您可以通过 TCP 进行通信,在 Node 中序列化请求,在 Go 中读取它,然后在 Node 中反序列化响应。它是 jsonrpc 1.0 协议(protocol),对于 TCP,您所要做的就是添加一些消息框架(在您的 json 字符串前加上一个长度)或只是用换行符分隔每个请求/响应。
    3. 用 Go 编写一个标准的 HTTP 服务,然后从 NodeJS 进行 HTTP 调用。 (放置/发布/获取)

关于用于 Web 应用程序的 node.js golang 复合架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30004689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com