1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pulsar C#クライアントライブラリ(DotPulsar)を使ってみた

Posted at

はじめに

こんにちは。

本稿では、PulsarのC#クライアントライブラリ(DotPulsar)(以下、DotPulsar)を使って、簡単なメッセージの送受信をしていきます。

今回は、Windows10上に以下のサーバとクライアントを構築します。

  • サーバ

    • Pulsar in Docker (standaloneモード) v2.9.1
  • クライアント

    • .NET SDK 6.0.101(x64)
    • DotPulsar 2.0.1

サーバの準備

PowerShellを開き、以下のコマンドを実行して、
Docker上に、Pulsarのstandaloneモードを構築します。

PS> docker run -it -p 6650:6650  -p 8080:8080 `
--mount source=pulsardata,target=/pulsar/data `
--mount source=pulsarconf,target=/pulsar/conf `
apachepulsar/pulsar:2.9.1 bin/pulsar standalone -nss -nfw

クライアントの準備

Consumer

PS> dotnet new console -o Consumer
PS> cd Consumer
PS> dotnet add package DotPulsar

Program.csを開いて、以下のコードに修正する。

using DotPulsar;
using DotPulsar.Extensions;
using System.Text;
using System.Buffers;

await using var client = PulsarClient.Builder()
                    .ServiceUrl(new Uri("pulsar://localhost:6650")).Build();
await using var consumer = client.NewConsumer()
                     .SubscriptionName("MySubscription")
                     .Topic("persistent://public/default/mytopic")
                     .Create();

await foreach (var message in consumer.Messages())
{
    Console.WriteLine("Received: " + Encoding.UTF8.GetString(message.Data.ToArray()));
    await consumer.Acknowledge(message);
}

Producer

PS> dotnet new console -o Producer
PS> cd Producer
PS> dotnet add package DotPulsar

Program.csを開いて、以下のコードに修正する。

using DotPulsar;
using DotPulsar.Extensions;
using System.Text;
using System.Buffers;

await using var client = PulsarClient.Builder()
                    .ServiceUrl(new Uri("pulsar://localhost:6650")).Build();
await using var producer = client.NewProducer()
                     .Topic("persistent://public/default/mytopic")
                     .Create();
var text = "Hello World";
_ = await producer.Send(Encoding.UTF8.GetBytes(text));
Console.WriteLine("Sent: " + text);

メッセージの送受信

Consumer側の画面

PS> dotnet run

Producer側の画面

PS> dotnet run

と実行すると、ProducerからConsumerにメッセージが流れ、
Consumer側の画面にReceived: Hello Worldと表示されます。

おわりに

本稿では、DotPulsarを使ったメッセージの送受信を行いました。

今回、シンプルなProducer、Consumerを作成して試しましたが、他にも様々な機能が実装されています。
公式ドキュメントが参考になるかと思います。

参考URL

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?