Esempio n. 1
0
        public void Run()
        {
            var microservicesDefinitions = _definitionProvider.GetMicroservicesDefinitions();

            foreach (var microserviceDefinition in microservicesDefinitions)
            {
                _serverBuilder.AddServices(microserviceDefinition.Services);
                _microserviceContext.RegisterMicroservice(microserviceDefinition.Name,
                                                          microserviceDefinition.Services.Select(s => s.Name));
            }

            var grpcServer = _serverBuilder
                             .EnableHttp()
                             .ConfigurePort(_configurationProvider.GrpcServerPort)
                             .Build();

            var grpcServerThread = new Thread(grpcServer.Run);
            var managementThread = new Thread(_managementServerRunner.Run);
            var monitoringThread = new Thread(_monitoringDirector.Run);

            grpcServerThread.Start();
            managementThread.Start();
            monitoringThread.Start();
            grpcServerThread.Join();
        }