Saturday, December 16, 2017

Introduction to Eureka Service Registry and Discovery


Apa itu Eureka? Eureka merupakan Netflix Service registration and Discovery Server and Client.
Salah satu contoh fungsi dari Eureka pada Service registration and Discovery adalah untuk memudahkan pengalamatan suatu service/microservice (atau lebih dikenal dengan individual Microservices addresses). Untuk Eureka sendiri akan terbagi kedalam dua bagian, yaitu Eureka server dan Eureka client.
Eureka server akan berfungsi untuk mememelihara (maintain) registry dari semua service/microservice yang telah di deploy/remove. Sedangkan Eureka client (service/microservices) dapat mendaftarkan (register) diri sendiri ke eureka server dan juga dapat men-discover service/microservices lain yang terdaftar pada eureka server. Ketika sebuah service/microservice mendaftarkan diri ke eureka server dengan melakukan beberapa konfigurasi pada satu file (application.yml) dan menambahkan sebuah anotasi "@EnableEurekaClient" pada main class maka maka si service/microservice akan memberikan /menyediakan metadata seperti host, port, dan health indicator sehingga bisa di execute/ discover oleh service/microservice lain.
Baiklah kita langsung saja masuk ke tutorial :

1.   Scenario :
  • Terdapat eureka server yang akan menyediakan/memberikan service registry dan service discovery.
  • Terdapat service karyawan yang berisi beberapa data terkait karyawan dan pastinya akan menjadi client service eureka, dimana service ini akan melakukan registry dirisendiri ke eureka service registry server.
  • Terdapat service perusahaan yang hamper sama dengan service karyawan, namun disini kita akan meng-invoke service karyawan dan proses interaksi dengan service karyawan tidak lagi menggunakan absolute URl.
     2.  Create Eureka Server
  • Untuk memudahkan pembuatan spring boot project kita bisa membuka link https://start.spring.io/ dan membuat project secara online. Lalu bisa kita generate projectnya dengan penambahan beberapa dependencies yaitu eurekaserver dan actuator, kemudian unzip project, selanjutnya tinggal kita buka/import di IDE kita. Isi beberapa kolom menyesuaikan dengan gambar di bawah ini : 
  • Buka eureka server application yang baru saja kita import, kemudian pada main class yang sudah ter-create tambahkan anotasi @EnableEurekaServer. Seperti gambar di bawah ini : 
  • Kita akan melakukan beberapa konfigurasi untuk eureka server. Tambahkan sebuah file application.yml pada folder Resources dan copy paste sources dibawah ini :
  • Dan satu file bootstrap.yml pada Folder Resources juga, kemudian copy paste source dibawah ini :
  • Run Application anda dan pada Web browser anda buka host http://localhost:9000. Maka akan muncul tampilan seperti gambar di bawah ini : 
  • Kita dapat melihat bahwa pada table Application kita belum memiliki service yang terdaftar karena kita memang memiliki eureka client service/microservice.

     3.  Membuat service karyawan
  • Buka kembali link https://start.spring.io/ dan membuat project secara online. Lalu bisa kita generate projectnya dengan penambahan beberapa dependencies dependencies yaitu Eureka Discovery, Web, Rest Repository dan actuator, kemudian unzip project, selanjutnya tinggal kita buka/import di IDE kita. Isi beberapa kolom menyesuaikan dengan gambar di bawah ini : 
  • Buka eureka server application yang baru saja kita import, kemudian pada main class yang sudah ter-create tambahkan anotasi @EnableEurekaClient. Seperti gambar di bawah ini : 
  • Kita akan melakukan beberapa konfigurasi untuk eureka client service karywan. Tambahkan sebuah file application.yml pada folder Resources dan copy paste sources dibawah ini :
  • Tambahkan sebuah file controller untuk REST data pada Folder yang sama dengan main class, copy paste source berikut :
  • Tambahakan sebuah file POJO untuk file Controller diatas, copy paste source berikut :
  • Run kembali eureka server dan karyawan service anda, perhatikan pada gambar perubahan yang terjadi. Pada Application table sudah ada satu service/microservice yang ter-registry.
  • Dan kemudian klik link application yang sudah terdaftar dan kemudian ubah urlnya sesuai url yang terdaftar di Rest Controller anda. Berikut adalah hasil run microservice : 
     4.  Membuat service perusahaan
  • Buka kembali link https://start.spring.io/ dan membuat project secara online. Lalu bisa kita generate projectnya dengan penambahan beberapa dependencies dependencies yaitu Eureka Discovery, Web, Rest Repository dan actuator, kemudian unzip project, selanjutnya tinggal kita buka/import di IDE kita. Isi beberapa kolom menyesuaikan dengan gambar di bawah ini : 
  • Buka eureka server application yang baru saja kita import, kemudian pada main class yang sudah ter-create tambahkan anotasi @EnableEurekaClient. Seperti gambar di bawah ini : 
  • Kita akan melakukan beberapa konfigurasi untuk eureka client service karywan. Tambahkan sebuah file application.yml pada folder Resources dan copy paste sources dibawah ini :
  • Tambahkan sebuah file controller untuk REST data pada Folder yang sama dengan main class, copy paste source berikut :
  • Run kembali eureka server karyawan service dan perusahaan service anda, perhatikan pada gambar perubahan yang terjadi pada dashboard eureka server. Pada Application table sudah ada dua service/microservice yang ter-registry
  • Jalankan masing-masing service dan lihat hasilnya. 
    Perusahaan Service
    Karyawan service





      References :

No comments:

Post a Comment