Я уже написал одно веб-приложение с использованием java, spring и tomcat8 в качестве сервера, и теперь я хочу написать другое, но это нужно для взаимодействия с предыдущим. Он должен делиться некоторыми данными из базы данных и сеанса (я имею в виду, если войти в систему в одном приложении, ему не нужно входить в другое приложение). Каков наилучший способ реализации этого?Два webapps, которые делят данные и сеанс
ответ
Существует несколько способов решить эту проблему. Tomcat поддерживает кластеризацию: https://tomcat.apache.org/tomcat-9.0-doc/cluster-howto.html Но, как уже писал Димитрисли, это может быть самым простым решением, чтобы взглянуть на весеннюю сессию (см .: http://projects.spring.io/spring-session/).
Я использую это в своем проекте, и он работает очень хорошо, но вы должны знать, что в настоящее время схема сериализации по умолчанию является «ObjecStream», которая является обычной сериализацией Java. Таким образом, вы не можете использовать разные версии класса на своих серверах, которые вы вводите в сеанс. Это приведет к исключению десериализации. Но я уверен, что такая же проблема может возникнуть, если вы используете tomcat/jboss7glassfish/etc. кластеризация.
Если вы хотите быть свободным в развертывании служб, вы можете использовать одно из решений кластеризации и хранить только минимальную информацию, такую как sessionID, а затем использовать что-то вроде redis или любого другого решения для базы данных, которое вы хотите хранить связанные с сессией данные в более «классическом эволюционном» формате, подобном, например, json. Это приводит к большей работе для вас, но также значительно большей гибкости.
Это довольно широкий, но, как правило, вы используете только одну конфигурацию базы данных для обоих приложений, и вы можете использовать репликацию сеанса для обмена сеансами между серверами. У Tomcat есть встроенные функции, но вы также должны рассмотреть Spring Session, который подключается к цепочке фильтров сервлетов для экстернализации сеансов в кросс-платформенном стиле.
Существует несколько решений для кластеризации сеансов, но поскольку вы находитесь в экосистеме Spring, взгляните на недавно запущенный Spring Session project, который упрощает эту задачу, а также агностик провайдера Webapp.
Как правило, сеансы общего доступа не рекомендуется, для совместного использования базы данных используйте JNDI и получите объекты. Если логин должен быть обработан в вашем случае, используйте Single SignON.
- 1. Создание нескольких runloops, которые делят данные
- 2. Как сохранить два репозитория git, которые делят (большинство) файл?
- 3. JQuery - Простой делят два значения
- 4. Каковы атрибуты, которые pthreads делят и не разделяют между собой
- 5. Индивидуальные учетные данные FTP WebApps
- 6. делят данные по gtfs на более мелкие
- 7. Почему вы делят необработанные данные на 16?
- 8. Tomcat опубликованы два проекта под путем "WebApps /"
- 9. Два struts2 webapps не запускаются вместе
- 10. Как настроить 2 рельсовых приложения, которые делят пользователей?
- 11. Данные временных рядов Python Pandas делят данные по времени
- 12. Google WebApps и меню
- 13. Webapps связи
- 14. R: Сравните два data.frames и удалите данные, которые не соответствуют
- 15. Как я должен структурировать действия контроллера, которые делят шаблоны?
- 16. MySQL/PHP: идентифицировать пользователей сайта, которые делят свои учетные данные для входа
- 17. MVC 5 сеанс и/или данные кэширования
- 18. JSF PrimeFaces теряют данные и сеанс
- 19. делят ДИВ с процент
- 20. сеанс не хранит данные
- 21. Обмен сеансами между различными webapps в Jetty
- 22. Взаимодействие Webapps и смарт-карт
- 23. jQuery делят элементы и добавляют класс
- 24. C++ Объединение векторов, если они делят номер
- 25. URL-адреса разбивки webapps и обратного проксирования
- 26. Сумма SSRS делят на поле
- 27. Как объединить два Maven WebApps в один проект
- 28. Два лазурных веб-сайта (webapps) в том же домене
- 29. Горячие клавиши в webapps
- 30. Синхронизация webapps на серверах
Глядя на http://www.josso.org/, возможно, стоит. Единая точка входа. – Anirudh