Pola pesan - AWS Panduan Preskriptif

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

Pola pesan

Pola ini menyediakan komunikasi asinkron antara layanan mikro dengan menggunakan model polling asinkron. Ketika sistem backend menerima panggilan, itu segera merespons dengan pengenal permintaan dan kemudian secara asinkron memproses permintaan. Arsitektur yang digabungkan secara longgar dapat dibangun, yang menghindari kemacetan yang disebabkan oleh komunikasi sinkron, latensi, dan operasi input/output (IO). Dalam kasus penggunaan pola, Amazon Simple Queue Service (Amazon SQS) dan Lambda digunakan untuk mengimplementasikan komunikasi asinkron antara layanan mikro yang berbeda.

Anda harus mempertimbangkan untuk menggunakan pola ini jika:

  • Anda ingin membuat arsitektur longgar digabungkan.

  • Semua operasi tidak perlu diselesaikan dalam satu transaksi, dan beberapa operasi dapat asynchronous.

  • Sistem hilir tidak dapat menangani tarif transaksi per detik (TPS) yang masuk. Pesan dapat ditulis ke antrian dan diproses berdasarkan ketersediaan sumber daya.

Kerugian dari pola ini adalah bahwa tindakan transaksi bisnis bersifat sinkron. Meskipun sistem panggilan menerima respon, beberapa bagian dari transaksi mungkin masih terus diproses oleh sistem hilir.

penting

Karena pola ini lebih cocok untuk model api-dan-lupa, klien yang memanggil layanan ini harus polling layanan yang sebenarnya dengan menggunakan request ID untuk mendapatkan status transaksi.

Kasus penggunaan

Dalam kasus penggunaan ini, sistem asuransi memiliki database penjualan yang secara otomatis diperbarui dengan rincian transaksi pelanggan setelah pembayaran bulanan dilakukan. Ilustrasi berikut menunjukkan bagaimana membangun sistem ini dengan menggunakan pola pesan decouple.

Pola decouple

Alur kerja terdiri dari langkah-langkah berikut:

  1. Aplikasi frontend memanggil API Gateway dengan informasi pembayaran setelah pengguna melakukan pembayaran bulanan mereka.

  2. API Gateway menjalankan fungsi Lambda “Pelanggan” yang menyimpan informasi pembayaran dalam database Amazon Aurora, menulis rincian transaksi dalam pesan ke Amazon SQS “Penjualan”, dan merespons sistem panggilan dengan pesan sukses.

  3. Fungsi “Penjualan” Lambda menarik rincian transaksi dari pesan SQS dan memperbarui data penjualan. Kegagalan dan coba lagi logika untuk memperbarui database penjualan dimasukkan sebagai bagian dari fungsi “Penjualan” Lambda.