JHipster dengan Senibina Perkhidmatan Mikro

1. Pengenalan

Dalam penulisan ini, kita akan meneroka contoh menarik dengan JHipster - membina seni bina perkhidmatan mikro yang ringkas. Kami akan menunjukkan cara membina dan menyebarkan semua bahagian yang diperlukan, dan pada akhirnya, kami akan mempunyai aplikasi perkhidmatan mikro yang lengkap dan berjalan.

Sekiranya anda baru menggunakan JHipster, sila baca artikel pengenalan kami sebelum meneruskan pemahaman yang baik mengenai asas alat penghasilan projek ini.

2. Monolitik vs Perkhidmatan Mikro

Dalam artikel awal kami, kami menggambarkan bagaimana membuat dan boot aplikasi monolitik yang mudah dikendalikan.

Sistem perkhidmatan mikro kami, di sisi lain, akan memisahkan front-end dari back-end yang, pada gilirannya, juga dapat dibagi menjadi beberapa aplikasi kecil, masing-masing berurusan dengan subset dari domain aplikasi penuh. Sememangnya, seperti semua implementasi layanan mikro, ini menyelesaikan beberapa masalah tetapi juga memperkenalkan beberapa kerumitan, seperti menangani pendaftaran komponen dan keselamatan.

JHipster akan menangani kebanyakan kesukaran untuk menguruskan aplikasi perkhidmatan mikro, dengan bantuan alat sumber terbuka moden seperti Netflix's Eureka Server dan Hashicorp's Consul.

Sudah tentu ada beberapa perkara yang perlu dipertimbangkan di sini, seperti seberapa besar atau rumitnya domain kita, betapa pentingnya aplikasi kita dan tahap ketersediaan apa yang kita mahukan, adakah kita akan menjadi tuan rumah perkhidmatan kami di pelayan dan lokasi yang berbeza , dan lain-lain Matlamat alat ini semestinya untuk permutasi ini mungkin dan mudah dikendalikan.

2.1. Komponen Perkhidmatan JHipster Mikro

Semasa mengerjakan senibina Microservice dengan JHipster, kita perlu membina dan menggunakan sekurang-kurangnya tiga projek yang berbeza: JHipster Registry, Microservice Gateway, dan sekurang-kurangnya satu Aplikasi Microservice.

JHipster Registry adalah bahagian penting dalam seni bina perkhidmatan mikro. Ia menghubungkan semua komponen lain dan membolehkan mereka berkomunikasi antara satu sama lain.

Aplikasi Microservice mengandungi kod back-end. Setelah dijalankan, API akan memaparkan domain yang berkaitan dengannya. Senibina Mikro Layanan mungkin terdiri dari banyak aplikasi layanan mikro, masing-masing berisi beberapa entiti dan peraturan perniagaan yang berkaitan.

Dan Gerbang Mikroservice mempunyai semua kod front-end (Angular) dan akan menggunakan API yang dibuat oleh seluruh kumpulan aplikasi perkhidmatan mikro:

3. Pemasangan

Untuk semua butiran mengenai proses pemasangan, lihat artikel pengenalan kami di JHipster.

4. Membuat Projek Mikro Perkhidmatan

Sekarang mari kita pasang tiga komponen teras projek perkhidmatan mikro kita.

4.1. Memasang JHipster Registry

Oleh kerana JHipster Registry adalah JHipster standard, jadi kami hanya perlu memuat turun dan menjalankannya. Tidak perlu mengubahnya:

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

Ini akan mengklon jhipster -registry projek daripada GitHub dan memulakan aplikasi. Setelah berjaya dimulakan, kita boleh melayari // localhost: 8761 / dan log masuk dengan admin pengguna dan admin kata laluan :

4.2. Memasang Aplikasi Mikroservice

Di sinilah kita mula membina ciri sebenar projek kita. Dalam contoh ini, kami akan membuat Aplikasi Mikroservice ringkas yang menguruskan kereta. Jadi pertama-tama kita akan membuat aplikasi, dan kemudian kita akan menambahkan entiti kepadanya:

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

Setelah wizard bermula, mari ikuti arahan untuk membuat aplikasi jenis Microservice bernama carapp . Beberapa parameter lain yang berkaitan adalah:

  • pelabuhan: 8081
  • pakej: com.car.app
  • pengesahan: JWT
  • penemuan perkhidmatan: JHipster Registry

Di bawah tangkapan skrin menunjukkan sekumpulan pilihan lengkap:

Sekarang kami akan menambahkan entiti kereta ke aplikasi kami:

# runs entity creation wizard yo jhipster:entity car

Wizard pembuatan entiti akan bermula. Kita harus mengikuti arahan untuk membuat entiti bernama kereta dengan tiga bidang: membuat , model , dan harga.

Setelah selesai, aplikasi Microservice pertama kami selesai. Sekiranya kita melihat kod yang dihasilkan, kita akan melihat bahawa tidak ada javascript, HTML, CSS atau kod front-end apa pun. Itu semua akan dihasilkan setelah Microservice Gateway dibuat. Juga, periksa fail README untuk maklumat penting mengenai projek dan arahan berguna.

Untuk menyelesaikannya, mari jalankan komponen kami yang baru dibuat:

./mvnw

Sebelum menjalankan perintah di atas, kita harus memastikan bahawa komponen registri jhipster aktif dan berjalan. Jika tidak, kami akan mendapat ralat.

Sekiranya semuanya berjalan mengikut rancangan, aplikasi kereta kami akan bermula, dan log pendaftaran jhipster akan memberitahu kami bahawa aplikasi itu berjaya didaftarkan:

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

4.3. Memasang Gerbang Mikroservice

Sekarang bahagian depan. Kami akan membuat Gerbang Mikroservice dan menunjukkan bahawa kami mempunyai entiti pada komponen yang ada yang kami mahu buat kod front-end:

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

Mari ikuti arahan untuk membuat aplikasi jenis gateway Microservice. Kami akan memberi nama pintu masuk aplikasi , dan memilih pilihan berikut untuk parameter lain:

  • pelabuhan: 8080
  • pakej: com.gateway
  • author: JWT
  • penemuan perkhidmatan: JHipster Registry

Berikut adalah ringkasan set parameter lengkap:

Mari beralih ke penciptaan entiti:

# Runs entity creation wizard yo jhipster:entity car

Apabila ditanya sama ada kami ingin menjana dari perkhidmatan mikro yang ada, pilih Ya , kemudian taipkan jalan relatif ke direktori root aplikasi kereta (mis .: ../car-app). Akhirnya, apabila ditanya sama ada kami ingin mengemas kini entiti, pilih Ya, buat semula entiti .

JHipster akan mencari fail Car.json yang merupakan sebahagian daripada Aplikasi Mikroservice yang telah kita buat sebelumnya dan akan menggunakan metadata yang terdapat dalam fail tersebut untuk membuat semua kod UI yang diperlukan untuk entiti tersebut:

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

Masa untuk menjalankan aplikasi gateway dan menguji jika semuanya berfungsi:

# Starts up the gateway-app component ./mvnw

Mari kita sekarang navigate untuk // localhost: 8080 / dan log masuk dengan pengguna admin dan kata laluan admin . Di menu atas, kita akan melihat item Car yang akan membawa kita ke halaman senarai kereta. Semua baik!

4.4. Membuat Aplikasi Mikro Perkhidmatan Kedua

Seterusnya, mari kita maju sistem kita selangkah lagi dan buat komponen kedua dari jenis Aplikasi Mikroservice . Komponen baru ini akan menguruskan peniaga kereta, jadi kami akan menambahkan entiti yang disebut peniaga itu.

Mari buat direktori baru, arahkan ke sana dan jalankan arahan yo jhipster :

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

Selepas itu, kami menaip dealerapp sebagai nama aplikasi dan memilih port 8082 untuk dijalankan (sangat penting bahawa ini adalah port yang berbeza daripada yang kami gunakan untuk pendaftaran jhipster- dan aplikasi kereta ).

Untuk parameter lain, kita boleh memilih pilihan yang kita mahukan. Ingat, ini adalah perkhidmatan mikro yang terpisah sehingga dapat menggunakan jenis pangkalan data, strategi cache, dan ujian yang berbeza daripada komponen aplikasi kereta .

Mari tambahkan beberapa bidang ke entiti peniaga kami . Contohnya nama dan alamat:

# Runs the create entity wizard yo jhipster:entity dealer

Kita tidak boleh lupa menavigasi ke aplikasi gateway dan menyuruhnya menghasilkan kod front-end untuk entiti peniaga :

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

Akhirnya, jalankan ./mvnw pada direktori root aplikasi peniaga untuk memulakan komponen tersebut.

Seterusnya, kami dapat mengunjungi aplikasi gerbang kami di // localhost: 8080 dan memuat semula halaman untuk melihat item menu yang baru dibuat untuk entiti Penjual.

Sebelum kita menyelesaikannya, mari kita lihat aplikasi pendaftaran jhipster sekali lagi di // localhost: 8761 /. Klik pada item menu Aplikasi untuk memastikan bahawa ketiga-tiga komponen kami berjaya dikenal pasti dan didaftarkan:

Itu sahaja! Kami telah mencipta seni bina canggih yang terdiri daripada satu aplikasi Gateway dengan semua kod front-end yang disokong oleh dua perkhidmatan mikro dalam beberapa minit sahaja.

5. Kesimpulan

Memulakan projek Senibina Mikro dengan JHipster cukup mudah; kita hanya perlu membuat sebanyak mungkin Aplikasi Microservice dan satu Gerbang Mikroservice dan kita sudah bersedia untuk pergi.

Anda boleh meneroka kerangka lebih lanjut di laman web rasmi JHipster.

Seperti biasa, pangkalan data untuk aplikasi kereta, aplikasi peniaga, dan aplikasi gerbang kami tersedia di GitHub.