JHipster s architektúrou mikroslužieb

1. Úvod

V tomto zápise preskúmame zaujímavý príklad s JHipster - vytvorenie jednoduchej architektúry mikroslužieb. Ukážeme si, ako zostaviť a nasadiť všetky požadované časti, a nakoniec budeme mať kompletne spustenú aplikáciu mikroslužieb.

Ak ste v JHipsteri nováčikom, prečítajte si najskôr náš úvodný článok, aby ste dobre porozumeli základom tohto nástroja na generovanie projektu.

2. Monolitické vs. mikroslužby

V našom úvodnom článku sme si ukázali, ako vytvoriť a zaviesť monolitickú aplikáciu, ktorá sa relatívne ľahko udržiava.

Náš systém mikroslužieb na druhej strane oddeľuje front-end a back-end, ktorý je zase možné rozdeliť na niekoľko malých aplikácií, pričom každá sa zaoberá podmnožinou celej aplikačnej domény. Prirodzene, rovnako ako pri všetkých implementáciách mikroslužieb, sa tým riešia niektoré problémy, ale tiež sa zavádza určitá zložitosť, napríklad riešenie problémov s registrom komponentov a zabezpečením.

JHipster sa postará o väčšinu ťažkostí so správou mikroslužobných aplikácií pomocou moderných nástrojov s otvoreným zdrojovým kódom, ako je server Eureka spoločnosti Netflix a konzul Hashicorp.

Tu je samozrejme potrebné vziať do úvahy niekoľko vecí, napríklad to, aká veľká alebo zložitá je naša doména, aká dôležitá je naša aplikácia a aké úrovne dostupnosti chceme mať, či budeme hostovať naše služby na rôznych serveroch a umiestneniach. Cieľom týchto nástrojov je samozrejme možné a ľahko spravovateľné tieto permutácie.

2.1. Súčasti mikroslužby JHipster

Pri práci na architektúre Microservice s JHipster budeme musieť vytvoriť a nasadiť najmenej tri rôzne projekty: register JHipster, bránu Microservice Gateway a aspoň jednu aplikáciu Microservice.

Register JHipster je nevyhnutnou súčasťou architektúry mikroslužieb. Spája všetky ostatné komponenty a umožňuje im vzájomnú komunikáciu.

Aplikácia mikroslužieb obsahuje back-endový kód. Po spustení vystaví API pre doménu, ktorej sa týka. Architektúra mikroslužieb sa môže skladať z mnohých aplikácií mikroslužieb, z ktorých každá obsahuje niekoľko súvisiacich entít a obchodných pravidiel.

A brána mikroslužieb má celý front-endový (uhlový) kód a bude využívať API vytvorené celou skupinou aplikácií mikroslužieb:

3. Inštalácia

Všetky podrobnosti o procese inštalácie nájdete v našom úvodnom článku o JHipster.

4. Vytvorenie projektu mikroslužieb

Teraz poďme nainštalovať tri základné komponenty nášho projektu mikroslužieb.

4.1. Inštalácia registra JHipster

Pretože register JHipster je štandardný JHipster, stačí si ho stiahnuť a spustiť. Nie je potrebné ho upravovať:

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

Týmto sa naklonuje jhipster-registra projekt z GitHubu a spustite aplikáciu. Po úspešnom spustení môžeme navštíviť // localhost: 8761 / a prihlásiť sa pomocou používateľa admin a heslo admin:

4.2. Inštalácia aplikácie mikroslužieb

Tu začíname budovať skutočné vlastnosti nášho projektu. V tomto príklade vytvoríme jednoduchú aplikáciu Microservice, ktorá spravuje automobily. Najprv teda vytvoríme aplikáciu a potom do nej pridáme entitu:

# vytvorte adresár pre aplikáciu a cd k nej mkdir car-app && cd car-app # spustite sprievodcu jhipster yo jhipster

Po spustení sprievodcu postupujte podľa pokynov na vytvorenie aplikácie typu Microservice s názvom carapp. Niektoré ďalšie príslušné parametre sú:

  • port: 8081
  • balenie: com.car.app
  • autentifikácia: JWT
  • objav služby: JHipster Registry

Screenshot nižšie zobrazuje kompletnú sadu možností:

Teraz pridáme a auto subjekt našej aplikácie:

# spustí sprievodcu vytvorením entity yo jhipster: entita auto

Spustí sa sprievodca vytvorením entity. Podľa pokynov by sme mali vytvoriť entitu s názvom auto s tromi poľami: urobiť, Modela cena.

Po dokončení je naša prvá aplikácia Microservice hotová. Ak sa pozrieme na vygenerovaný kód, všimneme si, že neexistuje žiadny javascript, HTML, CSS ani žiadny front-endový kód. Všetky budú vyrobené po vytvorení brány mikroslužieb. Skontrolujte tiež súbor README, kde nájdete dôležité informácie o projekte a užitočné príkazy.

Na záver spustíme našu novovytvorenú súčasť:

./mvnw

Pred spustením vyššie uvedeného príkazu by sme sa mali ubezpečiť, že jhipster-register komponent je funkčný. V opačnom prípade sa zobrazí chyba.

Keby šlo všetko podľa plánu, naše auto-app by sa začalo a jhipster-register denník nám oznámi, že aplikácia bola úspešne zaregistrovaná:

Zaregistrovaná inštancia CARAPP / carapp: 746e7525dffa737747dcdcee55ab43f8 so stavom UP (replikácia = true)

4.3. Inštalácia brány mikroslužieb

Teraz predný bit. Vytvoríme bránu Microservice a naznačíme jej, že máme entitu na existujúcom komponente, pre ktorý chceme vytvoriť front-end kód:

# Vytvorte adresár pre našu aplikáciu brány mkdir gateway-app && cd gateway-app # Spustí sprievodcu JHipster yo jhipster

Podľa pokynov vytvoríme aplikáciu typu Microservice gateway. Pomenujeme aplikáciu bránaa pre nasledujúce parametre vyberte nasledujúce možnosti:

  • port: 8080
  • balenie: com.gateway
  • autor: JWT
  • objav služby: JHipster Registry

Tu je súhrn úplnej sady parametrov:

Prejdime k vytvoreniu entity:

# Spustí sprievodcu vytváraním entít, jhipster: entita auto

Na otázku, či chceme generovať z existujúcej mikroslužby, zvoľte Áno, potom zadajte relatívnu cestu k auto-app koreňový adresár (napr. ../car-app). Nakoniec na otázku, či chceme entitu aktualizovať, zvoľte Áno, regenerujte entitu.

JHipster nájde Car.json súbor, ktorý je súčasťou existujúcej aplikácie Microservice, ktorú sme vytvorili skôr, a použije metadáta obsiahnuté v tomto súbore na vytvorenie všetkých potrebných kódov používateľského rozhrania pre túto entitu:

Nájdený konfiguračný súbor .jhipster / Car.json, entitu je možné automaticky generovať!

Čas spustiť brána-aplikácia a vyskúšajte, či všetko funguje:

# Spustí komponent brány a aplikácie ./mvnw

Poďme teraz prejsť na // localhost: 8080 / a prihlásiť sa pomocou používateľa admin a heslo admin. V hornom menu by sa mala zobraziť položka Auto tým sa dostaneme na stránku so zoznamom automobilov. Všetko dobré!

4.4. Vytvorenie druhej aplikácie pre mikroslužby

Ďalej posuňme náš systém o krok ďalej a vytvorte druhý komponent typu Microservice Application. Táto nová súčasť bude spravovať predajcov automobilov, takže pridáme entitu s názvom predajca k tomu.

Vytvorme nový adresár, prejdite naň a spustime jo jhipster príkaz:

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

Potom zadáme dealerapp ako názov aplikácie a zvoľte port 8082 aby fungoval (je kritické, že toto je iný port ako tie, ktoré používame pre jhipster-registratúra a auto-app).

Pre ďalšie parametre môžeme zvoliť ľubovoľnú možnosť, ktorú chceme. Pamätajte, že toto je samostatná mikroslužba, aby mohla používať rôzne typy databáz, stratégiu vyrovnávacej pamäte a testy ako auto-app zložka.

Pridajme pár polí k nášmu predajca subjekt. Napríklad názov a adresa:

# Spustí sprievodcu vytvorením entity yo jhipster: dealer dealer

Nemali by sme zabudnúť navigovať do brána-aplikácia a povedzte mu, aby vygeneroval front-endový kód pre predajca subjekt:

# Prejdite na koreňový adresár brány-aplikácie cd ../gateway-app # Spustí sprievodcu vytvorením entity yhipper: dealer dealer

Nakoniec bežte ./mvnw na obchodná aplikácia koreňový adresár na spustenie tejto súčasti.

Ďalej môžeme navštíviť našu aplikáciu brány na adrese // localhost: 8080 a obnoviť stránku, aby sa zobrazila novo vytvorená položka ponuky pre entitu Dealer.

Predtým, ako sa zabalíme, sa pozrime na jhipster-register aplikácia opäť na // localhost: 8761 /. Kliknutím na položku ponuky Aplikácie skontrolujete, či boli všetky naše tri komponenty úspešne identifikované a zaregistrované:

To je všetko! Za pár minút sme vytvorili sofistikovanú architektúru zloženú z jednej aplikácie Gateway so všetkým front-endovým kódom podporeným dvoma mikroslužbami.

5. Záver

Spustenie projektu Microservice Architecture s JHipster je celkom ľahké; stačí vytvoriť toľko aplikácií Microservice, koľko potrebujeme, a jednu bránu Microservice Gateway a sme pripravení vyraziť.

Rámec môžete ďalej preskúmať na oficiálnych webových stránkach JHipster.

Ako vždy, základ kódu pre našu aplikáciu pre auto, aplikáciu pre predajcu a aplikáciu pre bránu je k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found