Как назначить случайный номер порта экземпляру сервера gRPC (в узле)? - PullRequest
0 голосов
/ 17 июня 2019

При запуске http-сервера в Node.js разработчики могут прослушивать произвольно доступный порт, передавая 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 Ответ

1 голос
/ 18 июня 2019

Да, вы можете использовать номер порта 0, чтобы назначить случайный порт серверу gRPC. Метод server.bind возвращает номер порта, который был фактически назначен. Если вы хотите использовать метод bindAsync, назначенный номер порта будет передан обратному вызову.

...