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)); }
public ClientService(TimeSpan requestHeartBeat, TimeSpan networkRecoveryInterval) { rabbitMqProvider = new RabbitMqProvider(); if (rabbitMqProvider.ConstructMqConsumerConn(requestHeartBeat, networkRecoveryInterval)) { //登录请求处理频道 RunSimpleChannel(MyServiceLoginChannelName, MyServiceLoginQueueName, null); //消息接收处理频道 RunSimpleChannel(MyServiceReceiveChannelName, MyServiceReceiveQueueName, null); } }
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"); } }
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)); }
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(); } } }