多语言微服务方法

时间:2018-05-08 02:57:20

标签: node.js python-3.x docker microservices

这是一个直截了当的问题,我试图找到一些关于它的东西,但要么完全出于我的想法,要么就不那么容易找到,有没有办法说出来:微服务1(在Nodejs)和Microservice 2(在Python中)相同的ApiGateWay(Nodejs Express)...我使用Nodejs(express)作为gateWay和Nodejs中的2个微服务(Cote.js)完全没有问题,但现在我需要python中的部分逻辑(Flask)..使用第二种语言的最佳方法是什么?我读了一些关于内部restApi的内容,但我找不到任何明确的例子。

顺便说一句:如果Docker帮助我完全使用它,请不要犹豫。

2 个答案:

答案 0 :(得分:2)

通常情况下,不同的微服务使用不同的技术。但是他们需要一个api来相互沟通。通常这是一个休息api。例如,微服务1在端口x上侦听请求。根据请求的url路径(例如/ hello-world),它将返回所请求数据的字符串表示(例如json)。

Docker可以帮助您设置服务的端口并将所有内容粘合在一起。

答案 1 :(得分:0)

解决问题的一种好方法是使用nginx路由,比如说在nginx的配置文件中,您可以

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

,您将在其中运行节点js api,并在以下路径上指向python api:

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

然后拥有您当时需要的前端,然后您在具有相同前端的同一台服务器上运行两种不同的语言