CoreWCF支持KafkaBinding吗?

问题描述 投票:0回答:1

CoreWCF 支持 KafkaBinding 吗?是的 - 有人可以分享我在客户端需要遵循的步骤吗?我无法找到一种方法来为 Kafka Binding 创建通道工厂并进行服务器调用?

应该为 Kafka 绑定创建通道工厂并能够进行服务器调用

apache-kafka wcf-binding corewcf
1个回答
0
投票

我认为它支持KafkaBinding

1. Nuget

上有一个包

CoreWCF.Kafka

2.绑定生成和服务注入可以参考以下代码:

var binding = new KafkaBinding(KafkaDeliverySemantics.AtMostOnce)
{
    AutoOffsetReset = AutoOffsetReset.Earliest,
    GroupId = "my-group"
};
var customBinding = new CustomBinding(binding);
KafkaTransportBindingElement transport = customBinding.Elements.Find<KafkaTransportBindingElement>();
transport.Debug = "all";

var builder = WebApplication.CreateBuilder();
builder.Services.AddServiceModelServices().AddQueueTransport()

var app = builder.Build();

app.UseServiceModel(serviceBuilder => 
{
    services.AddService<Service>();
    services.AddServiceEndpoint<Service, IService>(new CoreWCF.Kafka.KafkaBinding
    {
        AutoOffsetReset = AutoOffsetReset.Earliest,
        DeliverySemantics = KafkaDeliverySemantics.AtMostOnce,
        GroupId = "my-consumer-group"
    }, $"net.kafka://localhost:9092/my-topic");
});

CoreWCF.ServiceModel.Channels.KafkaBinding kafkaBinding = new();
var factory = new System.ServiceModel.ChannelFactory<IService>(kafkaBinding,
    new System.ServiceModel.EndpointAddress(new Uri($"net.kafka://localhost:9092/my-topic")));
IService channel = factory.CreateChannel();
await channel.CallServiceAsync(name);
© www.soinside.com 2019 - 2024. All rights reserved.