Pull to refresh

Windows Azure: Queues и Service Bus Queues – сходства и различия

Reading time 17 min
Views 4.8K
Microsoft Azure *
Translation
image

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

Введение


Windows Azure поддерживает два типа механизмов очередей: очереди Windows Azure и очереди шины обслуживания.

Очереди Windows Azure, входящие в состав инфраструктуры хранилища Windows Azure, поддерживают простой REST-интерфейс с функциями Get/Put/Peek (Получение/Запись/Считывание) для создания надежной и отказоустойчивой системы обмена сообщениями между службами и внутри них.

Очереди шины обслуживания входят в состав более обширной инфраструктуры обмена сообщениями Windows Azure, которая поддерживает создание очередей, а также публикацию, подписку, удаленную работу с веб-службами и шаблоны интеграции.

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

В этой статье приводится сравнительный анализ двух технологий организации очередей, реализованных в Windows Azure. Обсуждаются режимы работы и функциональные возможности обеих технологий. В статье также приводятся рекомендации по выбору функций, наилучшим образом подходящих для решения ваших задач, связанных с разработкой приложений.
Читать дальше →
Total votes 26: ↑13 and ↓13 0
Comments 0

Тестирование Amazon SQS

Reading time 8 min
Views 6K
Erlang/OTP *Amazon Web Services *
В сети уже есть несколько обзоров производительности этого решения от Amazon, в этой статье я не преследовал цели проверки уже полученных результатов, меня интересовали некоторые особенности, не рассматриваемые в других источниках, а именно:
  1. в документации сказано, что Amazon старается сохранять порядок сообщений, на сколько хорошо он сохраняется?
  2. как быстро происходит получение сообщения при использовании Long Polling?
  3. насколько ускоряет процесс пакетная обработка?


Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 5

Архитектура сервиса распределённых очередей сообщений в Яндекс.Облаке

Reading time 13 min
Views 25K
Яндекс corporate blog System Analysis and Design *Industrial Programming *Cloud services *Distributed systems *
Привет, меня зовут Василий Богонатов. Я один из тех, кто приложил руку и голову и вложил свою душу в сервис распределённых персистентных очередей сообщений Yandex Message Queue. Сервис вышел в общий доступ в конце мая, но внутри Яндекса он уже давно и активно используется в разных продуктах.

Сегодня я хочу рассказать читателям Хабра об очередях сообщений вообще и о Yandex Message Queue в частности. Сначала я хочу объяснить, что такое «распределённая персистентная очередь сообщений» и зачем она нужна. Показать её практическую ценность, механику работы с сообщениями, поговорить про API и удобство использования. Во второй половине материала мы посмотрим на техническую сторону: как в наших очередях используется Yandex Database (это надежный фундамент нашего сервиса), как выглядят наивный и улучшенный подход к построению архитектуры, какие проблемы вызывает распределённость и как их можно решить.


Читать дальше →
Total votes 57: ↑55 and ↓2 +53
Comments 23

Очереди сообщений в PostgreSQL с использованием PgQ

Reading time 4 min
Views 22K
PostgreSQL *Programming *SQL *
Sandbox


Очереди сообщений используются для выполнения: отложенных операций, взаимодействия сервисов между собой, «batch processing» и т.д. Для организации подобных очередей существуют специализированные решения, такие как: RabbitMQ, ActiveMQ, ZeroMQ и тд, но часто бывает, что в них нет большой необходимости, а их установка и поддержка причинит больше боли и страданий, чем принесет пользы. Допустим, у вас есть сервис, при регистрации в котором пользователю отправляется email для подтверждения, и, если вы используете Postgres, то вам повезло — в Postgres, почти из коробки, есть расширение PgQ, которое сделает всю грязную работу за вас.

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

Зачем вообще нужен PgQ, если можно просто создать табличку и записывать туда задачи? Казалось бы, можно, но вам придется учесть паралельный доступ к задачам, возможные ошибки (что будет, если процесс обрабатывающий задачу, упадет?), а также производительность (PgQ очень быстрый, а самописные решения, как правило, нет, особенно если транзакция в базе не закрывается во время всего выполнения задачи), но самое главное, почему на мой взгляд надо использовать PgQ, это то, что PgQ уже написан и работает, а самописное решение еще надо написать (UPD: про то, почему не стоит использовать самописные очереди, можно почитать, например, тут).
(UPD: т.к. PgQ работает поверх Postgres, все прелести транзакций можно использовать и в нем)

Но у PgQ есть один огромный минус — отсутствие документации, этот недостаток я и пытаюсь компенсировать этой статьей.
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 34

Pulsar vs Kafka: сравнение и мифы

Reading time 21 min
Views 12K
Southbridge corporate blog System administration *Programming *IT Infrastructure *Apache *
Translation


Pulsar или Kafka — что лучше? Здесь мы обсудим плюсы и минусы, распространенные мифы и нетехнические критерии, чтобы найти лучший инструмент для ваших задач.


Обычно я рассказываю об Apache Kafka и ее экосистеме. О Pulsar за последние годы меня спрашивали только коммитеры и авторы Pulsar. Они задавали сложные технические вопросы, чтобы показать, что Kafka не идет ни в какое сравнение с Pulsar. На Reddit и подобных платформах разгораются яростные и очень субъективные споры на эту тему. Я поделюсь своей точкой зрения, основанной на многолетнем опыте работы со стриминговыми опенсорс-платформами.

Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Comments 11

Apache Pulsar как основа для системы очередей

Reading time 13 min
Views 13K
AvitoTech corporate blog System administration *Programming *IT Infrastructure *Apache *
✏️ Technotext 2021

Меня зовут Агалецкий Павел, я старший инженер в команде Архитектуры. Эта статья про новую для нас в Авито технологию — Apache Pulsar и построение системы очередей, Queues as a Service, на её основе.

Читать далее
Total votes 19: ↑19 and ↓0 +19
Comments 28

Использование российских облачных сервисов очередей на C#

Reading time 14 min
Views 4.7K
.NET *Amazon Web Services *C# *Start-up development
Sandbox

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

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 2

Как работает цикл заказа такси в Яндекс Go. История вопроса

Reading time 9 min
Views 28K
Яндекс corporate blog Python *System Analysis and Design *Geoinformation services *
Меня зовут Илья, я отвечаю за инфраструктуру пользовательских продуктов в Яндекс Go. Мы строим цикл заказа такси — процессы, происходящие под капотом после того, как пользователь нажимает «Заказать». Поиск машины, назначение водителя, изменение адреса, оплата поездки — всё это части цикла. Ещё мы делаем инфраструктуру создания циклов, которая используется в Еде, Лавке, Доставке и других направлениях внутри Яндекса.

Но обо всём по порядку. Давайте расскажу историю того, как мы развивали механизм обработки заказа, адаптировали его под нужды пользователей и старались исключить ошибки, а главное, почему мы используем такую архитектуру сейчас. Если у вас на бэкенде тоже выполняются последовательности зависящих друг от друга действий, и не оставляет желание оптимизировать логику — то тем более добро пожаловать под кат.

Как всё начиналось


В 2011 году мы запустили сервис заказа такси. В первой реализации в бэкенде был endpoint /create-order, внутри которого мы создавали заказ, искали ближайшую машину и отправляли заказ водителю (кстати, если вы не знали о том, как устроен поиск водителя, то обязательно почитайте).


Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Comments 39

Изобретая бота: система обработки сообщений на примере конструктора чат-бота

Reading time 12 min
Views 4.6K
VK corporate blog KTS corporate blog Instant Messaging *IT Infrastructure *Tarantool *


Привет, Хабр! Я Игорь Латкин, архитектор в KTS. Мы занимаемся различными цифровыми продуктами для бизнеса, специализируемся на HRTech, EdTech и DevOps. Также у нас есть несколько собственных продуктов, и один из них тесно связан с очередями сообщений. Об этом интересном решении я хочу сегодня рассказать. Эта статья — конспект моего диалога с архитектором Tarantool Монсом Андерсоном. Посмотреть видео можно в записи. Бонусом в конце — ответы на вопросы зрителей.
Читать дальше →
Total votes 46: ↑46 and ↓0 +46
Comments 2

[Паттерны API] Мультиплексирование сообщений. Асинхронная обработка событий

Level of difficulty Hard
Reading time 4 min
Views 2.5K
API *

Это глава 22 моей книги «API». v2 будет содержать три новых раздела: «Паттерны API», «HTTP API и REST», «SDK и UI‑библиотеки». Если эта работа была для вас полезна, пожалуйста, оцените книгу на GitHub, Amazon или GoodReads. English version on Substack.

Одно из неприятных ограничений почти всех перечисленных в предыдущей главе технологий — это относительно невысокий размер сообщения. Наиболее проблематичная ситуация с push-уведомлениями: Google Firebase Messaging на момент написания настоящей главы разрешал сообщения не более 4000 байт. Но и в серверной разработке ограничения заметны: например, Amazon SQS лимитирует размер сообщения 256 килобайтами. При разработке webhook-ов вы рискуете быстро упереться в размеры тел сообщений, выставленных на веб-серверах партнёров (например, в nginx по умолчанию разрешены тела запросов не более одного мегабайта). Это приводит нас к необходимости сделать два технических выбора:

Читать далее
Rating 0
Comments 0