docker 多语言微服务方法

zvokhttg  于 2023-04-20  发布在  Docker
关注(0)|答案(3)|浏览(162)

这是一个相当直接的问题,我试图找到一些关于它的东西,但要么我完全失去了我的头脑,要么它不是那么容易找到,有没有一种方法可以说:微服务1(在Nodejs中)和微服务2(Python中)在相同的ApiGateWay下(Nodejs Express)...我使用Nodejs使其工作(express)作为gateWay和2个微服务在Nodejs中(Cote.js)完全没有问题,但现在我需要Python中的部分逻辑(Flask)..使用第二语言的最佳方法是什么?我读了一些关于内部restApi的东西,但我找不到任何明确的例子。
顺便说一句:如果Docker有帮助,我完全可以使用它,不要犹豫。

o8x7eapl

o8x7eapl1#

不同的微服务使用不同的技术是一种相当常见的情况。然而,它们需要一个API来相互通信。通常是REST API。例如,微服务1在端口x上侦听请求。根据请求的URL路径(例如/hello-world),它将返回请求数据的字符串表示(例如json)。
Docker可以帮助您设置服务的端口并将所有内容粘合在一起。

wfsdck30

wfsdck302#

一个很好的解决方法是使用nginx路由,比方说在nginx的配置文件中,你可以这样做

location /api/v1 {
proxy_pass http://localhost:4000;
}

你会有你的node js API在那里运行,还有一个不同的路由指向你的python api:

location /api/v1/ms2 {
proxy_pass http://localhost:4001;
}

然后让你的前端指向那个时候需要的地方,然后你就有两种不同的语言运行在同一个服务器上,为同一个前端服务

rmbxnbpk

rmbxnbpk3#

是的,是个好主意。Facebook You tube和其他公司在项目中使用这种架构。您必须在不同端口运行微服务

相关问题