Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Arsitektur layanan mikro mendistribusikan tanggung jawab di seluruh layanan independen. Kemandirian itu mengubah cara Anda menangani tantangan arsitektur umum berikut:
- Pemeliharaan konsistensi data tanpa transaksi terdistribusi
- Manajemen komunikasi lintas layanan
- Isolasi kegagalan agar kegagalan tidak berantai
- Integrasi sistem warisan selama migrasi
Pola desain dalam artikel ini mengatasi tantangan ini secara langsung. Setiap pola menargetkan kekhawatiran tertentu yang mungkin Anda temui saat merancang, membangun, dan mengoperasikan layanan mikro.
Pola desain umum
Lapisan Anti-Korupsi mengimplementasikan fasad atau lapisan adaptor antara subsistem yang tidak berbagi semantik yang sama. Pola ini menerjemahkan permintaan antara subsistem dan mencegah dependensi pada sistem warisan atau layanan lain yang memiliki model domain yang tidak kompatibel untuk membatasi desain layanan baru.
Backends for Frontends menciptakan layanan backend yang terpisah untuk beragam jenis klien, seperti desktop dan seluler. Ketika Anda mengambil pendekatan ini, satu layanan backend tidak perlu menangani persyaratan yang bertentangan dari berbagai jenis klien. Pola ini membantu menjaga agar setiap layanan mikro tetap sederhana dengan memisahkan masalah khusus klien.
Bulkhead mengisolasi sumber daya penting, seperti kumpulan koneksi, memori, dan CPU, untuk setiap beban kerja atau layanan. Isolasi ini mencegah satu beban kerja atau layanan mengonsumsi semua sumber daya. Pola ini meningkatkan ketahanan beban kerja dengan mencegah satu layanan menyebabkan kegagalan bertingkat.
Koreografi memungkinkan setiap layanan memutuskan kapan dan bagaimana memproses operasi bisnis, daripada bergantung pada orkestrator pusat. Pola ini mengurangi kopling antara layanan dan mendukung pembaruan atau perubahan layanan yang sering.
Pemisahan Tanggung Jawab Kueri Perintah (CQRS) memisahkan operasi baca dari operasi tulis ke dalam model data terpisah. Pola ini meningkatkan performa, skalabilitas, dan keamanan dalam layanan mikro di mana baca dan tulis memiliki persyaratan performa atau penskalaan yang berbeda.
Perutean Gateway menggunakan gateway API sebagai proksi terbalik untuk merutekan permintaan klien ke layanan yang berbeda berdasarkan permintaan. Pendekatan ini memberi klien satu titik akhir alih-alih banyak.
Agregasi Gateway menggunakan gateway untuk menggabungkan beberapa permintaan klien ke dalam satu permintaan. Pendekatan ini mengurangi obrolan antara klien dan layanan.
Gateway Offloading memusatkan fungsionalitas yang melibatkan banyak aspek, seperti penghentian Secure Socket Layer (SSL), otentikasi, dan pembatasan laju, menjadi tugas gateway sehingga layanan individual tidak perlu menangani tanggung jawab ini secara terpisah.
Untuk informasi selengkapnya, lihat Gateway API untuk layanan mikro.
Saga mengelola konsistensi data di seluruh layanan mikro yang memiliki penyimpanan data independen. Saga adalah urutan transaksi lokal di mana setiap layanan melakukan operasinya dan memicu langkah berikutnya. Jika langkah gagal, saga menjalankan serangkaian transaksi kompensasi untuk membatalkan perubahan sebelumnya. Pola ini menggantikan transaksi terdistribusi, yang seringkali tidak praktis dalam arsitektur layanan mikro.
Sidecar menyebarkan komponen pembantu aplikasi sebagai kontainer atau proses terpisah untuk menyediakan isolasi dan enkapsulasi. Gunakan pola ini untuk melampirkan fungsionalitas umum, seperti konfigurasi pengelogan, pemantauan, dan jaringan, ke layanan tanpa menyematkannya dalam kode layanan.
Strangler Fig mendukung migrasi bertahap dari sistem warisan dengan secara bertahap mengganti potongan fungsionalitas tertentu dengan layanan baru. Konsumen terus menggunakan antarmuka yang sama, tidak menyadari bahwa migrasi sedang berlangsung, sampai Anda sepenuhnya mengganti sistem warisan.
Pola pendukung
Komunikasi antar layanan menjelaskan pola Retry dan Circuit Breaker untuk panggilan layanan-ke-layanan yang tangguh.
Untuk katalog lengkap pola desain cloud di Azure Architecture Center, lihat Pola desain cloud.
Langkah berikutnya
- Pelatihan: Bangun layanan mikro pertama Anda dengan menggunakan .NET
- Apa itu layanan mikro?
- arsitektur layanan mikro