这是一个相当直接的问题,我试图找到一些关于它的东西,但要么我完全失去了我的头脑,要么它不是那么容易找到,有没有一种方法可以说:微服务1(在Nodejs中)和微服务2(Python中)在相同的ApiGateWay下(Nodejs Express)...我使用Nodejs使其工作(express)作为gateWay和2个微服务在Nodejs中(Cote.js)完全没有问题,但现在我需要Python中的部分逻辑(Flask)..使用第二语言的最佳方法是什么?我读了一些关于内部restApi的东西,但我找不到任何明确的例子。
顺便说一句:如果Docker有帮助,我完全可以使用它,不要犹豫。
3条答案
按热度按时间o8x7eapl1#
不同的微服务使用不同的技术是一种相当常见的情况。然而,它们需要一个API来相互通信。通常是REST API。例如,微服务1在端口x上侦听请求。根据请求的URL路径(例如/hello-world),它将返回请求数据的字符串表示(例如json)。
Docker可以帮助您设置服务的端口并将所有内容粘合在一起。
wfsdck302#
一个很好的解决方法是使用nginx路由,比方说在nginx的配置文件中,你可以这样做
你会有你的node js API在那里运行,还有一个不同的路由指向你的python api:
然后让你的前端指向那个时候需要的地方,然后你就有两种不同的语言运行在同一个服务器上,为同一个前端服务
rmbxnbpk3#
是的,是个好主意。Facebook You tube和其他公司在项目中使用这种架构。您必须在不同端口运行微服务