Конвеєри замовлень
Замовлення течуть до виставлення рахунків, доставки й аналітики, і кожен читає той самий потік у власному темпі.
Потоки подій лише для додавання з групами споживачів, підтвердженнями та автоматичним відновленням повідомлень, які залишив споживач, що впав.
Сервіс замовлень додає подію й отримує її id.
Анімований покроковий розбір з реальними командами HotKV і прикладами відповідей. Натисніть будь-який крок, щоб перейти до нього. Команди та відповіді залишаються англійською, так само, як ви вводите й бачите їх у HotKV.
Сервісам, що реагують на події, потрібно більше, ніж черга. Кілька незалежних споживачів хочуть одні й ті самі події, кожна група споживачів має ділити роботу між екземплярами, а коли екземпляр помирає, тримаючи повідомлення, хтось має це помітити й перебрати їх.
Потік є журналом лише для додавання. Кожна група споживачів читає його незалежно, доставляє кожне повідомлення одному члену групи й тримає його в очікуванні, доки член не підтвердить. XAUTOCLAIM передає повідомлення, що надто довго очікували, справному споживачеві.
Сервіс замовлень додає подію й отримує її id.
XADD orders * type created order 1182 total 49.00Виставлення рахунків і доставка мають кожне свою групу, і кожна отримує подію.
XGROUP CREATE orders billing 0 MKSTREAMЕкземпляр виставлення рахунків читає нові повідомлення для своєї групи, блокуючись, доки щось не надійде.
XREADGROUP GROUP billing billing-1 COUNT 10 BLOCK 5000 STREAMS orders >Щойно рахунок створено, виставлення рахунків підтверджує, і повідомлення залишає список очікування.
XACK orders billing 1790985600123-0Екземпляр доставки помер, тримаючи повідомлення. Після 60 секунд простою їх забирає справний.
XAUTOCLAIM orders shipping shipping-2 60000 0-0 COUNT 25Замовлення течуть до виставлення рахунків, доставки й аналітики, і кожен читає той самий потік у власному темпі.
Дії користувачів додаються до потоку й відтворюються будь-яким сервісом, якому потрібна історія.
Повідомлення пристроїв буферизуються в потоках і обробляються групою воркерів, що масштабується разом із навантаженням.
Записи отримують впорядковані за часом id і можуть обрізатися за довжиною чи віком.
XADDXTRIMКожна група отримує кожне повідомлення й ділить роботу між своїми членами.
XGROUPXREADGROUPПовідомлення лишаються в очікуванні, доки не підтверджені.
XACKXPENDINGПовідомлення, що надто довго простоюють, забирає інший споживач.
XAUTOCLAIMXCLAIMТак. XRANGE читає будь-яку частину потоку за id, а нова група споживачів може почати з початку.
Обрізайте його через XTRIM або опцією MAXLEN чи MINID команди XADD.
XADD підтримує ідемпотентні id виробників (IDMP), тож повторна публікація не створює другого запису. Дивіться довідник XADD.
HotKV розмовляє протоколом Redis, тож ви можете направити на нього наявний клієнт і виконувати ті самі команди.