Migracja aplikacji monolit na aplikacje mikroserwis

0

Cześć,

Mam nadzieję że poprwany dział. Mam kilka watpliwosci i licze na Wasza pomoc. Jesli chodzi o architekture mikroserwisow jestem na wczesnym etapie pojmowania tego konceptu, wiec za wszelkie bledy, niescislowci itd. z gory przepraszam.

Od dlugiego czasu tworzylem sobie aplikacje webowa oparta o jave + spring, caly czas pakujac wszystko do jednego jara (uzywam spring boota). Jednym slowem jakakolwiek zmiana w aplikacja powodowala ze proces deploya na serwer wymagal budowania calej aplikacji. Dlatego chcialem zrobic maly refaktor i uzyc mikroserwisow, bo jak dobrze rozumiem jeda z zalet mikroserwisow jest podzielenie aplikacji na mniejsze i komunikacja miedzy nimi np. poprzez rabbita. Dzieki temu nie musimy ponownie przebudowywac calej aplikacji i jej deploywac, tylko zrobimy to z przerabianym fragmentem.

Moja aplikacja webowa ma kilka funkcjonalnosci ktore moglbym wydzielic do osobnych modulow, ale mam pewne watpliwosci jak to zrobic. Stad moje pytania:

  1. Mam modul ktory na podstawie podanych danych wykonuje jakies obliczenia i zwraca wyniki. Na ten moment jest mozliwosc obliczenia 7 roznych wskaznikow (w przylosci bedzie ich jeszcze wiecej) Aktualnie ta czesc mam wydzielona jako osobny modul mavenowy, ale nie do konca jestem pewien czy nie lepiej traktowac to jako osobna aplikacje ktora z glownym modulem bedzie sie komunikowac za pomoca rabbita. Co jest lepszym rozwiazaniem?

  2. Mam dwa moduly na ktorych bedzie dzialal springowy cron. Modul pierwszy co okreslony czas sprawdza kanal rss i jesli pojawilo sie cos nowego od ostatniego sprawdzania, pobiera dane i wysyla do glownego modulu za pomoca rabbita. Modul drugi w zasadzie bardzo podobny do pierwszego, ale pobiera dane z zewnetrznej strony internetowej i cron jest inaczej skonfigurowany. Teraz zastanawiam sie czy oba moduly powinienem zapakowac do jednej apki (moduly mavenowe) na zasadzie modul1 = rabbit i wysylanie na kolejki, modul2 = pierwszy cron, modul3 = drugi cron. Czyli w module1 mam skonfigurowane dwa crony, ktore wywoluja api modulu2/modulu3 i jak sie pojawia cos nowego to wysyla to na kolejke i glowna aplilacja odbiera dane.
    Czy jednak lepiej to rozdzielic na dwie calkiem osobne aplikacje?

0

Co chcesz osiągnąć ? Bo rozumiem, że przeszkadza Ci ze jak robisz zmiane to idzie redeploy wszystkiego? I w czym problem? Chodzi o to ze trzeba przesłać 10 mb na serwer czy o czas wstawania aplikacji? w czym konkretnie masz problem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1