Powiadamianie o zmianach postgres w aplikacji java

Problem

Budujębaza danych postgres za kilkaset tysięcy produktów. będęustaw indeks (Solr lub może ElasticSearch) poprawić czasy zapytań dla złożonych zapytań.

Chodzi teraz o to, jak pozwolić indeksowi zsynchronizować się z bazą danych?

W przeszłościMiałem rodzaj aplikacji, która okresowo odpytywała bazę danych, aby sprawdzić dostępność aktualizacji to powinno być zrobione, ale miałbymnieaktualny czas stanu indeksu (z aktualizacji bazy danych do ściągania aktualizacji indeksu).

Wolałbym rozwiązanie, w którym baza danych powiadomiłaby moją aplikację (aplikacja java), że coś zostało zmienione w bazie danych iw tym momencie aplikacja zdecyduje, czy indeks musi zostać zaktualizowany, czy nie. Aby być bardziej dokładnym, zbudowałbym rodzaj struktury producenta i konsumenta, który chciałby, aby replika otrzymywała powiadomienia z postgres, że coś się zmieniło, jeśli jest to istotne dla danych indeksowanych, które są przechowywane w stosie aktualizacji do zrobienia. Konsument konsumowałby ten stos i budował dokumenty do zapisania w indeksie.

Możliwe rozwiązania

Jednym z rozwiązań byłoby napisanie pewnego rodzaju punktu końcowego repliki w którym aplikacja zachowuje się jak instancja postgres, która jest używana do replikacji danych z oryginalnej bazy danych. Czy ktoś ma jakieś doświadczenie z tym podejściem?

Jakie mam inne rozwiązanie tego problemu?

questionAnswers(3)

yourAnswerToTheQuestion