2015-02-04 4 views
0

Я думаю о добавлении кеша Redis к моему серверному приложению RT в качестве решения для регистрации. В настоящее время мое приложение использует решение для регистрации (на диск), которое не работает под моей загрузкой, что вызывает у меня задержку в моем приложении.Redis as logging catch

My average log message is 100B X 10,000 messages per second = 1M logs per second I need to hold 5 days of logs meaning = 1M X 60 seconds X 60 minutes X 24 hours = 86400MB = 86.4GB X 5 days = **432GB** in memory logging.

Для отладки цели мне нужна скорость доступа для журналов.

Как вы думаете, redis может работать с моими номерами? Вы думаете о лучшем решении для решения моей проблемы?

10x

ответ

0

По вашему вопросу я могу видеть, что вы знаете, что мы говорим о памяти, не так ли?

Говоря это, я имею в виду, это будет очень, очень дорого, и вам это не нужно. Кроме того, с Redis у вас будет только очень ограниченный способ запроса.

Не стоит создавать такое сложное и дорогостоящее решение и не иметь возможности запросить его. :)

Моя идея - создать сервер обмена сообщениями. Я предлагаю вам взглянуть на SQS от AWS, они будут обрабатывать инфраструктуру для вас. Если вы не можете использовать AWS, возможно, вы можете установить RabbitMQ или ActiveMQ внутри своей структуры.

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

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