midwayjs / midway

🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 🌈
https://www.midwayjs.org/
MIT License
7.34k stars 573 forks source link

rpc相关 #142

Open HaoZhang6 opened 5 years ago

HaoZhang6 commented 5 years ago

是否支持rpc,如dubbo,motan,grpc等。同类框架nest目前支持grpc。顺便问一下,淘宝在内部使用的时候,是否支持hsf?

czy88840616 commented 5 years ago

内部支持 hsf,这一机制已经年前跟相关同学沟通,最近就会在社区版放出。

HaoZhang6 commented 5 years ago

内部支持 hsf,这一机制已经年前跟相关同学沟通,最近就会在社区版放出。

感谢回复,hsf目前没有开源。所以希望midway能优先支持下dubbo

czy88840616 commented 5 years ago

好的,我们尽快。

qgqceo commented 5 years ago

好的,我们尽快。

直接引入egg-grpc插件来使用不就可以了吗?还需要提供什么支持?

czy88840616 commented 5 years ago

拿内部的 hsf 举例,hsf 的大多数服务都是通过 java 写和发布的,Node.js 要调用需要用到 js-to-java 进行转换,直接引 client 来调用的成本比较高,需要了解参数等等,这个时候需要有一些简化的生成器。

另一方面,Node.js 发布,也是需要写 jsdoc 来让 js 的类型对应到 java 的类型上,这样才能被 java 所调用。

qgqceo commented 5 years ago

大概什么时候可以发布呢? 这个月内吗?

czy88840616 commented 5 years ago

时间我要找同学估一下。

qgqceo commented 5 years ago

如果有结果希望在这里通知一下,期待。

czy88840616 commented 5 years ago

@HaoZhang6 @qgqceo 你们的场景是服务调用,还是服务发布?

qgqceo commented 5 years ago

我是两者都有

czy88840616 commented 5 years ago

@qgqceo 描述下场景?比如是调用 Node.js 服务还是 java 的,以前的服务是怎么调用的什么的。可以提点伪代码看看。

qgqceo commented 5 years ago

我是第一次搞微服务。我计划是用微服务的架构来做人才招聘类的系统。

我打算用node.js服务来搭建所有的服务,包括微服务网关、业务微服务等。 比如一个请求过来,通过Rest API或者GraphQL到网关,然后在网关那边通过RPC调用其他的业务微服务,在网关处整合数据,再返回给前端。

大概思路是这样。

HaoZhang6 commented 5 years ago

@HaoZhang6 @qgqceo 你们的场景是服务调用,还是服务发布?

我的场景是服务调用,midway调用dubbo服务。

HaoZhang6 commented 5 years ago

我是第一次搞微服务。我计划是用微服务的架构来做人才招聘类的系统。

我打算用node.js服务来搭建所有的服务,包括微服务网关、业务微服务等。 比如一个请求过来,通过Rest API或者GraphQL到网关,然后在网关那边通过RPC调用其他的业务微服务,在网关处整合数据,再返回给前端。

大概思路是这样。

如果你同时需要发布和调用,可以看看nest,它提供基于grpc的服务发布和调。https://docs.nestjs.com/microservices/grpc

qgqceo commented 5 years ago

多谢提示。

我也对比过nest.js,用它测试了几个常用场景,有优点有缺点。 我目前还是选用midway.js。

beiyu98 commented 5 years ago

多谢提示。

我也对比过nest.js,用它测试了几个常用场景,有优点有缺点。 我目前还是选用midway.js。

nodejs这边微服务实践还是太少了,想实践,领导也不同意

beiyu98 commented 5 years ago

多谢提示。

我也对比过nest.js,用它测试了几个常用场景,有优点有缺点。 我目前还是选用midway.js。

dubbo目前nodejs只有服务发现没有注册,但是蚂蚁那边有个sofa-node+zookeeper的服务注册发现,感觉挺不错的

czy88840616 commented 5 years ago

要不我对照nest也整一个grpc...

waitingsong commented 5 years ago

我的预期场景是微服务和 API 网关统一采用 node.js (midway?) 通讯协议采用 gRPC ,不知道 midway 能否实现。 看到 egg 那儿有 gRPC 客户端和服务端的插件,不知道能否直接用 (egg-grpc 官方插件只是客户端)

czy88840616 commented 5 years ago

egg-grpc 应该能用。不过我们希望以装饰器的方式和框架,插件,乃至 midway 本身进行解耦,所以抽离了 @midwayjs/decorator 包,egg-grpc 目前还是绑定到了 ctx.grpcProto.egg.xxx 上,目前不是我们希望的样子。

waitingsong commented 5 years ago

@czy88840616 请问是否提上了日程? 如果两三个月内能完善,就可以列入选型考虑了。

czy88840616 commented 5 years ago

@Lellansin 有兴趣搞么?

Lellansin commented 5 years ago

未来一两个月可能碰到 gRpc 的场景,届时会考虑支持一下:smiley:

qgqceo commented 5 years ago

多谢提示。 我也对比过nest.js,用它测试了几个常用场景,有优点有缺点。 我目前还是选用midway.js。

nodejs这边微服务实践还是太少了,想实践,领导也不同意

的确是。所以我很希望在node.js技术栈上能有一个类似spring cloud这样的微服务套件。本来挺期待nest.js的,但是目前整个生态都不够成熟。

qgqceo commented 5 years ago

多谢提示。 我也对比过nest.js,用它测试了几个常用场景,有优点有缺点。 我目前还是选用midway.js。

dubbo目前nodejs只有服务发现没有注册,但是蚂蚁那边有个sofa-node+zookeeper的服务注册发现,感觉挺不错的

我也

要不我对照nest也整一个grpc...

强烈希望把基于node.js的微服务技术栈搞起来,完善整个生态。