5 najczęstszych błędów, kiedy używasz Apache Kafka
Integracja aplikacji ze sobą za pomocą Apache Kafka jest stosunkowo łatwa. W tym zadaniu wspomagają nas biblioteki albo całe frameworki (takie jak Spring). Ponieważ to zadanie jest znacznie ułatwione, może to uśpić czujność programistów. Chciałbym zwrócić Twoją uwagę na to, żebyś poświęcił chwilę na analizę wymagań niefunkcjonalnych w swojej aplikacji, a także zapoznał się z domyślnymi ustawieniami Apache Kafka i bibliotek integrujących.
Dlaczego gettery i settery są niebezpieczne? Anemic Domain Model vs Rich Domain Model
Istnieje powód, dla którego korzystamy ze zmiennych prywatnych w naszych klasach. Nie chcemy ich udostępniać na zewnątrz i nie chcemy, aby ktoś na nich polegał. Uczono nas, że publiczne zmienne w klasie to zło. Dlaczego więc tak wielu programistów „automatycznie” dodaje gettery i settery do swoich modeli, sprawiając, że prywatne zmienne są widziane na zewnątrz? Nie raz pewnie widziałeś w kodzie adnotacje Lomboka @Setter, @Getter czy @Data nad większością klas. W dzisiejszym wpisie przyjrzymy się bardziej szczegółowo często pomijanej kwestii akcesorów, mutatorów, a następnie przejdziemy do omówienia Anemic Domain Model oraz Rich Domain Model.
Konsument wiadomości w Apache Kafka
Konsument Kafki jest używany do optymalnego odczytywania wiadomości z partycji topika, który subskrybuje. Główną rolą konsumenta jest wziąć połączenie do klastra Kafki oraz ustawienia konsumenta, aby połączyć się z brokerem i zacząć odczytywać wiadomości.
Apache Kafka – producent wiadomości
Apache Kafka to bardzo rozbudowany system umożliwiający dostosowanie się pod praktycznie każdą potrzebę biznesową. Jeśli chcemy wysokiej przepustowości i zezwalamy na utratę komunikatów (np. logi, metryki) – proszę bardzo – Kafka przygotowuje dla nas ustawienia producentów. Jeśli zależy nam na jak największej spójności danych (np. przelewy, geolokalizacja) – proszę bardzo mamy inne ustawienia. W dzisiejszym artykule na tapetę weźmiemy producenta w systemie Apache Kafka.