static void Main(string[] args) { var(logger, config) = Bootstrap(); var schemaRegistryConfig = new SchemaRegistryConfig { Url = config["SCHEMA_REGISTRY_URL"], }; StartProducing(logger, config, schemaRegistryConfig); var consumerFactory = new ConsumerFactory <string, Record>( logger, new ProtobufDeserializer <Record>(), KafkaOptions.ForConsumer(config)); var consumer = consumerFactory.CreateConsumer("Group-1"); var consumer2 = consumerFactory.CreateConsumer("Group-2"); var eventListener = new EventListener(consumer, PERSON_TOPIC, logger); var eventListener2 = new EventListener(consumer2, PERSON_TOPIC, logger); var personEventHandler = new PersonEventHandler(); var addressEventHandler = new AddressEventHandler(); var handlers = new List <IEventHandler> { personEventHandler, addressEventHandler }; var eventProcessor = new EventProcessor(eventListener, handlers, logger); var eventProcessor2 = new EventProcessor(eventListener2, handlers, logger); eventProcessor.StartProcessing(CreateCancellation().Token).GetAwaiter().GetResult(); eventProcessor2.StartProcessing(CreateCancellation().Token).GetAwaiter().GetResult(); }
static void Main(string[] args) { Console.Title = "Consumer"; RabbitMqConfig config = new RabbitMqConfig(); config.ExchangeName = "test"; config.HostName = "localhost"; config.Password = "******"; config.UserName = "******"; config.VirtualHost = "/"; ConsumerFactory factory = new ConsumerFactory(config); var consumer = factory.CreateConsumer("ConsumerId1", true); consumer.MessageReceive += (sender, e) => { Console.WriteLine($"{sender.ConsumerId}收到消息,Topic:{e.Topic}:Key:{e.Key},Content:{e.Content}"); e.Result = ConsumeResult.Success; }; Console.WriteLine("请输入要订阅的Topic"); var input = Console.ReadLine(); consumer.Subscribe(input); Console.ReadKey(); }
public void ConsumerFactory_CanCreateConsumer() { IConsumerFactory factory = new ConsumerFactory(options); IConsumer consumer = factory.CreateConsumer(); Assert.IsNotNull(consumer); Assert.AreEqual(factory.ConsumerOptions, consumer.ConsumerOptions); }
public void Start() { var factory = ClientConnectionFactory.CreateConnection("localhost"); this.channel = factory.CreateModel(); channel.QueueDeclare("HostQueue", true, false, false, null); consumer = ConsumerFactory.CreateConsumer(channel, "HostQueue", Consumer_Received); }
public virtual void Subscribe(IQueue queue, Func <Byte[], MessageProperties, MessageReceivedInfo, Task> onMessage) { Preconditions.CheckNotNull(queue, "queue"); Preconditions.CheckNotNull(onMessage, "onMessage"); if (disposed) { throw new Exception("This bus has been disposed"); } var subscriptionAction = new SubscriptionAction(queue.IsSingleUse); subscriptionAction.Action = () => { var channel = PersistentConnection.CreateModel(); channel.ModelShutdown += (model, reason) => Logger.Debug(string.Format("Model Shutdown for queue: '{0}'", queue.Name)); queue.Visit(new TopologyBuilder(channel)); //channel.BasicQos(0, connectionConfiguration.PrefetchCount, false); channel.BasicQos(0, 50, false); var consumer = ConsumerFactory.CreateConsumer(subscriptionAction, channel, queue.IsSingleUse, (consumerTag, deliveryTag, redelivered, exchange, routingKey, properties, body) => { var messageRecievedInfo = new MessageReceivedInfo { ConsumerTag = consumerTag, DeliverTag = deliveryTag, Redelivered = redelivered, Exchange = exchange, RoutingKey = routingKey }; MessageProperties messageProperties = new MessageProperties(); properties.CopyTo(messageProperties); return(onMessage(body, messageProperties, messageRecievedInfo)); }); channel.BasicConsume( queue.Name, // queue NoAck, // noAck consumer.ConsumerTag, // consumerTag consumer); // consumer Logger.Debug(string.Format("Declared Consumer. queue='{0}', prefetchcount={1}", queue.Name, _connectionConfiguration.PrefetchCount)); }; AddSubscriptionAction(subscriptionAction); }
static void Main(string[] args) { SetupContainer(); EnsureResourcesExists(); var consumerFactory = new ConsumerFactory(ConnectionString, DependencyResolver); var consumerProperties1 = ConsumerProperties.ForMultipleConsumers(TopicPath, SubscName, 2); var consumer1 = consumerFactory.CreateConsumer <CustomService1, CustomMessage>(consumerProperties1); consumer1.Start(); Console.WriteLine("Press any key to stop the app..."); Console.Read(); consumer1.Stop(); }
static void Main(string[] args) { var(logger, config) = Bootstrap(); StartProducing(logger, config); var consumerFactory = new ConsumerFactory <string, Record>( logger, new StringDeserializer <Record>(x => JsonConvert.DeserializeObject <Record>(Decode.IntoString(x))), KafkaOptions.ForConsumer(config)); var consumer = consumerFactory.CreateConsumer("Group-1"); var eventListener = new EventListener(consumer, PERSON_TOPIC, logger); var personEventHandler = new PersonEventHandler(); var addressEventHandler = new AddressEventHandler(); var eventProcessor = new EventProcessor(eventListener, new List <IEventHandler> { personEventHandler, addressEventHandler }, logger); eventProcessor.StartProcessing(CreateCancellation().Token).GetAwaiter().GetResult(); }