ID: 1 Klien mengirimkan ID unik ke agregator untuk langkah 6. Layanan mikro pencarian pemesanan yang telah berlangganan topik pemesanan menerima permintaan. Layanan mikro memproses permintaan dan mengembalikan ketersediaan kursi untuk kriteria penelusuran yang diberikan ke antrian respons di Amazon Simple Queue Service (Amazon SQS). Agregator mengumpulkan semua pesan respons dan menyimpannya dalam database sementara. Layanan hasil penerbangan mengelompokkan penerbangan dengan ID unik, menciptakan respons terpadu tunggal, dan mengirimkannya kembali ke klien.

Implementasi menggunakan Layanan AWS

Arsitektur berikut menunjukkan bagaimana pola scatter-gathering dapat diimplementasikan menggunakan layanan Amazon Web Services (AWS).

ID: 2 Sebarkan dengan distribusi Dalam arsitektur berikut, pengontrol root adalah prosesor file data (Amazon ECS) yang membagi data permintaan masuk menjadi bucket Amazon Simple Storage Service (Amazon S3) individual dan memulai alur kerja. AWS Step Functions Alur kerja mengunduh data dan memulai pemrosesan file paralel. ParallelNegara menunggu semua tugas untuk mengembalikan respons. Suatu AWS Lambda fungsi mengumpulkan data dan menyimpannya kembali ke Amazon S3.

Diagram berikut menggambarkan alur kerja Step Functions dengan status.

Parallel

ID: 3 Scatter dengan lelang Diagram berikut menunjukkan arsitektur AWS untuk pencar dengan metode lelang. Layanan pemesanan penerbangan root controller menyebarkan permintaan pencarian penerbangan ke beberapa layanan mikro. Saluran berlangganan publikasi diimplementasikan dengan Amazon Simple Notification Service (Amazon SNS), yang merupakan layanan pesan terkelola untuk komunikasi. Amazon SNS mendukung pesan antara aplikasi microservice yang dipisahkan atau komunikasi langsung ke pengguna. Anda dapat menerapkan layanan mikro penerima di Amazon Elastic Kubernetes Service (Amazon EKS) atau Amazon Elastic Container Service (Amazon ECS) untuk pengelolaan dan skalabilitas yang lebih baik. Layanan hasil penerbangan mengembalikan hasilnya kepada klien. Ini dapat diimplementasikan di AWS Lambda atau layanan orkestrasi kontainer lainnya seperti Amazon ECS atau Amazon EKS.

ID: 4 Layanan pemesanan penerbangan (controller) mengambil kriteria pencarian sebagai masukan dari klien, dan memproses serta menerbitkan permintaan ke topik SNS. Pengontrol menerbitkan ID unik ke database Amazon Aurora untuk mengidentifikasi permintaan. Klien mengirimkan ID unik ke klien untuk langkah 6. Layanan mikro pencarian pemesanan yang telah berlangganan topik pemesanan menerima permintaan. Layanan mikro memproses permintaan dan mengembalikan ketersediaan kursi untuk kriteria penelusuran yang diberikan ke antrian respons di Amazon Simple Queue Service (Amazon SQS). Agregator mengumpulkan semua pesan respons dan menyimpannya dalam database sementara. Layanan hasil penerbangan mengelompokkan penerbangan dengan ID unik, menciptakan respons terpadu tunggal, dan mengirimkannya kembali ke klien.

Jika Anda ingin menambahkan pencarian maskapai penerbangan lain ke arsitektur ini, Anda menambahkan layanan mikro yang berlangganan topik SNS dan menerbitkan ke antrean SQS.

ID: 5 GitHub repositori Untuk implementasi lengkap arsitektur sampel untuk pola ini, lihat GitHub repositori di https://github.com/aws-samples/asynchronous-messaging-workshop/tree/master/code/lab-3.

Lokakarya Laboratorium Scatter-gathering di bengkel Layanan Mikro Decoupled

Referensi blog Pola integrasi aplikasi untuk layanan mikro

Konten terkait Pola terbitkan-berlangganan