Мы создали решение для розничной торговли, в котором обработка сеанса осуществляется в сеансе Spring. Мы используем gemfire для поддержки объектов сеанса и используем клиент в качестве клиентского модуля данных gemfire для сеанса Spring.У нас были начальные подключения, и это было в конечном итоге и работает.Но когда нагрузка на контейнеры, в которых выросло приложение, вызывает серьезные проблемы с реакцией приложения. Время отклика увеличивается также настолько, что запросы не обрабатываются.
Мы проанализировали дампы потоков и увидели, чтомногие потоки, связанные с клиентом gemfire, находятся в заблокированном или ожидающем состоянии.Параметры jvm, загрузка ЦП и память кучи - все в порядке, даже с нагрузкой, которая вызывает проблему.
Из анализа дампа потока видно следующее:
Сервлет конфликта потоков- dispatcher: render заблокирован на org.apache.geode.cache.client.internal.ConnectionImpl@3afbbf9
Из клиентских журналов gemfire наблюдается следующее:
4 /30/19 12: 03: 21.559 PM [m [30m2019-04-30 12: 03: 21,559 [Тема обновления клиента кэша на XX.XX.XX.XX (XXXXX: 62475): 1024 порт 40404] ИНФОРМАЦИЯ: Конечная точка избыточной подпискиXXXXX: 40404 разбился.Планирование восстановления.Первый черный список регистрируется как: 30.04.19 12: 03: 21.631 PM [m [34m2019-04-30 12: 03: 21 630 [queueTimer-DEFAULT] ПРЕДУПРЕЖДЕНИЕ: поток обновления клиента кэширования в XX.XX.XX.XX(XXXXX: 76221): порт 1040 40404 (XXXXX: 40404): возникла следующая исключительная ситуация при попытке создать сокет связи сервера с клиентом, что приведет к выходу: org.apache.geode.cache.client.ServerRefusedConnectionException:: 40404 отказано в соединении: java.lang.Exception: этот клиент занесен в черный список сервером
После внесения в черный список этот экземпляр приложения становится мертвым во всех отношениях. Он не сможет обработать любой запрос.
Любая помощь очень ценится с точки зрения этого черного списка.