我正在使用融合的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 });
}
如果我采用全局连接方法,请提出一些我应该考虑的事情