JHipster dengan Arsitektur Microservice

1. Perkenalan

Dalam artikel ini, kita akan menjelajahi contoh menarik dengan JHipster - membangun arsitektur layanan mikro sederhana. Kami akan menunjukkan cara membangun dan menerapkan semua bagian yang diperlukan, dan pada akhirnya, kami akan memiliki aplikasi layanan mikro yang lengkap dan berjalan.

Jika Anda baru mengenal JHipster, silakan periksa artikel pengantar kami sebelum melanjutkan untuk memiliki pemahaman yang baik tentang dasar-dasar alat pembuatan proyek ini.

2. Monolitik vs. Layanan Mikro

Di artikel awal kami, kami mengilustrasikan cara membuat dan mem-bootstrap aplikasi monolitik yang relatif mudah dipelihara.

Sistem layanan mikro kami, di sisi lain, akan memisahkan front-end dan back-end yang, pada gilirannya, juga dapat dibagi menjadi beberapa aplikasi kecil, masing-masing menangani subset dari domain aplikasi lengkap. Biasanya, seperti semua implementasi layanan mikro, ini memecahkan beberapa masalah tetapi juga menimbulkan beberapa kerumitan, seperti menangani registri komponen dan keamanan.

JHipster akan menangani sebagian besar kesulitan dalam mengelola aplikasi layanan mikro, dengan bantuan alat sumber terbuka modern seperti Server Eureka Netflix dan Konsul Hashicorp.

Tentu saja ada beberapa hal yang perlu dipertimbangkan di sini, seperti seberapa besar atau rumit domain kita, seberapa kritis aplikasi kita dan tingkat ketersediaan apa yang ingin kita miliki, apakah kita akan menghosting layanan kita di server dan lokasi yang berbeda , dll. Tujuan dari alat-alat ini tentu saja agar permutasi ini memungkinkan dan mudah dikelola.

2.1. Komponen Layanan Mikro JHipster

Saat mengerjakan arsitektur Microservice dengan JHipster, kita perlu membangun dan menerapkan setidaknya tiga proyek yang berbeda: JHipster Registry, Microservice Gateway, dan setidaknya satu Aplikasi Microservice.

Registri JHipster adalah bagian penting dari arsitektur layanan mikro. Itu mengikat semua komponen lainnya bersama-sama dan memungkinkan mereka untuk berkomunikasi satu sama lain.

Aplikasi Microservice berisi kode back-end. Setelah dijalankan, API untuk domain yang bersangkutan akan diekspos. Arsitektur Layanan Mikro dapat terdiri dari banyak aplikasi layanan mikro, masing-masing berisi beberapa entitas dan aturan bisnis terkait.

Dan Microservice Gateway memiliki semua kode front-end (Angular) dan akan menggunakan API yang dibuat oleh seluruh grup aplikasi layanan mikro:

3. Instalasi

Untuk semua detail tentang proses instalasi, periksa artikel pengantar kami di JHipster.

4. Membuat Proyek Microservice

Sekarang mari kita instal tiga komponen inti dari proyek layanan mikro kita.

4.1. Menginstal JHipster Registry

Karena JHipster Registry adalah JHipster standar, jadi kita hanya perlu mendownload dan menjalankannya. Tidak perlu mengubahnya:

git clone //github.com/jhipster/jhipster-registry cd jhipster-registry && ./mvnw

Ini akan mengkloning proyek jhipster -registry dari GitHub dan memulai aplikasi. Setelah berhasil dijalankan, kita dapat mengunjungi // localhost: 8761 / dan masuk dengan admin pengguna dan kata sandi admin :

4.2. Menginstal Aplikasi Microservice

Di sinilah kami mulai membangun fitur sebenarnya dari proyek kami. Dalam contoh ini, kita akan membuat Aplikasi Microservice sederhana yang mengatur mobil. Jadi pertama-tama kita akan membuat aplikasi, dan kemudian kita akan menambahkan entitas ke dalamnya:

# create a directory for the app and cd to it mkdir car-app && cd car-app # run the jhipster wizard yo jhipster

Setelah wizard dimulai, mari ikuti petunjuk untuk membuat aplikasi jenis Microservice bernama carapp . Beberapa parameter relevan lainnya adalah:

  • pelabuhan: 8081
  • paket: com.car.app
  • otentikasi: JWT
  • penemuan layanan: JHipster Registry

Tangkapan layar di bawah ini menunjukkan serangkaian opsi lengkap:

Sekarang kami akan menambahkan entitas mobil ke aplikasi kami:

# runs entity creation wizard yo jhipster:entity car

Wisaya pembuatan entitas akan dimulai. Kita harus mengikuti petunjuk untuk membuat sebuah entitas bernama mobil dengan tiga bidang: make , Model , dan harga.

Setelah selesai, aplikasi Microservice pertama kita selesai. Jika kita melihat kode yang dihasilkan, kita akan melihat bahwa tidak ada javascript, HTML, CSS atau kode front-end. Itu semua akan diproduksi setelah Microservice Gateway dibuat. Juga, periksa file README untuk informasi penting tentang proyek dan perintah yang berguna.

Untuk menyelesaikannya, mari kita jalankan komponen yang baru kita buat:

./mvnw

Sebelum menjalankan perintah di atas, kita harus memastikan bahwa komponen jhipster-registry sudah aktif dan berjalan. Jika tidak, kami akan mendapatkan error.

Jika semuanya berjalan sesuai rencana, aplikasi mobil kami akan dimulai, dan log jhipster-registry akan memberi tahu kami bahwa aplikasi tersebut berhasil didaftarkan:

Registered instance CARAPP/carapp:746e7525dffa737747dcdcee55ab43f8 with status UP (replication=true)

4.3. Memasang Gateway Microservice

Sekarang bagian depan. Kami akan membuat Microservice Gateway dan menunjukkan kepadanya bahwa kami memiliki entitas pada komponen yang ada yang ingin kami buat kode front-endnya:

# Create a directory for our gateway app mkdir gateway-app && cd gateway-app # Runs the JHipster wizard yo jhipster

Mari ikuti petunjuk untuk membuat aplikasi tipe Microservice gateway. Kami akan memberi nama gateway aplikasi , dan memilih opsi berikut untuk parameter lainnya:

  • pelabuhan: 8080
  • paket: com.gateway
  • auth: JWT
  • penemuan layanan: JHipster Registry

Berikut adalah ringkasan dari set parameter lengkap:

Mari beralih ke pembuatan entitas:

# Runs entity creation wizard yo jhipster:entity car

Saat ditanya apakah kami ingin membuat dari layanan mikro yang ada, pilih Ya , lalu ketik jalur relatif ke direktori root aplikasi mobil (mis .: ../car-app). Terakhir, ketika ditanya apakah kita ingin memperbarui entitas, pilih Ya, buat ulang entitas .

JHipster akan menemukan file Car.json yang merupakan bagian dari Aplikasi Microservice yang ada yang telah kita buat sebelumnya dan akan menggunakan metadata yang terdapat dalam file itu untuk membuat semua kode UI yang diperlukan untuk entitas itu:

Found the .jhipster/Car.json configuration file, entity can be automatically generated!

Saatnya menjalankan aplikasi gateway dan menguji apakah semuanya berfungsi:

# Starts up the gateway-app component ./mvnw

Sekarang mari menuju ke // localhost: 8080 / dan masuk dengan admin pengguna dan kata sandi admin . Di menu atas, kita akan melihat item Mobil yang akan membawa kita ke halaman daftar mobil. Semuanya bagus!

4.4. Membuat Aplikasi Microservice Kedua

Selanjutnya, mari kita selangkah lebih maju sistem kita dan membuat komponen kedua dari jenis Aplikasi Layanan Mikro . Komponen baru ini akan mengatur dealer mobil, jadi kami akan menambahkan entitas yang disebut dealer ke dalamnya.

Mari buat direktori baru, navigasikan ke sana dan jalankan perintah yo jhipster :

mkdir dealer-app && cd dealer-app yo jhipster

Setelah itu, kita ketik dealerapp sebagai nama aplikasi dan memilih port 8082 untuk menjalankannya (sangat penting bahwa ini adalah port yang berbeda dari yang kita gunakan untuk jhipster- registry dan car-app ).

Untuk parameter lainnya, kita dapat memilih opsi yang kita inginkan. Ingat ini adalah layanan mikro terpisah sehingga dapat menggunakan jenis database, strategi cache, dan pengujian yang berbeda dari komponen aplikasi mobil .

Mari tambahkan beberapa bidang ke entitas dealer kita . Misalnya nama dan alamat:

# Runs the create entity wizard yo jhipster:entity dealer

Kita tidak boleh lupa untuk menavigasi ke aplikasi gateway dan memintanya untuk menghasilkan kode front-end untuk entitas dealer :

# Navigate to the gateway-app root directory cd ../gateway-app # Runs the create entity wizard yo jhipster:entity dealer

Terakhir, jalankan ./mvnw pada direktori root dealer-app untuk memulai komponen itu.

Selanjutnya, kita dapat mengunjungi aplikasi gateway di // localhost: 8080 dan menyegarkan halaman untuk melihat item menu yang baru dibuat untuk entitas Dealer.

Sebelum kita menyelesaikannya, mari kita lihat aplikasi jhipster-registry lagi di // localhost: 8761 /. Klik pada item menu Aplikasi untuk memeriksa bahwa ketiga komponen kami berhasil diidentifikasi dan didaftarkan:

Itu dia! Kami telah membuat arsitektur canggih yang terdiri dari satu aplikasi Gateway dengan semua kode front-end yang didukung oleh dua layanan mikro hanya dalam beberapa menit.

5. Kesimpulan

Memulai proyek Arsitektur Microservice dengan JHipster cukup mudah; kita hanya perlu membuat Aplikasi Microservice sebanyak yang kita butuhkan dan satu Microservice Gateway dan kita siap melakukannya.

Anda dapat menjelajahi kerangka kerja lebih jauh di situs web resmi JHipster.

Seperti biasa, basis kode untuk aplikasi mobil, aplikasi dealer, dan aplikasi gateway kami tersedia di GitHub.