如何为gRPC服务器实例(在Node中)分配随机端口号?

时间:2019-06-17 19:35:35

标签: node.js http server microservices grpc

在Node.js中启动http服务器时,开发人员可以通过传递0来监听随机可用的端口,如下所示:

const http = require('http')
const service = require('../my/service);
const server = http.createServer(service)
server.listen(process.env.PORT || 0) // <-- Random port by default!

我想知道如何使用gRPC做同样的事情?像...

const grpc = require('grpc')
const services = require('./service_grpc_pb')
const server = new grpc.Server()
server.addService(services.MyService, { ... })
server.bind('0.0.0.0:0', grpc.ServerCredentials.createInsecure())
server.start()

行得通吗?我还没有找到答案。我的目标是获取一个随机端口,然后查询服务器以获取分配的端口,以便在中央微服务注册表中注册该服务。

谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用端口号0来为gRPC服务器分配一个随机端口。 server.bind方法返回实际分配的端口号。如果您想使用bindAsync方法,则分配的端口号将传递给回调。