Есть ли прямой способ запрашивать и обновлять данные приложения из прокси-сервера или мне нужно использовать API управления?

Мне нужно изменить атрибуты приложения, и я понимаю, что могу сделать это с помощью вызовов API сервера управления.

Две проблемы с использованием API сервера управления:

  1. производительность: вызовы на сервер управления, когда это возможно непосредственно в обработчике сообщений. Проблемы с производительностью, вероятно, можно решить с помощью кэширования.
  2. доступность: необходимость использования API-интерфейсов сервера управления означает, что система зависит от доступности сервера управления. А если бы это было сделано непосредственно в самом прокси, то уменьшилось бы количество точек отказа.

Любые рекомендуемые альтернативы?


person akoo1010    schedule 05.02.2014    source источник


Ответы (2)


Наконец, все сущности хранятся в кассандре (для времени выполнения)

Ваш лучший выбор — использовать политику доступа к объекту для получения любой информации о объекте. Это не ударит по MS. Но просто для информации - в большинстве случаев вам даже не нужна политика объекта доступа. Когда вы используете валидацию apikey или валидацию политики токена доступа, все сведения о связанных объектах становятся доступными в виде переменной потока с помощью MP. Таким образом, никаких дополнительных вызовов объекта доступа не требуется.

Когда вы обновляете какой-либо объект (например, разработчик, приложение) - я действительно предполагаю, что это вариант использования типа управления, а не вариант использования во время выполнения. Следовательно, использование API-интерфейсов управления должно быть в порядке.

Если ваш вариант использования требует вызова API во время выполнения для обновления атрибута в приложении, возможно, этот атрибут не должен быть частью приложения. Подумайте, как вы можете вынести его в кеш, KVM или какое-то другое место, где вы можете получить к нему доступ из MP (просто мысль, не зная полностью вариантов использования).

person Santanu Dey    schedule 06.02.2014

Конструкция системы такова, что все редактирование объектов проходит через сервер управления, который, в свою очередь, отвечает за производительность и масштабируемость редактирования. Сервер управления также отвечает за знание того, какие обработчики сообщений должны быть проинформированы об изменениях посредством регистрации zookeeper. Это также гарантирует, что если данный обработчик сообщений недоступен, например, из-за того, что он обновляется, он будет получать обновления всякий раз, когда он становится доступным. Сервер управления является источником правды.

В случае атрибутов приложения разработчика (или любых метаданных приложения) значения кэшируются в течение 3 минут (я думаю), поэтому обработчик сообщений может не видеть новые значения до 3 минут.

Что касается доступности, Management Server спроектирован так, чтобы быть высокодоступным, опираясь на ту же базовую архитектуру, что и дизайн процессора сообщений.

person Randy Solton    schedule 05.02.2014
comment
Спасибо за справочную информацию, но есть ли лучший канал для внесения изменений, помимо прямых вызовов MS API? - person akoo1010; 06.02.2014
comment
Нет. Нет лучшего способа. Моя точка зрения заключалась в том, что проблем с доступностью не существует. Что касается вопроса Производительность, какую проблему вы видите? - person Randy Solton; 06.02.2014
comment
Это превентивно, так что проблем пока нет. Ранее возникали опасения по поводу оптимизации очереди, которая не возникает при прямых вызовах MS API по сравнению с политиками/альтернативами. - person akoo1010; 06.02.2014