У меня 2 узла, один шлюз и один рабочий.
Данные должны передаваться от шлюза к работнику (без прямого подключения).
Я хотел бы сохранить ключ в базе данных с идентификатором и временем жизни 30 секунд.
Протокол очень прост:
- Gateway stores (Id, Key) to the database with a 30s TTL
- Worker will fetch (if needed) the key with the Id it has in it's possession and remove it directly
- If The key is not needed within 30 sec. it is deleted by the database (90% of the keys should be retrieved)
Вставка, получение и удаление должны быть очень быстрыми и легко обрабатывать около 30 000 в секунду. (Конечно, с закрытой конфигурацией спуска)
Данные не должны быть постоянными, если что-то пойдет не так, меня не волнуют данные.
Было бы неплохо, если бы TTL действительно удалил строку, поскольку в противном случае она могла бы стать огромной.
Id и Key - простые строки.
Какую систему вы бы порекомендовали? Зная, что я использую Erlang как для шлюза, так и для рабочего
Я не ищу систему передачи сообщений, такую как RabbitMQ или что-то в этом роде, поскольку кажется невозможным получить конкретный ключ, не извлекая другие.
Могу я предложить использовать Memcached. Что в нем хорошего, он настолько тупой, что вам не нужно его настраивать.