Design For Robust dalam Microservice

Design For Robust

yoo!!! kali ini kita akan BELAJAR BERSAMA mengenai Design For Robust dalam microservice, setelah mengetahui apa itu microservice, kita juga harus mengetahui hal lainnya yang diperlukan dalam membangun suatu microservice, salah satunya adalah Design For Robust, lalu  apa itu Design For Robust ???

Apa Itu Design For Robust???

Dalam mendesain suatu aplikasi haruslah robust maksudnya disini adalah aplikasi yang di desain harus bisa mengatasi jika nantinya terjadi kegagalan. Kegagalan disini lebih kepada kegagalan di dalam komunikasi antar client dan server. 

agar lebih mudah dipahami, silahkan perhatikan gambar berikut :


Seperti yang terlihat pada gambar di atas. Setiap microservice berkomunikasi dengan microservice lainnya. Jika salah satu microservice tidak dapat menerima request dari client dan client tersebut tidak dapat mengatasi masalah tersebut maka akan menyebabkan microservice tersebut stress karena mengirim request namun tidak di response oleh microservice tujuan dan karna microservice ini stress karna tidak mendapat response bisa menyebabkan microservice lainnya yang mengirim request ke microservice yang stress jadi stress jg dan begitu seterusnya. Oleh karena itu client harus bisa mengatasi hal ini sehingga kegagalan yang terjadi tidak menyebar ke microservice lainnya. Ada beberapa patern yang bisa di terapkan untuk mengatasi hal ini yaitu :
  1. Patern Retry
  2. Patern Ciruit Breaker
kedua patern tersebut banyak digunakan dalam menangani kegagalan request,

1. Patern Retry

Konsep dari patern retry cukup sederhana yaitu dengan mengirim ulang request yang sama seperti sebelumnya. Namun perlu di perhatikan bahwa dalam menggunakan patern retry harus ada delay yang di lakukan sebelum mengirim ulang request tersebut. Karna mungkin saja request gagal karna server sedang menangani banyak sekali request sehingga langsung mengirim request lagi bukan menyelesaikan masalah malah menambah beban si server. Untuk itu dalam menggunakan patern retry setidaknya harus memperhatikan 2 hal berikut yaitu berapa kali harus mengirim request dan interval waktu pengiriman dari request yang gagal dan selanjutnya harus lebih lama.
konsep Patern Retry


2. Patern Circuit Breaker

Patern dari circuit breaker memiliki cara yang sedikit berbeda dengan retry. Pada patern circuit breaker , client akan mencoba mengirim beberapa request yang berbeda kepada server. Ketika request-request tersebut gagal dalam satu waktu. Maka request selanjutnya tidak akan dikirim lagi dan langsung menganggap bahwa request tersebut juga akan gagal.
Konsep Patern Circuit Breaker
Patern circuit breaker merupakan sebuah state mechine yang memiliki 3 state berbeda yaitu closed, open dan half open. Pada saat state berada pada posisi closed maka client akan mengirimkan request seperti biasa dan jika request gagal maka perhitungan jumlah gagalnya akan bertambah. Jita request gagal sudah melebihi batas yang di tentukan selanjutnya state akan berubah menjadi open dimana pada kondisi ini client tidak akan mengirim request sama sekali hingga waktu yang di tentukan. Setelah itu state akan berubah ke state half open dimana jika request gagal maka state akan kembali ke dalam state open dan jika berhasil maka state akan kembali ke state closed dan mereset jumlah request yang gagal sebelumnya.


Cache


Salah satu penyebab gagalnya komunikasi antar microservice bisa di sebabkan oleh banyaknya request yang di kirim ke server tersebut sehingga membuat servernya stress dan akhirnya down. Salah satu cara untuk mengurangi banyaknya request ke server adalah dengan cara cache. Dengan menggunakan cache maka pada saat client melakukan request ke server, respon dari server akan di simpan di dalam cache client untuk beberapa waktu, sehingga jika client akan melakukan request yang sama maka client tidak perlu lagi melakukan request ke server cukup dengan mengambilnya dari cache. Dengan begitu client dapat mengurangi request agar server tidak stress.


Cahce



itulah ulasan mengenai design for robust yang bang madara dapat jelaskan

terimakasih telah mengunjungi blog BELAJAR BERSAMA, nantikan ulasan menarik lainnya


"MARI BELAJAR, BELAJAR BERSAMA!!!"


artikel terkait :




Comments

Popular posts from this blog

Tutorial Membuat Akun GitHub

Apa Itu Microservices ???

FLASH DEAL 12 RUPIAH BUKALAPAK REAL or HOAX