卡夫卡制作人-与经纪人的多重联系与单一的全球联系

时间:2019-06-26 15:01:33

标签: asp.net-web-api apache-kafka confluent-kafka

我正在使用融合的C#客户端与Kafka连接,并尝试创建一个API,该API可被多个现有应用程序用来在主题中推送消息。

现在,我不确定是否应该在每次使用API​​时就简单地创建新连接,还是创建一个可以每次重用的全局单例连接。第二种方法对我来说听起来更好,因为在每个匹配上创建连接可能很耗时,但也可能导致永久性地占用连接以及处理全局连接等问题,这些问题可能会被Kafka经纪人终止。

下面是我最初想到的框架:

public class SampleController : ApiController
{
    IProducer<string, string> producer = null;
    public SampleController()
    {
        producer = GetSingletonInstance();
    }

    public async void Post(ProducerRequest request)
    {
        var deliveryReport = await producer.ProduceAsync(request.Topic, new Message<string, string> { Key = request.Key, Value = request.Value });
    }

如果我采用全局连接方法,请提出一些我应该考虑的事情

0 个答案:

没有答案