nestjs,GRPC服务器和微服务架构

时间:2020-02-13 10:14:31

标签: node.js microservices grpc nestjs

我已经使用带有微服务的nestjs启动了一个新项目,但这是我的第一个微服务项目,我没有足够的知识。 在我的文档研究期间,我找不到同时使用grpc和HTTP的微服务的方法。

在我的体系结构中,我有一些微服务,这些微服务必须为客户端提供REST API,但也必须为“内部”目的提供grpc请求,这是正确的决定吗?

1 个答案:

答案 0 :(得分:0)

说“ 我找不到同时使用grpc和HTTP的微服务的方法”是不正确的,因为GRPC使用HTTP。 GRPC不是协议,它是一种消息序列化的方式,通过公开HTTP端点,您可以在不同的替代方案(例如XML)之间进行选择。 REST / JSON或GRPC。

通常遵循“六边形体系结构”(https://en.wikipedia.org/wiki/Hexagonal_architecture_(software))的哲学,您应该能够将逻辑与适配器分开,并且您的项目可以为同一逻辑实现多个适配器,例如HTTP / REST和HTTP / GRPC中的另一个。另一方面,避免必须实现多个端口的方法是始终选择HTTP / GRPC并使用Envoy作为HTTP / REST和HTTP / GRPC之间的代理(请参见https://grpc.io/docs/tutorials/basic/web/),但最终解决方案取决于许多因素