Pesan normal adalah pesan tanpa fitur khusus yang disediakan oleh ApsaraMQ for RocketMQ. Pesan ini berbeda dari jenis pesan lain seperti pesan terjadwal, pesan tertunda, pesan terurut, dan pesan transaksional. Topik ini memberikan contoh kode untuk mengirim dan menerima pesan normal menggunakan TCP client SDK untuk .NET.
Prasyarat
Sebelum memulai, pastikan langkah-langkah berikut telah dilakukan:
SDK untuk .NET telah diunduh. Untuk informasi lebih lanjut, lihat Catatan Rilis.
Lingkungan telah dipersiapkan. Untuk informasi lebih lanjut, lihat Persiapkan Lingkungan.
Sumber daya yang ingin digunakan dalam kode telah dibuat di konsol ApsaraMQ for RocketMQ, termasuk instance, topik, dan grup konsumen. Untuk informasi lebih lanjut, lihat Buat Sumber Daya.
Pasangan AccessKey akun Alibaba Cloud Anda telah diperoleh. Untuk informasi lebih lanjut, lihat Buat Pasangan AccessKey.
Kirim pesan normal
Untuk detail tentang contoh kode, lihat ApsaraMQ for RocketMQ Repositori Kode.
Contoh kode berikut menunjukkan cara mengirim pesan normal menggunakan TCP client SDK untuk .NET. Pastikan parameter telah dikonfigurasi sesuai petunjuk.
using System;
using ons;
public class ProducerExampleForEx
{
public ProducerExampleForEx()
{
}
static void Main(string[] args) {
// Akun. Anda dapat memperoleh informasi akun dari konsol ApsaraMQ for RocketMQ.
ONSFactoryProperty factoryInfo = new ONSFactoryProperty();
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
// ID AccessKey yang digunakan untuk autentikasi.
factoryInfo.setFactoryProperty(ONSFactoryProperty::AccessKey, getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// Rahasia AccessKey yang digunakan untuk autentikasi.
factoryInfo.setFactoryProperty(ONSFactoryProperty::SecretKey, getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// ID grup konsumen yang Anda buat di konsol ApsaraMQ for RocketMQ.
factoryInfo.setFactoryProperty(ONSFactoryProperty.ProducerId, "GID_example");
// Topik yang Anda buat di konsol ApsaraMQ for RocketMQ.
factoryInfo.setFactoryProperty(ONSFactoryProperty.PublishTopics, "T_example_topic_name");
// Titik akhir TCP. Anda dapat memperoleh titik akhir di bagian TCP Endpoint halaman Detail Instance di konsol ApsaraMQ for RocketMQ.
factoryInfo.setFactoryProperty(ONSFactoryProperty.NAMESRV_ADDR, "NameSrv_Addr");
// Jalur log.
factoryInfo.setFactoryProperty(ONSFactoryProperty.LogPath, "C://log");
// Buat instance produsen.
// Catatan: Instance produsen bersifat thread-safe dan dapat digunakan untuk mengirim pesan dari topik berbeda. Dalam kebanyakan kasus, setiap thread hanya memerlukan satu instance produsen.
Producer producer = ONSFactory.getInstance().createProducer(factoryInfo);
// Mulai instance produsen.
producer.start();
// Buat pesan.
Message msg = new Message(factoryInfo.getPublishTopics(), "tagA", "Contoh isi pesan");
msg.setKey(Guid.NewGuid().ToString());
for (int i = 0; i < 32; i++) {
try
{
SendResultONS sendResult = producer.send(msg);
Console.WriteLine("pengiriman berhasil {0}", sendResult.getMessageId());
}
catch (Exception ex)
{
Console.WriteLine("pengiriman gagal{0}", ex.ToString());
}
}
// Sebelum keluar dari thread Anda, hentikan instance produsen.
producer.shutdown();
}
} Berlangganan pesan normal
Untuk instruksi dan contoh kode tentang cara berlangganan pesan normal menggunakan TCP client SDK untuk .NET, lihat Berlangganan Pesan.