Chattiness - Menerapkan Layanan Mikro di AWS

Chattiness

Dengan memecah aplikasi monolitik menjadi layanan mikro kecil, overhead komunikasi meningkat karena layanan mikro harus saling berkomunikasi. Dalam banyak penerapan, REST melalui HTTP digunakan karena merupakan protokol komunikasi ringan, tetapi volume pesan yang tinggi dapat menyebabkan masalah. Dalam beberapa kasus, Anda mungkin mempertimbangkan untuk mengonsolidasikan layanan yang mengirimkan banyak pesan secara bolak-balik. Jika Anda mendapati diri Anda dalam situasi saat Anda mengonsolidasikan jumlah layanan yang meningkat hanya untuk mengurangi chattiness, Anda harus meninjau domain dan model domain Anda yang bermasalah.

Protokol

Sebelumnya di laporan resmi ini, pada bagian Komunikasi asinkron dan olahpesan ringan, berbagai protokol yang dapat digunakan telah dibahas. Untuk layanan mikro, penggunaan protokol sederhana seperti HTTP adalah hal yang umum. Pesan yang dipertukarkan di antara layanan dapat dienkodekan dengan cara yang berbeda-beda, misalnya format yang dapat dibaca manusia, seperti JSON atau YAML, atau format biner yang efisien, seperti Avro atau Protocol Buffers.

Caching

Cache adalah cara yang bagus untuk mengurangi latensi dan chattiness arsitektur layanan mikro. Beberapa lapisan caching dimungkinkan, bergantung pada kasus penggunaan sebenarnya dan bottleneck. Banyak aplikasi layanan mikro yang berjalan di AWS menggunakan ElastiCache untuk mengurangi volume panggilan ke layanan mikro lain dengan melakukan caching hasil secara lokal. API Gateway menyediakan lapisan caching bawaan untuk mengurangi beban pada server backend. Selain itu, caching juga berguna untuk mengurangi beban dari lapisan persistensi data. Tantangan untuk setiap mekanisme caching adalah menemukan keseimbangan yang tepat antara cache hit rate yang baik, serta ketepatan waktu dan konsistensi data.