ApsaraMQ for RocketMQ menyediakan kit pengembangan perangkat lunak (SDK) multi-bahasa untuk protokol TCP dan HTTP. Topik ini menjelaskan perbedaan antara berbagai SDK serta cara menggunakannya.
Versi SDK
Tabel berikut menjelaskan fitur-fitur yang didukung oleh berbagai versi SDK ApsaraMQ for RocketMQ.
Pada tabel berikut, ✅ menunjukkan bahwa fitur tersebut didukung, sedangkan ❌ menunjukkan bahwa fitur tersebut tidak didukung.
Item | ||||||
Protokol | protokol gRPC v2 | protokol Remoting | protokol Remoting | protokol Remoting | protokol gRPC v1 | protokol HTTP |
Instans yang dapat diakses | instans seri 5.x |
|
|
| instans seri 4.x | instans seri 4.x |
Rekomendasi | Gunakan SDK 5.x gRPC.
|
|
| |||
Mengirim pesan normal, terurut, transaksional, dan terjadwal | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Konsumsi konkuren | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Konsumsi terurut | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Optimasi konkurensi konsumsi untuk konsumsi terurut | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Konsumsi siaran | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
Konsumsi aliran (menghubungkan ke layanan seperti Flink) | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
Jejak pesan | ✅ | ✅ | Didukung pada versi 4.5.2 dan yang lebih baru | ✅ | ✅ | ❌ |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
✅ | Hanya didukung untuk instans seri 5.x | ❌ | ❌ | ❌ | ❌ | |
Batasan SDK
Konsumen dalam kelompok konsumen yang sama harus menggunakan klien dengan protokol yang sama.
Saat melakukan peningkatan canary dari SDK protokol Remoting ke SDK protokol gRPC untuk kelompok konsumen yang sama, perhatikan hal-hal berikut:
Peningkatan tidak didukung untuk kelompok konsumen yang mengirimkan pesan secara terurut.
Peningkatan lancar didukung untuk kelompok konsumen yang mengirimkan pesan secara konkuren. Namun, sejumlah kecil pesan mungkin diduplikasi selama proses peningkatan.
Saat mengirim pesan ke topik terurut yang sama, semua klien produsen harus menggunakan protokol yang sama, baik protokol Remoting maupun protokol gRPC.
Untuk kelompok konsumen yang mengirimkan pesan secara terurut, pengaturan ulang offset konsumen mungkin terjadi jika Anda melakukan langkah-langkah berikut:
Kelompok konsumen terurut awalnya berjalan pada SDK protokol Remoting.
Anda meningkatkan SDK ke SDK protokol gRPC.
Anda mengembalikan SDK ke SDK protokol Remoting.
RocketMQ ONS TCP 2.x SDK hanya didukung di beberapa wilayah. Untuk informasi selengkapnya, lihat Batasan.
Protokol TCP
Gunakan SDK Edisi Komunitas hanya saat memigrasikan RocketMQ sumber terbuka ke cloud tanpa mengubah kode Anda. Untuk semua skenario lainnya, gunakan SDK Edisi Perusahaan yang disediakan oleh ApsaraMQ for RocketMQ. Dibandingkan dengan SDK Edisi Komunitas, SDK Edisi Perusahaan menawarkan lebih banyak fitur dan stabilitas yang lebih tinggi.
SDK protokol TCP Edisi Perusahaan (SDK ONS 1.x/2.x)
C/C++ SDK
Protokol HTTP
SDK protokol HTTP Edisi Perusahaan (direkomendasikan untuk dukungan multi-bahasa)
Python SDK
Node.js SDK
Perbandingan antara SDK protokol TCP dan HTTP
SDK protokol TCP dan HTTP mendukung fitur yang berbeda. Evaluasi jenis protokol yang paling sesuai dengan kebutuhan Anda.
Jenis protokol SDK | SDK protokol TCP | SDK protokol HTTP |
Rekomendasi | Pilihan utama
| Pilihan alternatif
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
Catatan penggunaan SDK
Setiap jenis titik akhir hanya dapat digunakan oleh klien dengan jenis protokol yang sama. Misalnya, jika Anda ingin menggunakan SDK klien TCP untuk mengirim dan menerima pesan, Anda harus menggunakan titik akhir TCP dari instans ApsaraMQ for RocketMQ untuk mengakses broker ApsaraMQ for RocketMQ.
ApsaraMQ for RocketMQ mendukung ID grup untuk protokol HTTP dan TCP. ID grup untuk protokol berbeda tidak dapat saling dipertukarkan. Misalnya, jika Anda menggunakan SDK protokol TCP untuk mengirim dan menerima pesan, Anda harus membuat ID grup protokol TCP.
Klien yang menggunakan protokol TCP dan klien yang menggunakan protokol HTTP dapat saling mengirim dan menerima pesan. Namun, protokol HTTP menggunakan XML untuk serialisasi pesan. Oleh karena itu, properti pesan, konten, tag, dan kunci harus mematuhi spesifikasi XML. Jika tidak, pesan mungkin gagal dikirim atau dikonsumsi.
Anda dapat menggunakan Base64 untuk mengenkripsi dan mendekripsi pesan yang tidak mematuhi spesifikasi XML.
CatatanUntuk informasi selengkapnya tentang spesifikasi XML, lihat sintaks XML. Anda juga dapat menggunakan alat pihak ketiga, seperti xml_validator, untuk memeriksa validitas sintaks XML.
Titik akhir publik dan privat untuk klien TCP dan HTTP tersedia di semua wilayah. Di lingkungan produksi, kami merekomendasikan agar Anda mengakses ApsaraMQ for RocketMQ melalui virtual private cloud (VPC). Jika Anda ingin mengakses ApsaraMQ for RocketMQ lintas wilayah, dari pusat data lokal, atau melalui Internet saat Cloud Enterprise Network (CEN) tidak tersedia, Anda dapat menggunakan titik akhir publik untuk mengakses instans ApsaraMQ for RocketMQ. Penggunaan titik akhir publik akan dikenai biaya lalu lintas Internet keluar. Untuk informasi selengkapnya, lihat Penagihan lalu lintas Internet.