Dla ludzi, którzy dzielą monolityczne aplikacje na mikroserwisy, radzicie sobie z problemem rozdzielania bazy danych. Typowe aplikacje, nad którymi pracowałem, powodują dużą integrację bazy danych ze względu na wydajność i prostotę.Mikrousługi i baza danych łączy
Jeśli masz dwie tabele, które są logicznie różne (ograniczone konteksty, jeśli chcesz), ale często przetwarzasz dane zbiorcze na dużych woluminach tych danych, to w monolicie możesz uniknąć orientacji obiektowej i zamiast tego używanie standardowej funkcji JOIN bazy danych do przetwarzania danych w bazie danych przed zwróceniem zagregowanego widoku z powrotem do warstwy aplikacji.
Jak uzasadnić podział takich danych na mikroserwisy, w których prawdopodobnie będzie wymagane "dołączenie" danych za pośrednictwem interfejsu API, a nie bazy danych.
Przeczytałem książkę Microservices Sama Newmana, aw rozdziale poświęconym podziałowi monolitu podaje on przykład "łamania relacji z kluczowymi kluczami", w którym przyznaje, że robienie połączenia przez API będzie wolniejsze - ale on idzie powiedzieć, czy twoja aplikacja jest wystarczająco szybka, czy ma to znaczenie, że jest wolniejsza niż wcześniej?
Wydaje się to trochę dziwne? Jakie są doświadczenia ludzi? Jakich technik używałeś, aby połączenia API działały w akceptowalny sposób?
Dobre pytanie, doświadczam tego samego problemu i skończyło się, że miałem zmaterializowany widok i robiłem połączenia w tej sprawie. Nie podoba mi się to, ale myślę, że to będzie wyzwanie dla Micro Services. Nie ma właściwego sposobu, aby to zrobić, to tylko wybór projektu do zrobienia. Wiem, że wiele osób twierdzi, że możemy mieć zmaterializowany widok, ale zagregowane odpowiedzi stają się problemem. Daj mi znać, jeśli znajdziesz coś lepszego. – PavanSandeep