public async Task <bool> InstantiateQueueContainer(RabbitMqProvider queue, CancellationToken cancellationToken)
        {
            logger.Information("---- Starting Deploy Queue Container ----");
            await DownloadImage("rabbitmq", "3-management", cancellationToken);

            var ports = new Dictionary <string, EmptyStruct>();

            ports.Add($"{queue.Port}/tcp", new EmptyStruct());
            ports.Add($"15672/tcp", new EmptyStruct());

            var createParameters = new CreateContainerParameters()
            {
                Image        = "rabbitmq:3-management",
                ExposedPorts = ports,
                Name         = QueueContainerName,
                Hostname     = QueueContainerName,
                HostConfig   = new HostConfig()
                {
                    NetworkMode   = NetworkName,
                    RestartPolicy = new RestartPolicy()
                    {
                        Name = RestartPolicyKind.Always
                    },
                    PortBindings = new Dictionary <string, IList <PortBinding> >
                    {
                        {
                            $"{queue.Port}/tcp",
                            new List <PortBinding>
                            {
                                new PortBinding
                                {
                                    HostPort = $"{queue.Port}"
                                }
                            }
                        },
                        {
                            $"15672/tcp",
                            new List <PortBinding>
                            {
                                new PortBinding
                                {
                                    HostPort = $"15672"
                                }
                            }
                        }
                    }
                },
                Env = new List <string>()
                {
                    $"RABBITMQ_DEFAULT_USER={queue.Username}", $"RABBITMQ_DEFAULT_PASS={queue.Password}"
                },
            };

            return(await DeployAndStartAsync(QueueContainerName, createParameters, cancellationToken));
        }
Exemplo n.º 2
0
 public ClientService(TimeSpan requestHeartBeat, TimeSpan networkRecoveryInterval)
 {
     rabbitMqProvider = new RabbitMqProvider();
     if (rabbitMqProvider.ConstructMqConsumerConn(requestHeartBeat, networkRecoveryInterval))
     {
         //登录请求处理频道
         RunSimpleChannel(MyServiceLoginChannelName, MyServiceLoginQueueName, null);
         //消息接收处理频道
         RunSimpleChannel(MyServiceReceiveChannelName, MyServiceReceiveQueueName, null);
     }
 }
Exemplo n.º 3
0
        private static RabbitMqProvider CreateProvider(string providerId, dynamic config)
        {
            switch (providerId)
            {
            case "rmq":
                var rmqConfig = RabbitMqBackendConfig.Create(config);
                var provider  = new RabbitMqProvider(rmqConfig);
                return(provider);

            default:
                throw new Exception("Unknown Provider");
            }
        }
Exemplo n.º 4
0
 public MyService(TimeSpan requestHeartBeat, TimeSpan networkRecoveryInterval)
 {
     rabbitMqProvider = new RabbitMqProvider();
     if (rabbitMqProvider.ConstructMqConsumerConn(requestHeartBeat, networkRecoveryInterval))
     {
         //登录请求处理频道
         RunSimpleConsumeChannel(MyServiceLoginChannelName, MyServiceLoginQueueName, LoginChannelCallBack);
         //消息接收处理频道
         RunSimpleConsumeChannel(MyServiceReceiveChannelName, MyServiceReceiveQueueName, ReceiveChannelCallBack);
         //消息发送处理频道
         RunExchangeChannel(MyServiceMessageChannelName, MyServiceMessageQueueName, ExchangeType.topic,
                            MyServiceMessageExchangeName, TopicHelper.UserTopic(MyServiceName, MyServiceName), MessageChannelCallBack);
     }
 }
        public async Task <bool> InstantiateQueueContainer(RabbitMqProvider queue, CancellationToken cancellationToken)
        {
            Console.WriteLine("---- Starting Deploy Queue Container ----");
            await DownloadImage("rabbitmq", "3", cancellationToken);

            var createParameters = new CreateContainerParameters()
            {
                Image = "rabbitmq:3",
                Name  = QueueContainerName,
                Env   = new List <string>()
                {
                    $"RABBITMQ_DEFAULT_USER={queue.Username}", $"RABBITMQ_DEFAULT_PASS={queue.Password}"
                },
            };

            return(await DeployAndStartAsync(QueueContainerName, createParameters, cancellationToken));
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            var logger = new NLogProvider();

            var rabbitMq = ConfigurationManager.AppSettings["RabbitMqConnectionString"];

            using (var bus = new RabbitMqProvider(rabbitMq, logger))
            {
                var webApiAddress = ConfigurationManager.AppSettings["WebApiEndpointAddress"];
                using (var sender = new HttpClientProvider(webApiAddress, logger))
                {
                    var fibonacciService = new FibonacciService(sender, logger);
                    bus.Subscribe <CalculationDTO>("fibonacciQueue", fibonacciService.Handle);

                    Console.WriteLine("Press any key to stop");
                    Console.ReadLine();
                }
            }
        }