Mikroserwisy to styl architektury oprogramowania, w którym aplikacja jest podzielona na wiele małych, niezależnych serwisów. Każdy mikroserwis odpowiada za określoną funkcjonalność i działa jako samodzielna jednostka, komunikując się z innymi serwisami za pomocą lekkich protokołów, najczęściej HTTP/REST lub komunikatów asynchronicznych.
Dlaczego Java?
Java jest jedną z najpopularniejszych technologii wykorzystywanych do tworzenia mikroserwisów ze względu na stabilność i dojrzałość. Java istnieje od ponad dwóch dekad i posiada bogaty ekosystem narzędzi. Są one wsparciem dla wielowątkowości i wysokiej wydajności. Java dostarcza bogate frameworki: Spring Boot, Micronaut, Quarkus czy Vert.x ułatwiają tworzenie mikroserwisów. Dodatkowo liczne biblioteki, dokumentacja oraz społeczność wspierają rozwój aplikacji.
Kluczowe frameworki Java dla mikroserwisów
Spring Boot
To najpopularniejszy framework do tworzenia mikroserwisów w Javie. Umożliwia szybkie tworzenie aplikacji dzięki automatycznej konfiguracji i wbudowanym serwerom aplikacyjnym. W połączeniu z Spring Cloud zapewnia narzędzia do zarządzania konfiguracją, rejestracji usług, równoważenia obciążenia i obsługi komunikacji między mikroserwisami.
Micronaut
Framework stworzony z myślą o niskim zużyciu pamięci i szybkim czasie startu — idealny do budowy lekkich mikroserwisów, które mogą działać w środowiskach chmurowych i kontenerowych.
Quarkus
Nowoczesny framework Java zoptymalizowany pod kątem środowisk kontenerowych i serverless. Charakteryzuje się szybkim startem i małym zużyciem pamięci, co sprawia, że idealnie nadaje się do mikroserwisów.
Vert.x
Asynchroniczny i reaktywny framework, który pozwala na tworzenie bardzo wydajnych, nieblokujących mikroserwisów.
Niżej przedstawiamy kilka prostych przykładów mikroserwisów w Javie z użyciem popularnego frameworka Spring Boot.
Minimalny mikroserwis REST w Spring Boot
Plik: pom.xml (fragment z zależnościami)
Plik: Application.java
Plik: GreetingController.java
Co się dzieje? Tworzymy prosty serwis HTTP, który na endpointzie /greeting zwraca tekst.
Prosty klient wywołujący inny mikroserwis
Załóżmy, że mamy drugi mikroserwis, który chce wywołać pierwszy.
Dodajemy zależność w pom.xml:
Plik: ServiceClient.java
Plik: ClientController.java
Co się dzieje?
ServiceClient to prosty klient HTTP, który asynchronicznie wywołuje inny mikroserwis pod adresem http://localhost:8080/greeting.
ClientController udostępnia endpoint /call-greeting, który zwraca wynik wywołania mikroserwisu.
Jak uruchomić?
1. Uruchom pierwszy mikroserwis (na porcie 8080).
2. Uruchom drugi mikroserwis (na innym porcie, np. 8081).
3. Odwiedź w przeglądarce lub użyj curl adres:
http://localhost:8080/greeting — otrzymasz komunikat z pierwszego mikroserwisu.
http://localhost:8081/call-greeting — drugi mikroserwis wywoła pierwszy i zwróci jego odpowiedź.