#27 Spring Boot – Consumer Driven Contract

Z każdym kolejny mikroserwisem testowanie naszej aplikacji staje się coraz bardziej trudne (w przypadku gdy są one ze sobą powiązane). Oczywiście możemy zamokować zachowanie innych serwisów korzystając na przykład z biblioteki WireMock, jednakże po wdrożeniu naszej aplikacji na produkcję okazuje się, że aplikacja nie integruje się poprawnie. A no właśnie, okazało się, iż mój serwis odpytywał zły endpoint, ale jak to możliwe, skoro wszystkie testy były uzależniająco zielone?

Czytaj dalej


#26 Spring Boot – Neo4j

W poprzednim wpisie pokazałam jak zainstalować Neo4j. Teraz możemy spróbować napisać prostą aplikację z użyciem Spring Boot’a, która wykorzystuje bazę grafową Neo4j.  Dzięki wykorzystaniu Spring Data otrzymujemy całą abstrakcję związaną z warstwą persystencji. Ponadto operacje CRUD’owe wywoływane są w taki sam sposób jak dla innych, znanych nam typów baz.

Czytaj dalej


#25 Spring Boot – Turbine – wspólny dashboard

W poprzednim wpisie pokazywałem jak wykorzystać Hystrix’a jako jeden ze sposób realizacji wzorca Circuit Breaker. Pojawił się także wpis dotyczący dashboard’u, na którym wyświetlane były informacje dla danego Circuit Breaker’a. Niestety wadą tego rozwiązania było to, iż mieliśmy jeden dashboard per aplikacja, więc jeśli chcielibyśmy sprawdzać stan kilku Circuit Breaker’ów musielibyśmy przełączać się pomiędzy dashboardami.

Czytaj dalej


#21 Spring Boot – integracja z RabbitMQ

W tym wpisie przedstawię wam jak zintegrować bezpośrednio naszą aplikację z RabbitMQ. Stosowanie kolejek w naszym ekosystemie ma wiele zalet. Dzięki zrównolegleniu pracy możemy w łatwy sposób skalować naszą aplikację. Jednocześnie wysyłając zadania na kolejkę powodujemy, iż nasz system staje się bardziej odporny, ponieważ zadania w pierwszej kolejności trafiają na kolejkę i zostaną z niej pobrane dopiero wtedy, gdy dostępni będą konsumenci tych wiadomości.

Czytaj dalej


#20 Spring Boot – szybki start z Dockerem

Jest to wpis dla osób, które chciałyby w szybki sposób uruchomić swoją aplikację Spring Boot’ową na Dockerze. Uruchamianie aplikacji na kontenerach ma wiele zalet, jedną z nich jest wspólne środowisko dla wszystkich developerów. Dzięki temu unikniemy “u mnie działa”. Jak uruchamiać aplikację na kontenerze? Odpowiedź we wpisie.

Czytaj dalej


#19 Spring Boot – Microservice Registration and Discovery – Eureka

Service Discovery jest kolejnym mechanizmem wykorzystywanym w środowisku cloudowym. Najpopularniejsze implementacje tego mechanizmu to między innymi: Consul, Zookeeper czy Eureka ze stajni Netflix. Spring Cloud wykorzystał implementacje firmy Netflix i stworzył swój wrapper, który w bardzo szybki i łatwy sposób pozwala integrować się z całym stosem Spring Cloud.

Czytaj dalej


#18 Spring Boot – TDDocumentation – Spring Rest Docs

Pamiętacie wpis o najlepszych praktykach REST’owych? Jedną z wyszczególnionych tam praktyk było dokumentowanie naszego API. Wymieniłem tam także kilka najpopularniejszych rozwiązań. Jedno z nich, czyli Swagger opisałem już na blogu w artykule #10 Spring Boot – Swagger2 – dokumentujemy API. Dziś czas na kolejne podejście do dokumentacji, tym razem od strony testów. Test Driven Documentation jest techniką,

Czytaj dalej


#17 Spring Boot – Distributed tracing – Zipkin i Sleuth

Każdy z nas, korzystając z architektury microserwisów posiada kilka usług które “rozmawiają” ze sobą. Jedna logiczna operacja, na przykład zakup czegoś w sklepie to tak na prawdę odwiedzenie kilku serwisów. Niestety podczas zakupu wystąpił błąd. Jak dowiedzieć się teraz w którym miejscu coś poszło nie tak? Można wchodzić po SSH na maszyny i robić grepa z tailem i szukać słówka Error ale jest to robota ręczna i męcząca.

Czytaj dalej