Я новичок в Кафке.
Я сделал Производитель и Заказчик в .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();
}
}
Я действительно не знаю, как я могу вернуть сообщения от потребителя, чтобы пользователь мог выбрать их ... пожалуйста, помогите мне
Я не хочу видеть сообщение в консоли ... все учебники делают это для консоли: (