我有一些代码,我的 Asp.net Core Web API 使用这些代码将某些事件记录到在 Confluent Cloud 中运行的 Kafka 服务器。当我在本地机器上运行 API 服务器时,它可以很好地使用 Kafka 发送和接收,但是当它在 Azure 应用服务上运行时,我收到“本地:消息超时”错误。我可以修改 Azure App Service 网络以使 Kafka 网络流量正确流动吗?
这是下面的代码片段:
public class ConfluentKafkaService {
private readonly ClientConfig clientConfig = new ClientConfig
{
BootstrapServers = "...",
ClientId = Dns.GetHostName(),
SecurityProtocol = SecurityProtocol.SaslSsl,
SaslMechanism = SaslMechanism.Plain,
SaslUsername = "...",
SaslPassword = @"..."
};
public async Task SendDeviceEvent(DeviceEvent de) {
var config = new ProducerConfig(clientConfig);
string topicName = $"...";
using var producer = new ProducerBuilder<Null, DeviceEvent>(config)
.Build();
try {
await producer.ProduceAsync(topicName, new Message<Null, DeviceEvent> { Value = de });
}
catch (ProduceException<Null, string> e) {
Console.WriteLine($"Error producing message: {e.Message}");
}
}
}