У меня есть вопрос, связанный с сложной ситуацией в системе, управляемой событиями, которую я хочу попросить совета.Вот ситуация:
В нашей системе я использую redis
в качестве базы данных memcached и kafka
a в качестве очередей сообщений.Чтобы повысить производительность redis, я использую lua scripting
для обработки данных и в то же время помещаю события в список блокировки redis.Затем будет процесс, чтобы выбрать события redis в этом списке блокировки и переместить их в kafka.Таким образом, в этом процессе есть 3 шага:
1) Чтение событий из списка redis
2) Создание пакета в kafka
3) Удаление соответствующих событий в redis
К сожалению, если процесс умирает между 2 и 3, то есть после генерации всех событий в kafka он не удаляет соответствующие события в redis, а после перезапуска этого процесса он генерирует дублированные события в kafka, что недопустимо.Как и у любого есть решение этой проблемы.Заранее спасибо, я действительно ценю это.