Мне очень понравилась презентация Джеймса Льюиса "Microservices: Java, The Unix Way".Как реализовать конкурирующий потребитель с помощью http
В этой презентации Джеймс рассказывает о внедрении службы регистрации пользователей, написав механизм обработки очереди, который считывает события с корма атома и предоставляет конечную точку, которую несколько пользователей могут читать, чтобы обрабатывать и превращаться в пользовательские объекты.
Примечание на конкретный slide (около 18:40 в видео) говорит, что это было реализовано с помощью competing consumer EIP:
«реализовано Queue Processing Engine конкурирующей шаблон потребителя с использованием условного GET, PUT и ETags против коллекции атомов, выставленной в очереди событий «
Этот вид очереди (и способ, которым они говорят о гетерогенных потребителях) предполагает, что это канал публикации-подписки.
Я не очень понимаю, как это может быть реализовано, книга EIP говорит, что конкурирующие потребители работает только:
[...] с поточечными каналами; несколько потребителей на публикацию-подписке канал просто создать несколько копий каждого сообщения
Я предполагаю, что процессор очереди выставляет REST ресурс, конкурирующие потребители называют делают запросы GET для новых элементов, но где делать запросы PUT и в него входят епаги?
У меня был этот совет от нескольких старших архитекторов. Этот единственный потребитель может просто передать события в конкурирующую потребительскую очередь, если действительно требуется масштаб. – Seth