.net ядро ​​и кафка - PullRequest
       4

.net ядро ​​и кафка

0 голосов
/ 05 сентября 2018

Я новичок в Кафке. Я сделал Производитель и Заказчик в .net core

производитель:

public class BookingProducer : IBookingProducer
{
    public void Produce(string message)
    {
        var config = new Dictionary<string, object>
        {
             {"bootstrap.servers", "127.0.0.1"}
        };

        using (var producer = new Producer<Null, string>(config, null, new StringSerializer(Encoding.UTF8)))
        {
            producer.ProduceAsync("LoginMVC_booking", null, message).GetAwaiter().GetResult();
            producer.Flush(100);
        }
    }
}

потребитель:

        public void Listen()
    {
        var config = new Dictionary<string, object>
        {
            { "group.id", "booking_consumer" },
            { "bootstrap.servers", "127.0.0.1" },
            { "enable.auto.commit", "false" }
        };

        using (var consumer = new Consumer<Null, string>(config, null, new StringDeserializer(Encoding.UTF8)))
        {
            consumer.Subscribe("LoginMVC_booking");
            consumer.OnMessage += (_, msg) =>
            {
                //Messages.Add(string.Concat(msg.Value, ","));
                Console.WriteLine($"Topic: {msg.Topic} Partition: {msg.Partition} Offset: {msg.Offset} {msg.Value}");
                consumer.CommitAsync(msg);
            };

            while (true)
            {
                consumer.Poll(100);
            }
        }
    }
}

теперь мне нужно использовать контроллер для создания сообщения администратора и просмотра сообщений как пользователя

public class AdminController : Controller
{
    private IBookingProducer producer;
    private IBookingConsumer consumer;

    [Route("api/producer")]
    public void Index([FromServices]IBookingProducer producer, [FromServices]IBookingConsumer consumer)
    {
        this.producer = producer;
        this.consumer = consumer;

        for (int i = 1; i <= 10; i++)
        {
            this.producer.Produce("new message"+i);
        }

        this.consumer.Listen();
    }
}

Я действительно не знаю, как я могу вернуть сообщения от потребителя, чтобы пользователь мог выбрать их ... пожалуйста, помогите мне

Я не хочу видеть сообщение в консоли ... все учебники делают это для консоли: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...