ApsaraMQ for RabbitMQ menerapkan batas pada kluster, karakter, dan lalu lintas Transactions Per Second (TPS) puncak. Untuk menghindari kesalahan program, jangan melebihi batas-batas ini saat menggunakan ApsaraMQ for RabbitMQ.
Batas kluster
Batas dalam tabel ini berlaku untuk versi terbaru instans.
Jika batas instans Anda tidak sesuai dengan yang tercantum dalam tabel ini, kemungkinan instans Anda bukan versi terbaru. Untuk informasi lebih lanjut, submit a ticket. Pembatasan berikut berlaku untuk penyesuaian batas:
Instans dengan arsitektur lama tidak mendukung penyesuaian batas: Instans yang ID-nya hanya terdiri dari angka atau titik akhir VPC-nya tidak diakhiri dengan
mq.amqp.aliyuncs.comtidak mendukung penyesuaian terhadap batas-batas yang tercantum di bawah ini.
Item | Serverless instance | Subscription instance | |||
Shared | Exclusive | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | |
Pay-by-provisioned-capacity-and-elastic-traffic/Pay-by-messaging-request | Pay-by-provisioned-capacity-and-elastic-traffic | ||||
Vhosts per instance | 200 | 2.000 | 200 | 4.096 | 200 |
Exchanges per instance | 6.000 | 10.000 | 6.000 | 80.000 | 6.000 |
Bindings per instance | 20.000 | 20.000 | 20.000 | None | 20.000 |
Queues per instance | 6.000 | 10.000 | 6.000 | 80.000 | 6.000 |
Connections per instance | 10.000 | 20.000 | Purchase based on instance type. Each instance has a free quota of 2.000 connections. The maximum is 10.000. | Purchase based on instance type. Each instance has a free quota of 50.000 connections. The maximum is 100.000. | Number of queues × 4. The number of connections per instance ranges from 1.000 to 5.000. |
Queues per exchange binding | 256 | 256 Submit a ticket to request a custom quota. After customization, you cannot downgrade the instance to a shared cluster. | 256 | 256 To request a custom quota, contact Alibaba Cloud technical support. | 256 |
Consumers per queue | Number of queues × 4. The number of consumers per queue ranges from 800 to 5.000. | None | Number of queues × 4. The number of consumers per queue ranges from 800 to 5.000. | None | Number of queues × 4. The number of consumers per queue ranges from 50 to 5.000. |
Channels per connection | 2.000 | 3.000 | The number of channels per connection is the minimum of [Number of queues, 2048].
| 3.000 | The number of channels per connection is either 64 or the Number of queues.
|
Message size | 10 MB | 50 MB | 10 MB (Note: For instances in the China (Qingdao), Japan (Tokyo), and China (Hohhot) regions, and instances created before May 1, 2025 in other regions, the limit is 1 MB.) | 50 MB (Note: For instances in the China (Qingdao), Japan (Tokyo), and China (Hohhot) regions, and instances created before May 1, 2025 in other regions, the limit is 3 MB.) | 64 KB |
Maximum delay for delayed messages | 7 days | 7 days Submit a ticket to request a custom quota. After customization, you cannot downgrade the instance to a shared cluster. | 7 days | 7 days To request customization, contact Alibaba Cloud Technical Support. | 24 hours |
Maximum message retention period | 3 days | 3 days | 3 days | 3 days | 3 days |
Maximum delivery attempts | 16 | 16 | 16 | 64 | 16 |
Maximum: 3 hours Default: 5 minutes | Maximum: 12 hours Default: 30 minutes | Maximum: 3 hours Default: 5 minutes | Maximum: 12 hours Default: 30 minutes | Maximum: 10 minutes Default: 1 minute | |
ApsaraMQ for RabbitMQ membatasi ukuran Header frame pesan hingga 32 KB. Batas ini tidak dapat disesuaikan. Untuk menghindari pemicuan batas ukuran Header frame, sertakan konten pesan berukuran besar dalam Body pesan, bukan dalam Header frame.
Batas karakter
Item | Batas |
Queue name |
|
Exchange name |
|
Vhost name |
|
Binding key |
|
Consumer tag |
|
Message ID |
|
Ambang batas rate limiting
Untuk informasi tentang cara menghitung TPS, lihat Aturan perhitungan untuk edisi Serverless instance dan Aturan perhitungan TPS untuk edisi subscription instance.
Untuk informasi tentang cara menangani masalah ketika TPS terkena rate limiting, lihat Solusi ketika total TPS suatu instans terkena rate limiting dan Solusi ketika TPS node tunggal terkena rate limiting.
Total TPS
Instance edition | Serverless instance | Subscription instance | ||||||
Specification | Shared | Exclusive | Elastic TPS disabled | Elastic TPS enabled | ||||
Pay-by-provisioned-capacity-and-elastic-traffic/Pay-by-messaging-request | Pay-by-provisioned-capacity-and-elastic-traffic | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | |
Rate limiting threshold | Maksimum 50.000 per detik | Dua kali TPS puncak spesifikasi dasar | TPS puncak spesifikasi dasar | Dua kali TPS puncak spesifikasi dasar, hingga maksimum 50.000 per detik | Dua kali TPS puncak spesifikasi dasar, hingga maksimum 50.000 per detik | 1,5 kali TPS puncak spesifikasi dasar | ||
SendMessage node tunggal
Server membatasi TPS SendMessage untuk setiap node layanan backend dalam suatu instans. Ambang batasnya adalah sebagai berikut:
Item | Serverless instance | Subscription instance | ||||
Shared | Exclusive | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | ||
Pay-by-messaging-request | Pay-by-provisioned-capacity-and-elastic-traffic | Pay-by-provisioned-capacity-and-elastic-traffic | ||||
Rate limiting threshold | 25.000 per detik | 25.000 per detik | None | 25.000 per detik | None | 25.000 per detik |
Panggilan API tunggal
Item | API | Serverless instance | Subscription instance | |||
Shared | Exclusive | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | ||
Pay-by-provisioned-capacity-and-elastic-traffic/Pay-by-messaging-request | Pay-by-provisioned-capacity-and-elastic-traffic | |||||
Purge queue per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Create exchange per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Delete exchange per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Create queue per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Delete queue per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Create binding per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Delete binding per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Single-Instance Recovery Message |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Requeue messages per instance |
| 20 TPS | None | 20 TPS | None | 20 TPS |
FAQ
Apakah Enterprise Edition mendukung ekspansi independen batas queue?
Tidak. Jumlah maksimum queue per instans Enterprise Edition adalah 6.000. Batas ini merupakan spesifikasi tingkat produk dan tidak dapat diperluas secara independen dalam edisi saat ini (misalnya, tidak dapat dinaikkan secara independen menjadi 10.000).
Jika bisnis Anda memerlukan lebih banyak queue, pertimbangkan alternatif berikut:
Optimalkan penggunaan queue: Gabungkan queue jika memungkinkan, gunakan strategi routing Topic Exchange untuk mengurangi jumlah total queue, atau bersihkan queue yang tidak memiliki konsumen dan tidak lagi digunakan.
Pisahkan bisnis ke beberapa instans: Jika beban kerja Anda memungkinkan, distribusikan sebagian bisnis Anda ke instans Enterprise Edition baru untuk menyebarkan penggunaan queue ke beberapa instans.
Bagaimana cara menangani error "The channelMax limit is reached"?
Penyebab: Jumlah channel di bawah satu koneksi telah mencapai batas channelMax untuk edisi instans Anda saat ini.
Solusi:
Konfirmasi edisi instans ApsaraMQ for RabbitMQ Anda saat ini (Professional Edition, Enterprise Edition, Enterprise Platinum Edition, dan sebagainya).
Lihat baris Channels per connection dalam tabel Cluster limits untuk mengetahui nilai channelMax spesifik untuk edisi instans Anda.
Evaluasi apakah Anda perlu melakukan upgrade edisi instans untuk mendukung jumlah channel konkuren yang lebih tinggi.
Kata kunci "channelMax", "limit is reached", "pay callback error", dan "channel count limit" semuanya terkait dengan error ini. Jika Anda mengalami gejala-gejala tersebut, ikuti langkah-langkah di atas untuk mendiagnosis dan menyelesaikan masalah.