예제 #1
0
파일: Program.cs 프로젝트: texyh/kafka
        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();
        }
예제 #2
0
        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();
        }