node作为接入层转发的问题,求高效的转发方案
发布于 9 年前 作者 p2227 7230 次浏览 最后一次编辑是 8 年前 来自 问答

假设现在公司已有一些后台业务,用java/php等开发,现在在前端接入一个nodejs然后再转发到原有的服务。 那么这个转发用什么样的方案比较高效呢?我想了一下资料,有proxy转发,rpc转发等,proxy是node自带的了,rpc的话有推荐的npm包吗? 或者有更加有效的转发机制?

13 回复

nginx转发

来自酷炫的 CNodeMD

@klesh 但是这样跟我原来意愿不一样啊

你只是转发,又不做处理,nginx不是更高效吗。rpc是基于什么协议的?首先要确定 的是 node.js 的作用是什么?

转发这活nginx最拿手

@klesh 嗯,谢谢指正,可能是我的表达不太清楚。 我的原意是这样的,现在有很多公司开始把node作用一个中间层,处理一些前后端模板共用,全局日志记录之类的问题。那么这一层node与原来的服务之间数据怎么交互?再走一遍http似乎没有必要,有没有更加高效的通讯协议?

首先前端到nodejs是http,nodejs到java,如果原来的代码不改,不还是http。 如果修改的话,你可以使用thrift。

@p2227 这要根据实际的场景去考虑,http 的优点是简单,通用性好,扩展简单,不是实时性要求特别高,连接不是特别频繁,二进制数据不是特别多,用 http 完全没什么问题。更加高效的通信协议当然有,像 google 的 protobuf 也有 node.js 的实现。但还是建议能用 http 就不要用这么高端的东西,性能特别高是要付出复杂性,通用性等代价的。 想一下,你现在后端提供 http 的 api ,那无论你是用 node.js ,还是 spa 还是原生客户端都可以对接,一些专门的协议可能就没有相应的实现,或者版本问题,或者有坑。也是件很麻烦的事。

围观,我们这边也有类似的需求,node适当做些验证处理,其余的转发后端,目前是request转发的,求在node层更好的方式

有同类需求,求好方案。。

@klesh 谢谢分享经验

@hanyuzhou2006 好的,知道了

@p2227 http就好了。你们量级大的话就加机器嘛,这一层浪费人力做复杂方案感觉吃力不讨好,完全可以靠机器扛的。 而且没感觉用其他私有方案可以带来量级的差异啊

能不能用tcp永久连接?用nodecp专门维持这样一个链接

回到顶部