Memastikan performa Amazon MQ yang efektif - Amazon MQ

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memastikan performa Amazon MQ yang efektif

Pola desain berikut dapat meningkatkan efektivitas dan performa broker Amazon MQ Anda.

Menonaktifkan Penyimpanan dan Pengiriman Bersamaan untuk Antrean dengan Konsumen Lambat

Secara default, Amazon MQ mengoptimalkan antrean dengan konsumen cepat:

  • Konsumen dianggap cepat jika mereka mampu bersaing dengan laju pesan yang dihasilkan oleh produsen.

  • Konsumen dianggap lambat jika antrean menimbulkan backlog pesan yang tidak diakui, berpotensi menyebabkan penurunan throughput produsen.

Untuk menginstruksikan Amazon MQ agar mengoptimalkan antrean dengan konsumen lambat, atur concurrentStoreAndDispatchQueues atribut ke false. Contoh konfigurasi, lihat concurrentStoreAndDispatchQueues.

Memilih Tipe Instans Broker yang Tepat untuk Throughput Terbaik

Throughput pesan dari tipe instans broker tergantung pada kasus penggunaan aplikasi Anda dan faktor berikut:

  • Penggunaan ActiveMQ dalam mode tetap

  • Ukuran pesan

  • Jumlah produsen dan konsumen

  • Jumlah tujuan

Memahami hubungan antara ukuran pesan, latensi, dan throughput

Tergantung pada kasus penggunaan Anda, tipe instans broker yang lebih besar mungkin tidak selalu meningkatkan throughput sistem. Ketika ActiveMQ menulis pesan ke penyimpanan tahan lama, ukuran pesan Anda menentukan faktor pembatas sistem:

  • Jika pesan Anda lebih kecil dari 100 KB, latensi penyimpanan tetap adalah faktor pembatas.

  • Jika pesan Anda lebih besar dari 100 KB, throughput penyimpanan tetap adalah faktor pembatas.

Ketika Anda menggunakan ActiveMQ dalam mode tetap, menulis ke penyimpanan biasanya terjadi ketika ada beberapa konsumen atau ketika konsumen lambat. Dalam modus tidak tetap, menulis ke penyimpanan juga terjadi dengan konsumen lambat jika memori tumpukan instans broker penuh.

Untuk menentukan tipe instans broker terbaik bagi aplikasi Anda, kami merekomendasikan pengujian tipe instans broker yang berbeda. Untuk informasi selengkapnya, lihat Broker instance types dan juga Mengukur Throughput untuk Amazon MQ menggunakan Tolok Ukur JMS.

Kasus penggunaan untuk jenis instans broker yang lebih besar

Ada tiga kasus penggunaan umum ketika tipe instans broker yang lebih besar meningkatkan throughput:

  • Mode tidak tetap – Ketika aplikasi Anda kurang sensitif terhadap kehilangan pesan selama failover instans broker (misalnya, ketika menyiarkan skor olahraga), Anda mungkin sering menggunakan mode tidak tetap ActiveMQ. Dalam mode ini, ActiveMQ menulis pesan ke penyimpanan tetap hanya jika memori tumpukan instans broker penuh. Sistem yang menggunakan mode tidak tetap bisa mendapatkan manfaat dari jumlah memori yang lebih tinggi, CPU yang lebih cepat, dan jaringan yang lebih cepat dan tersedia pada tipe instans broker yang lebih besar.

  • Konsumen cepat – Ketika konsumen aktif tersedia dan bendera concurrentStoreAndDispatchQueues diaktifkan, ActiveMQ memungkinkan pesan mengalir langsung dari produsen ke konsumen tanpa mengirim pesan ke penyimpanan (bahkan dalam mode tetap). Jika aplikasi Anda dapat mengonsumsi pesan dengan cepat (atau jika Anda dapat merancang konsumen Anda untuk melakukan hal ini), aplikasi bisa mendapatkan keuntungan dari tipe instans broker yang lebih besar. Untuk membiarkan aplikasi Anda mengonsumsi pesan lebih cepat, tambahkan utas konsumen ke instans aplikasi Anda atau tingkatkan skala instans aplikasi Anda secara vertikal atau horizontal.

  • Transaksi yang di-batch – Ketika menggunakan mode tetap dan mengirim beberapa pesan per transaksi, Anda dapat mencapai throughput pesan yang lebih tinggi secara keseluruhan dengan menggunakan tipe instans broker yang lebih besar. Untuk informasi selengkapnya, lihat Should I Use Transactions? dalam dokumentasi ActiveMQ.

Pilih jenis penyimpanan broker yang tepat untuk throughput terbaik

Untuk memanfaatkan daya tahan dan replikasi yang tinggi di beberapa Availability Zone, gunakan Amazon EFS. Untuk memanfaatkan latensi rendah dan throughput yang tinggi, gunakan Amazon EBS. Untuk informasi selengkapnya, lihat Storage.

Mengonfigurasi Jaringan Broker dengan Benar

Saat Anda membuat jaringan broker, konfigurasikan dengan benar untuk aplikasi Anda:

  • Aktifkan mode tetap – Karena (tergantung pada rekannya) setiap instans broker bertindak seperti produsen atau konsumen, jaringan broker tidak menyediakan replikasi terdistribusi dari pesan. Broker pertama yang bertindak sebagai konsumen menerima pesan dan menahannya ke penyimpanan. Broker ini mengirimkan pengakuan kepada produsen dan meneruskan pesan ke broker berikutnya. Ketika broker kedua mengakui ketetapan pesan, broker pertama akan menghapus pesan.

    Jika modus tetap dinonaktifkan, broker pertama mengakui produsen tanpa menahan pesan ke penyimpanan. Untuk informasi selengkapnya, lihat Replicated Message Store dan What is the difference between persistent and non-persistent delivery? dalam dokumentasi Apache ActiveMQ.

  • Jangan nonaktifkan pesan penasihat untuk instans broker – Untuk informasi selengkapnya, lihat Advisory Message dalam dokumentasi Apache ActiveMQ.

  • Jangan gunakan penemuan broker multicast – Amazon MQ tidak mendukung penemuan broker menggunakan multicast. Untuk informasi selengkapnya, lihat What is the difference between discovery, multicast, and zeroconf? dalam dokumentasi Apache ActiveMQ.