【问题标题】:Multiple-language microservice approach多语言微服务方法
【发布时间】:2018-10-17 21:42:25
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    你会在那里运行你的节点 js api,并有一个不同的路由指向你的 python api:

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

    然后让你的前端指向当时需要的那个,然后你就可以在同一台服务器上运行两种不同的语言,为同一个前端提供服务

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-02-17
        • 2018-09-10
        • 2022-06-28
        • 2017-05-01
        • 2015-10-12
        • 1970-01-01
        • 1970-01-01
        • 2016-04-15
        • 2017-06-05
        相关资源
        最近更新 更多