Сценарий: асинхронная обработка данных в рамках модели «производитель-потребитель» в торговой системе, обмен данными в формате JSONB.
Реализация: данные очереди сохраняются на диске, это надёжная очередь с поддержкой транзакций и аудита операций постановки и снятия элементов из очереди. Для взаимного исключения используется блокировка строк PG, а для повышения производительности — условные индексы.
Производительность: обработка партиями по 10 элементов, скорость снятия элементов с очереди может легко превышать 10 000/с, а скорость постановки элементов в очередь практически совпадает со скоростью вставки в таблицу.
Особенности: продукт от «Наноге». В рамках надёжной модели «потребитель-производитель» может заменить любую другую реализацию очередей, проще в использовании и без ошибок. Также очень гибкий.
Надёжность: «Нанога» уже широко развернула этот модуль.
Простота: поддерживает только версии PG 9.4 и выше, работает только с типом данных JSONB.
Гордость: 180 строк кода, включая комментарии. Может превзойти любой open source MQ в сценарии с материализованной очередью.
Свобода: поскольку это открытый исходный код, используйте его свободно. Техническая поддержка не предоставляется.
Создание очереди: select mq_create_queue('【QUEUE NAME】');
Удаление очереди: select mq_drop_queue('【QUEUE NAME】');
Постановка данных в очередь: select mq_send('【QUEUE NAME】','【JSON STRING】',【 **OPTIONAL** MSG TYPE ID:bigint】);
Снятие данных из очереди: select mq_recv('【QUEUE NAME】', 【 **OPTIONAL** NUMBER OF MSG:big int】,【 **OPTIONAL** MSG TYPE ID:bigint】)
.
Количество сообщений можно указать для одновременного снятия данных, по умолчанию — 1. Идентификатор типа сообщения можно использовать для получения только данных с указанным идентификатором типа, если не указано — будут получены все данные из очереди.
Снятие данных из очереди с использованием набора результатов: select mq_recv('【QUEUE NAME】', '【MSG TYPE ID RESULT SET】',【 **OPTIONAL** MSG TYPE ID:bigint】)
.
Можно использовать набор результатов Raw SQL для ограничения диапазона типов данных при снятии. Количество сообщений можно указать для одновременного снятия данных, по умолчанию — 1.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )