Замена сообщения в jms очереди

Используйте вместо этого bons.M.

cat := bson.M{"Animal": "Cat"}
dog := bson.M{"Animal": "Dog"}
response := bson.A{}
response = append(response, cat)
response = append(response, dog)
writer.Header().Set("Content-Type", "application/json")
json, _ := json.Marshal(response)
writer.Write(json)
6
задан Udi 24 October 2008 в 20:10
поделиться

2 ответа

Это походит на идеальный вариант использования для Идемпотентного Потребителя, который удаляет дубликаты из очереди или темы.

Следующий пример показывает, как сделать это с Camel Apache, который является самым легким способом реализовать любой из Шаблонов Интеграции Предприятия, особенно если Вы используете ActiveMQ, который идет с Camel, интегрированным из поля

from("activemq:queueA").
  idempotentConsumer(memoryMessageIdRepository(200)).
  header("myHeader").
  to("activemq:queueB");

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

3
ответ дан 17 December 2019 в 07:10
поделиться

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

1
ответ дан 17 December 2019 в 07:10
поделиться