Я работаю над архитектурой приложения, которая состоит из нескольких док-контейнеров, которые взаимодействуют через брокера kafka.Конечно, самым узким местом является СУБД - PostgreSQL.
Одним из самых сумасшедших решений было развертывание выделенного read-only postgres node
для каждого контейнера, чтобы каждый контейнер мог получить доступ к необходимым данным из одной физической оперативной памяти.В этом случае мы будем полагаться на производительность механизма репликации postgres для read operations
и выполнять write operations
для главного узла.
Другое решение заключается в использовании более распространенного подхода - распределенного кэша, например Ignite
или Hazelcast
.То же самое - каждый контейнер будет иметь cache node
, который будет write-through-cache
и будет читать данные соответственно.
Не можете найти какие-либо реальные сравнения или достойные статьи, поэтому спрашивайте здесь -Каковы плюсы и минусы двух вышеупомянутых решений с точки зрения целостности данных и производительности?