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.