Распределенный журнал с малой задержкой - PullRequest
0 голосов
/ 05 мая 2019

Существует ли существующее программное обеспечение для готового к работе распределенного журнала с малой задержкой? Идея состоит в том, чтобы хранить входные сообщения для служб до того, как они будут отправлены в саму службу.Когда служба запускается, она берет самый последний снимок своего состояния и воспроизводит входные сообщения.Если служба является детерминированной, несколько экземпляров службы могут быть запущены одновременно.Это обеспечит как высокую доступность, так и нулевое время простоя развертываний.

Доступно много журналов, но некоторые с высокой задержкой, некоторые не полностью распределены / не могут быть кластеризованы, а некоторые еще не готовы к работе.

Доступное программное обеспечение распределенного журнала

  • Кафка

  • NATS Streaming

  • TANK

  • DistributedLog

  • Пульсар

  • RocketMQ

  • Подъемный мост

  • Jocko

  • LogDevice

Требования

  • Сообщение/ постоянство события (либо в памяти, либо также на диске)

  • Порядок сообщений в теме / разделе

  • Доставка по крайней мере один раз: Подтверждение сообщения между издателем и сервером (для операций публикации) и между подписчиком и сервером (для подтверждения доставки сообщения)

  • Историческое воспроизведение сообщения по теме: Новые подписки могут указыватьначальная позиция в потоке сообщений, сохраненных для канала подписанного субъекта.

  • Высокая доступность: должно иметь несколько кластеризованных узлов с репликацией между ними

  • Низкая задержка: если мы собираемся ждать, пока два узла не получат сообщение, прежде чем отправлять его, то оно должно быть с низкой задержкой.В идеале всего несколько миллисекунд, но не более десятков миллисекунд.Это основная причина, по которой Кафка кажется неподходящим для этого.

Есть ли варианты, которые я пропустил?

...