Разработка облачной системы с учетом масштабируемости, означающей, что система состоит из служб на основе REST по функциональным границам (usermgmt, ordermgmt, customermgt и т.д.), каждая из которых имеет свою собственную базовую базу данных и в зависимости от нагрузки, ее предположительно, что мы можем разворачивает несколько экземпляров, например, службу ordermgmt. Когда служба ordermgmt обрабатывает запрос на добавление заказа (от имени "клиента" ), он делает запрос REST службе customermgmt для проверки клиента и т.д.
Поскольку пользовательский объект не будет меняться очень часто, мне интересно, подходит ли что-то вроде ZooKeeper для кэширования экземпляра конкретного клиента, чтобы несколько экземпляров службы customermgmt могли допросить, прежде чем попасть в базу данных. Я просмотрел различные списки Zookeeper, но не вижу, чтобы кто-то использовал его для кэширования объектов. Кажется, что рекомендуемый размер znode байтов составляет приблизительно 1K, что делает его непригодным для хранения обезвоженного объекта. Также нет поддержки для GC или LRU из коробки, поэтому мне нужно будет добавить это также.
Если не Zookeeper, более подходящие предложения? Мы используем Hibernate как ORM, но у нас нет большого опыта работы с ним, и хотя он поддерживает кеши первого и второго уровней, я не уверен, что они работают распределенным/реплицированным способом в нескольких экземплярах службы.
Спасибо Скотт