ApsaraMQ for RocketMQ, farklı protokoller kullanan birden çok SDK sürümü sunar. Örnek türünüz ve iş yükünüzle uyumlu SDK'yı seçin.
Yeni projeler için RocketMQ 5.x gRPC SDK kullanın. En fazla programlama dilini destekler, tüm yeni özellikleri alır ve 5.x serisi örneklerle çalışır. Yalnızca eski SDK'larda bulunan yayın bazlı tüketim veya akış tüketimi gibi özelliklere ihtiyacınız varsa bunun yerine ilgili SDK'yı kullanın.
SDK sürümleri
Aşağıdaki tabloda her bir SDK sürümünün protokolü, örnek uyumluluğu ve öneri durumu karşılaştırılmıştır.
| Protokol | gRPC protokolü v2 | Remoting protokolü | Remoting protokolü | Remoting protokolü | gRPC protokolü v1 | HTTP protokolü |
| Erişilebilir örnekler | 5.x serisi örnekler | 5.x serisi örnekler, 4.x serisi örnekler | 5.x serisi örnekler, 4.x serisi örnekler | 5.x serisi örnekler, 4.x serisi örnekler | 4.x serisi örnekler | 4.x serisi örnekler |
| Öneri | Önerilir. Birden çok dili destekler. Tüm yeni özellikler ve optimizasyonlar bu SDK'ya yöneliktir. 5.x gRPC SDK'nın bazı özellikleri gereksinimlerinizi karşılamıyorsa 5.x Remoting SDK'yı kullanabilirsiniz. | Mevcut uygulamalar bu SDK sürümlerini kullanmaya devam edebilir. 5.x serisi örneklerle uyumludur. | Mevcut uygulamalar bu SDK sürümlerini kullanmaya devam edebilir. 5.x serisi örneklerle uyumludur. | Mevcut uygulamalar bu SDK sürümlerini kullanmaya devam edebilir. 5.x serisi örneklerle uyumludur. | Bu sürümlerin istemcilerini kullanmayın. Yeni özellik veya optimizasyon yoktur. Yalnızca 4.x serisi örnekler erişilebilir. | Bu sürümlerin istemcilerini kullanmayın. Yeni özellik veya optimizasyon yoktur. Yalnızca 4.x serisi örnekler erişilebilir. |
SDK sürümleri arasında özellik karşılaştırması
Aşağıdaki tabloda onay işareti desteği, X ise desteklenmediğini gösterir.
|
|
|
|
|
|
|
|
| Normal, sıralı, işlem tabanlı ve zamanlanmış mesaj gönderme | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Hafif konu tabanlı model | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Eşzamanlı tüketim | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Mesajların sıralı tüketimi | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Sıralı mesaj tüketimi için eşzamanlılık optimizasyonu | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Yayın bazlı tüketim | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Akış tüketimi (Flink vb. bağlantı) | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Mesaj izleme | ✅ | ✅ | 4.5.2 ve sonraki sürümlerde desteklenir | ✅ | ✅ | ❌ |
| Üretici ve tüketici istemci ölçüm verileri | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Sorunsuz kapatma | ✅ | Yalnızca 5.x serisi örnekler için desteklenir | ❌ | ❌ | ❌ | ❌ |
| Toplu gönderim | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Öncelikli mesaj | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Öncelikli mesaj, mesajlara öncelik düzeyleri atamanıza olanak tanır; böylece daha yüksek öncelikli mesajlar daha düşük öncelikli olanlardan önce tüketilir. Bu özellik yalnızca RocketMQ 5.x gRPC SDK ile kullanılabilir.
Sınırlamalar
Aynı tüketici grubundaki farklı tüketiciler aynı protokolü destekleyen istemciler kullanmalıdır.
-
Aynı tüketici grubu için Remoting protokolü kullanan SDK'dan gRPC protokolü kullanan SDK'ya kademeli yükseltme yaparken:
Mesajları sıralı şekilde sunan tüketici grupları bu yükseltmeyi desteklemez.
Mesajları eşzamanlı şekilde sunan tüketici grupları sorunsuz yükseltmeyi destekler. Yükseltme sırasında az sayıda mesaj yinelenebilir.
Aynı sıralı konuya mesaj göndermek için tüm üretici istemcileri aynı protokolü kullanmalıdır. Protokol ya Remoting protokolü ya da gRPC protokolü olmalıdır.
-
Mesajları sıralı şekilde sunan bir tüketici grubunda aşağıdaki sıra gerçekleşirse tüketici ofseti geri dönebilir:
Tüketici grubu ilk olarak Remoting protokolü kullanan bir SDK kullanır.
SDK, gRPC protokolü kullanan bir SDK'ya yükseltilir.
SDK, Remoting protokolü kullanan SDK'ya geri alınır.
RocketMQ ONS TCP 2.x SDK yalnızca bazı bölgelerde kullanılabilir. Daha fazla bilgi için bkz. Sınırlamalar.
RocketMQ 5.x gRPC SDK
5.x gRPC SDK Java, C#, Go, Python ve C++ dillerini destekler. Tüm diller gRPC protokolü v2 kullanır.
Dil |
Başvurular |
| Java SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
| C# SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
| Go SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
| Python SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
| C++ SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
RocketMQ 5.x Remoting SDK
5.x Remoting SDK yalnızca Java için kullanılabilir ve Remoting protokolünü kullanır.
Dil |
Başvurular |
| Java SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
RocketMQ 4.x/3.x SDK
4.x/3.x SDK Java ve C++ için kullanılabilir ve Remoting protokolünü kullanır.
Dil |
Başvurular |
| Java SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
| C++ SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
RocketMQ ONS TCP 1.x SDK
ONS TCP 1.x SDK Java, C++ ve .NET için kullanılabilir ve Remoting protokolünü kullanır.
Dil |
Başvurular |
| Java SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
| C++ SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |
| .NET SDK | Sürüm Kılavuzu | Ortamı hazırlama | Örnek kod |