Общая память java в конфигурации кластера - PullRequest
0 голосов
/ 25 января 2020

Моя система - чат-бот, интегрированный с мессенджером, я буду обновляться до кластера вместо одной машины, поэтому я столкнусь с проблемой: когда пользователь начнет разговор, в памяти машины будет создана запись, все дальнейшие сообщения необходимо переслать на той же машине, потому что память не распределяется между машиной s. Я могу создать базу данных для совместного использования между компьютерами, но это решение неприемлемо из-за производительности. Любые рекомендации касаемо? Я использую IBM WebSphere сервер. У меня вопрос, могу ли я сделать общую память между машинами?

1 Ответ

0 голосов
/ 25 января 2020

В качестве опции общей памяти исполнителя вы можете использовать Redis / Memcache. Может быть задержка в сети немного. Однако, если соединение вашего сервера с Redis является постоянным , эта задержка в сети может быть незначительной .

Если вы все равно хотите сохранить данные в локальной памяти сервера вместе с состояние общей памяти, вы можете go для Redis с Pub-Sub , поэтому в этом параметре каждый экземпляр на сервере будет хранить данные локально, а также будет publi sh это для общего Redis сервера. Все экземпляры сервера также будут подписаны на требуемые каналы на Redis, чтобы они могли синхронизировать данные c с другими серверами в режиме реального времени. Таким образом, вам не придется ставить под угрозу производительность, а также следить за тем, чтобы каждый экземпляр сервера обновлял данные почти в реальном времени .

...