2009-09-29 4 views
0

Я пришел из веб-фона, где мне нужно иметь дело с HTTP, поэтому, пожалуйста, извините мое невежество.Использование обмена сообщениями для записи, а также чтения

У меня есть приложение, в котором клиенты слушают изменения в очереди сообщений, в которых используется топа. Раньше клиенту требовалось только прослушивать соответствующие каналы для сообщений, сообщающих им об изменениях на сервере и соответственно обновлять их. Простые вещи.

Теперь клиент должен иметь возможность редактировать данные и возвращать эти изменения на сервер. Данные на сервере уже отображаются через резервные ресурсы, поэтому моя первая мысль заключалась только в том, чтобы сделать запросы REST на изменение данных на сервере, но затем я начал задаваться вопросом, могу ли я найти решение с использованием обмена сообщениями. Я мог бы просто открыть еще один канал, который клиенты могли бы публиковать изменения, и сервер мог подписаться на этот канал и соответствующим образом обновить его. Внедрение этого, очевидно, было бы простым, но я хотел бы, чтобы некоторые из потенциальных ловушек указывали на меня раньше времени.

Я знаком с REST, так что я хочу, чтобы задать несколько вопросов в контексте REST:

  • ли я карту группы очередей в REST/CRUD глаголы для каждого ресурса, т.е. itemPostQueue, itemPutQueue, itemDeleteQueue?
  • Что касается GET, как я могу запросить данные для чтения с использованием очереди?
  • Что я могу использовать для замены механизма кода состояния, чтобы поймать проблемы, или просто запускать и забывать (глотать) или использовать заголовки ошибок/получения в Stomp как-то?

Любые ответы и рекомендации будут очень благодарны.

С уважением,

Chris

+0

Просто найти эту книгу, которая могла бы быть хорошей отправной точкой: http://www.amazon.co.uk/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683 – ChrisInCambo

+0

Это действительно Безразлично Если вам нужна очередь сообщений. Есть ли причина не просто выполнять запрос REST и не иметь дополнительной сложности между ними? – leonm

+0

Самая большая головная боль заключается в том, что клиент основан на flex и flex не поддерживает методы http, отличные от GET и POST, что означает, что мне нужно будет решить проблему с прокси-сервером между клиентами и остальными ресурсами. Вторая причина - просто попробовать что-то другое для удовольствия! – ChrisInCambo

ответ

0

В то время как я не ясно, почему вы обязательно использование сообщений здесь, несколько мыслей:

Вы могли карту почивать на проводе, как itemPostQueue , но это, вероятно, будет неестественным для человека, ориентированного на сообщения. Если вы используете какую-то очередность с гарантированной семантикой и сбрасываете один раз, то продолжайте использовать этот механизм. Для примера корзины покупок вы можете отправить сообщение AddItem на провод, и вы доверяете инфраструктуре, чтобы доставить ее один раз на сервер.

Прямых GET как концепция здесь в очереди сообщений. Вы можете имитировать его с помощью пары сообщений, я посылаю вам запрос, и вы отправите мне ответ. Это очень похоже на RPC, но еще более развязано. Поэтому я отправляю вам запрос PublishCart, а позже сервер отправляет сообщение CartContents на канал, который прослушивает клиент.

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

Одна вещь, которую делает обмен сообщениями, значительно отделяет ваше приложение. В отличие от HTTP, где вы знаете, что что-то случилось, с очередью вы отправляете письмо кому-то. Он может туда добраться. Почтальон может сбросить его в снег. Собака могла съесть его.Если вы не получите ответ в какой-то период времени, попробуйте другие способы связаться со своими родственниками или отозвать аналогию, чтобы связаться с сервером. Мониторинг работоспособности инфраструктуры очереди и глубины очередей и т. П. Приобретает дополнительное значение, поскольку они являются сантехникой, от которой вы теперь зависите.

Good Luck

 Смежные вопросы

  • Нет связанных вопросов^_^