Mireczki potrzebuję się poradzić w temacie CI/CD.
Na openshifcie (z helmem) mam postawioną kafkę z zookeeperem (obrazy od bitnami).
Prosta konfiguracja, dwa topici, po jednym podzie (replicaset na 1)
Problem w tym, że zookeeper często pada (przynajmniej raz na dobę) w efekcie czego serwisy które wysyłają/odbierają wiadomości z kafki nie pracują poprawnie bo kafka nie odbiera/wysyła.
Na openshifcie (z helmem) mam postawioną kafkę z zookeeperem (obrazy od bitnami).
Prosta konfiguracja, dwa topici, po jednym podzie (replicaset na 1)
Problem w tym, że zookeeper często pada (przynajmniej raz na dobę) w efekcie czego serwisy które wysyłają/odbierają wiadomości z kafki nie pracują poprawnie bo kafka nie odbiera/wysyła.





Mam do napisania mikroserwis wysyłający maile, działający na kubernetesie (możliwe, że podów kiedyś będzie więcej niż 1).
Koncepcję mam taką by:
1) Utworzyć serwis zapisujący do np. jakiegoś mongo meile do wysłania (wysyłane do aplikacji po http lub kafką?)
Czyli:
- na endpoincie przyjąć wiadomość, zwalidować, zapisać do np. mongo
- w jakimś jobie pobierać z mongo do zwykłej kolejki te wiadomości i próbować wysłać (i to wszystko w osobnym wątku?)
Na chwilę obecną mam udostępniony endpoint dodający wiadomości do kolejki na RabbitMQ.
Stworzyłem springowego joba z parametrem fixedDelay=1000 który docelowo ma te wiadomości wysyłać.
Ale z uwagi na to, że wysyłka wiadomości email może zająć n sekund nie chciałbym blokować aplikacji w tym czasie.
Nasuwa się myśl by tego joba uruchamiać w osobnym, dedykowanym wątku (tylko w jaki sposób?) lub użyć (też jeszcze nie doszukałem się dokładnie w jaki