通常のメッセージは、ApsaraMQ for RocketMQによって提供される機能のないメッセージです。 通常のメッセージは、スケジュールメッセージ、遅延メッセージ、順序付けられたメッセージ、およびトランザクションメッセージを含む、特徴的なメッセージとは異なる。 このトピックでは、TCPクライアントSDKを使用して通常のメッセージを送受信する方法に関するサンプルコードを提供します。NETを使用します。
前提条件
開始する前に、次の操作が実行されていることを確認してください。
SDK for。NETがダウンロードされます。 詳細については、「リリースノート」をご参照ください。
環境を整えます。 詳細については、「環境の準備」をご参照ください。
コードで指定するリソースは、ApsaraMQ for RocketMQコンソールで作成されます。 リソースには、インスタンス、トピック、および消費者グループが含まれます。 詳細については、「リソースの作成」 をご参照ください。
Alibaba CloudアカウントのAccessKeyペアが取得されます。 詳細については、「AccessKey の作成」をご参照ください。
通常のメッセージを送信する
説明
サンプルコードの詳細については、ApsaraMQ For RocketMQコードリポジトリをご参照ください。
次のサンプルコードは、TCPクライアントSDK forを使用して通常のメッセージを送信する方法の例を示しています。NETを使用します。 指示に従ってパラメーターを設定する必要があります。
using System;
using ons;
public class ProducerExampleForEx
{
public ProducerExampleForEx()
{
}
static void Main(string[] args) {
// The account. You can obtain the account information from the ApsaraMQ for RocketMQ console.
ONSFactoryProperty factoryInfo = new ONSFactoryProperty();
// Make sure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are configured.
// The AccessKey ID that is used for authentication.
factoryInfo.setFactoryProperty(ONSFactoryProperty::AccessKey, getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// The AccessKey secret that is used for authentication.
factoryInfo.setFactoryProperty(ONSFactoryProperty::SecretKey, getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// The ID of the consumer group that you created in the ApsaraMQ for RocketMQ console.
factoryInfo.setFactoryProperty(ONSFactoryProperty.ProducerId, "GID_example");
// The topic that you created in the ApsaraMQ for RocketMQ console.
factoryInfo.setFactoryProperty(ONSFactoryProperty.PublishTopics, "T_example_topic_name");
// The TCP endpoint. You can obtain the endpoint in the TCP Endpoint section of the Instance Details page in the ApsaraMQ for RocketMQ console.
factoryInfo.setFactoryProperty(ONSFactoryProperty.NAMESRV_ADDR, "NameSrv_Addr");
// The log path.
factoryInfo.setFactoryProperty(ONSFactoryProperty.LogPath, "C://log");
// Create the producer instance.
// Note: Producer instances are thread-safe and can be used to send messages from different topics. In most cases, each thread requires only one producer instance.
Producer producer = ONSFactory.getInstance().createProducer(factoryInfo);
// Start the producer instance.
producer.start();
// Create the message.
Message msg = new Message(factoryInfo.getPublishTopics(), "tagA", "Example message body");
msg.setKey(Guid.NewGuid().ToString());
for (int i = 0; i < 32; i++) {
try
{
SendResultONS sendResult = producer.send(msg);
Console.WriteLine("send success {0}", sendResult.getMessageId());
}
catch (Exception ex)
{
Console.WriteLine("send failure{0}", ex.ToString());
}
}
// Before you exit your thread, terminate the producer instance.
producer.shutdown();
}
}
通常のメッセージを購読する
TCPクライアントSDKを使用して通常のメッセージをサブスクライブする方法に関する手順とサンプルコードについては、「メッセージの購読」をご参照ください。