Я хочу создать очередь, в которой клиенты могут помещать запросы, тогда потоки рабочего сервера могут вытащить их, поскольку у них есть доступные ресурсы.Как создать очередь с несколькими рабочими?
Я изучаю, как это сделать с репозиторием Firebase, а не с внешней службой очереди, которая затем должна будет вводить данные обратно в Firebase.
С безопасности и проверки инструментов в виду, вот простой пример того, что я имею в виду:
- пользователь нажимает запрос в «очереди» ведро
- серверы вытаскивать запрос и удалений он (как я могу гарантировать только один сервер получает запрос?)
- сервера проверяет данные и извлекает из частного ведра (или впрыскивает новые данные)
- сервера помещает данные и/или ошибки обратно в ведро пользователя
Упрощенный пример того, где это может быть полезно было бы аутентификации:
- пользователь помещает запрос на аутентификацию в общей очереди
- его логин/пароль переходит в его частную ведре (место, где только он может читать/записывать)
- сервер подбирает запрос аутентификации, получает логин/пароль и проверяет его против частного buc только KET сервер может получить доступ к
- на сервер помещает маркер в частное ведро пользователя
(конечно, есть еще какие-то лазейки безопасности в общей очереди; Я просто исследовать в этой точке)
Некоторых других примеров для использования:
- только для чтения очереди статуса (статус пользователя передаются через частное ведро, сервер запись его в общественное ведро, которое предназначено только для чтения для общественности)
- очереди сообщений (сообщения посылаются через пользователь, сервер решает, какие ведра дискуссионных они понижены в)
Так вопросы:
- Это хороший дизайн, который будет хорошо интегрироваться в предстоящие планы безопасности? Какие существуют альтернативные подходы?
- Как заставить все серверы прослушивать очередь, но только один, чтобы выбрать каждый запрос?
@Michael_Lehenbauer спасибо за большое объяснение. Я очень рад услышать о разнообразии вариантов аутентификации - звучит здорово. – Kato
Идея случайных рабочих очередей интересна; Полагаю, что это создает немного загадки, если серверы отключены. Полагаю, что мы могли бы удалить очередь, если сервер отключится и удерживать клиентов, ответственных за отслеживание их запросов и делегирование их новому серверу. – Kato
@Kato Я проверил вашу библиотеку очереди firebase, но не уверен, что она ответит на мой вопрос здесь: http://stackoverflow.com/questions/41979438/are-there-any-solution-support-this-single-concurrency-distributed -очередь . Вы думаете о каком-либо решении? – DucDigital