如何在Node.js中的同一端口上监听两个微服务

时间:2016-07-15 18:33:54

标签: node.js microservices

我是微服务的新手。我想用两个微服务创建一个应用程序。但我不知道如何在同一端口上监听两个(或更多)微服务,使其成为一个应用程序。 在线是否有任何好的教程页面?请建议我任何博客或教程页面或帮助我创建一个包含两个微服务的应用程序。

我正在尝试创建一个有两种服务的巴士预订应用程序

  1. 巴士服务(提供巴士名称和可用性)
  2. 用户服务(通过总线提供和连接用户详细信息)。
  3. 我创建了两个这个作为两个nodejs应用程序。现在我需要知道如何将这两个组合为一个应用程序(使用微服务)。因为我无法将其收听到一个端口。

1 个答案:

答案 0 :(得分:2)

如果您打算使用一个端口,则需要有办法区分每个端口的请求。如果以前只通过端口号识别它们(而不是每个都有不同的路径或域),则必须以某种方式更改访问URL(或标题)。

鉴于此,您可以使用npm模块express来通过解释请求轻松区分任意数量的请求类型。

你可能有:

service1.com和service2.com都指向xxx.xxx.xxx.xxx:2020。您可以通过检查请求对象来区分这些。

例如,

app.get(/.*/, function(request, response, next){
switch(request.headers.host){
    case 'service1.com':
        //some stuff
    break;
    case 'service2.com':
        //some stuff
    break;
}
});

或者,如果是domain.com/service1和domain.com/service2

app.get(/service1/, function(){/*some stuff*/});
app.get(/service2/, function(){/*some stuff*/});