Веб-сервис бронирования билетов (с состоянием) на Spring boot - PullRequest
0 голосов
/ 20 февраля 2019

Мне нужен какой-то веб-сервис с отслеживанием состояния (скажем, бронирование билетов за 5 шагов 1) выберите ... 5) оплатить) и хотите реализовать его с помощью Spring (boot) framework

googling

весенний веб-сервис

тонн примеров веб-сервисов RESTful можно найти ... но в соответствии с манифестом REST и многими статьями / ответами (например, Sticky Session for Rest Calls API * )

REST-клиент предназначен для вызова REST API, а REST API должны быть без состояний

Statefulness вредит масштабируемости

Создать очень легкоВеб-сервис RESTful при весенней загрузке из-за великолепных встроенных и автоматически настраиваемых библиотек, и я не хочу отказываться от него.

Поэтому я вижу несколько способов преодолеть это:

  1. Создать веб-сервис RESTfulв Spring Boot и добавьте туда сессию и сохраните состояние, и добавьте липкий балансировщик нагрузки сеанса для поддержания масштабируемости (это более сложно, чем подход без сохранения состояния, но выполнимый).Да, это не будет true RESTful-сервис, но он будет работать
  2. Создать true RESTful-сервис без сохранения состояния, поддерживать состояние на

временная таблица базы данных «temp_transaction», к которой ваш код может обратиться, чтобы определить, находится ли пользователь в процессе бронирования, скажем, определенного места.

состояние поддерживается на стороне клиента, а не на сервере.Поэтому один из способов, который я предлагаю, заключается в том, что вы можете использовать куки-файлы для хранения данных о вашем состоянии и температуре Использовать какую-то богатую клиентскую среду, например угловую или реагирующую (я не очень хорош, но считаю, что есть вероятностьчтобы сохранить подарки состояния в этих рамках), хотя я думаю, что в любом случае cookie используется для этих целей, так что это почти то же самое, что 3) Использовать Spring + SOAP.Мыло может поддерживать состояние, но я думаю, что этот способ устарел, и современные вновь созданные приложения с нуля не должны использовать SOAP Не используйте Spring Framework для этого проекта, но используйте интерфейсную часть End End (упомянуто в 4) + Node.js (в любом случае это будет с состоянием)

Так какой подход лучше выбрать?

1 Ответ

0 голосов
/ 20 февраля 2019

Поскольку ваша служба REST

  1. может аварийно завершить работу и будет перезапущена
  2. , вы хотите масштабировать и иметь несколько экземпляров службы

васследует сохранять состояние в базе данных или распределенном кэше, таком как Redis.

В каждом запросе вы должны будете передавать ключ сеанса или ссылку на бронирование.Например в шапке.

...