Chciałbym móc uruchomić wiele instancji aplikacji. Musi ona raz na dobę pobrać pewien plik z zewnątrz. I teraz jak zaprojektować ten proces pobierania, aby np. 2 instancje nie pobierały tego samego pliku, A każda z instancji raz dziennie musi z tego pliku skorzystać.
Jak do tego podejść? Może są wypracowane jakieś praktyki dla takiego projektowania aplikacji?
Nie rozumiem. Wiele instancji pobiera pewien plik, ale żeby 2 instancje nie pobierały tego samego pliku?
lavoholic napisał(a):
Nie rozumiem. Wiele instancji pobiera pewien plik, ale żeby 2 instancje nie pobierały tego samego pliku?
Wiele instancji korzysta z tego pliku, więc wystarczy jak pobierze go jeden. Ale nie chcę by pobierały go wszystkie, tylko jeden.
Szukasz rozwiązania problemu Leader election: https://www.baeldung.com/apache-curator. Do synchronizacji możesz też wykorzystać bazę danych. Pytanie tylko, czy naprawdę potrzebujesz wielu instancji.
Nie do końca rozumiem jak to ma działać. Skoro tylko jedna instancja pobierze plik to jak inne będą mogły z niego korzystać? A jeśli ona ma go pobrać do jakiegoś "wspólnego obszaru" to może po prostu zrób osobną aplikacje która pobiera ten plik? ;]
Shalom napisał(a):
Nie do końca rozumiem jak to ma działać. Skoro tylko jedna instancja pobierze plik to jak inne będą mogły z niego korzystać? A jeśli ona ma go pobrać do jakiegoś "wspólnego obszaru" to może po prostu zrób osobną aplikacje która pobiera ten plik? ;]
Aplikacje mają mieć wspólny filesystem
To w takim razie nie widzę sensu kombinowania i wrzucania tej funkcjonalności do tychże aplikacji i potem bawienia się w elekcje lidera który będzie ściągać plik. Jaki z tego zysk?