Fix: Kafka replication factor hardcoded to 1 and No health check endpoints

This commit is contained in:
voltsrage
2026-06-21 17:24:09 +08:00
parent a91d79f3cd
commit 0d0bba19e6
9 changed files with 176 additions and 7 deletions
@@ -0,0 +1,25 @@
using Confluent.Kafka;
using Microsoft.Extensions.Diagnostics.HealthChecks;
using Microsoft.Extensions.Options;
public sealed class KafkaHealthCheck : IHealthCheck
{
private readonly KafkaOptions _options;
public KafkaHealthCheck(IOptions<KafkaOptions> options) => _options = options.Value;
public async Task<HealthCheckResult> CheckHealthAsync(
HealthCheckContext context, CancellationToken cancellationToken = default)
{
using var admin = new AdminClientBuilder(new AdminClientConfig
{
BootstrapServers = _options.BootstrapServers
}).Build();
var metadata = await Task.Run(
() => admin.GetMetadata(TimeSpan.FromSeconds(5)), cancellationToken);
var data = new Dictionary<string, object> { ["brokers"] = metadata.Brokers.Count };
return HealthCheckResult.Healthy(data: data);
}
}