IBM 消息中心与 C# 融合通信 api

IBM message hub communciation with C# confluent api

我一直在尝试查找通过 C# Apache Kafka Confluent API 连接到 IBM Message Hub 的文档,但没有成功。 github 上的官方仓库没有 C# 示例。有没有人能够使用 C# 与 ibm message hub 进行通信,如果可以,您可以分享该过程。

谢谢。

更新: 我已成功与 IBM Message Hub 通信。

图书馆:

  1. librdkafka -... 0.11.0-RC2

  2. 证书来自:https://curl.haxx.se/docs/caextract.html

  3. Confluent.kafka.dll Confluent.Kafka 0.11.0-RC1

配置:

private static Dictionary<string, object> constructConfig(string brokerList, bool enableAutoCommit) =>
            new Dictionary<string, object>
            {
                { "group.id", "history" },
                { "enable.auto.commit", enableAutoCommit },
                { "auto.commit.interval.ms", 5000 },
                { "statistics.interval.ms", 60000 },
                { "bootstrap.servers", "ibmserver:port" },
                { "default.topic.config", new Dictionary<string, object>()
                    {
                        { "auto.offset.reset", "smallest" }
                    }
                },
                {"ssl.ca.location",@"E:\cert\cacert.pem" },              
                {"api.version.request","true" },
                {"security.protocol","sasl_ssl" },
                {"sasl.mechanisms","PLAIN" },
                {"sasl.username","xxxx" },
                {"sasl.password","xxxxx" }

            };

.net版本:4.5.2

希望它能为某人节省时间。

感谢 Edoardo Comar 指导我获得急需的信息。

我们还没有编写 C# 示例。

Confluent C# Kafka 客户端是 C 库 librdkafka 的包装器,直到版本 0.9.5(撰写本文时的最后一个版本 post)无法为 Windows 具有 SASL_SSL 支持,这是针对 Message Hub 进行身份验证所必需的。

然而,由于最近的一些提交,librdkafka 0.11(在发布候选版本中,因为我正在 post 发表评论)发生了变化。

我已验证 librdkafka 0.11(主分支)能够​​在 Windows 上使用 Message Hub 进行身份验证。您将需要设置这些配置属性:

api.version.request=true
security.protocol=sasl_ssl
ssl.ca.location=<path to a valid cert.pem file>
sasl.mechanisms=PLAIN
sasl.username=<username from your Bluemix credentials>
sasl.password=<password from your Bluemix credentials>

我不知道如何在 Windows 中获取有效的 .pem 证书文件,所以我从 macOS 复制了一个 cert.pem 文件(在 /usr/local/etc/openssl 中通过 brew openssl 安装) ).来自 Ubuntu 的 cert.pem(在 /etc/openssl 中找到)也应该有效。

祝你好运,请让我了解你的最新进展,