Использовать журнал событий как временное хранилище - PullRequest
0 голосов
/ 29 июня 2011

В настоящее время мы разрабатываем механизм ведения журнала для всей организации (на основе C #).Одним из требований является запись записей журнала во временное хранилище, а затем их перемещение в центральную базу данных для сохранения производительности.

В настоящее время мы оцениваем два варианта временного хранилища - один из-memory db, такой как SQL CE, а другой - журнал событий Windows.Мы не уверены, подходит ли журнал событий для этой задачи.Нам нужно что-то, что может выдерживать большие нагрузки (~ 50 вызовов в секунду), легко читаемое и надежное.

Что вы думаете об этом?Является ли журнал событий хорошим кандидатом на эти требования?Как это работает?Любое понимание будет высоко оценено.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 29 июня 2011

Во-первых, это решение, но не обязательно best , поскольку оно действительно зависит от ваших потребностей. У нас есть текстовый файл с фиксированным размером, который используется в качестве циклического журнала. У нас есть преимущество сообщений фиксированной длины, так что это работает для нас. Один раз в день, в более тихое время, сервер извлекает записи журнала, которые ему еще предстоит прочитать. Он может обрабатывать пару сотен записей в секунду, не потея. Существует риск того, что более старые записи будут перезаписаны более новыми, если сервер не извлечет достаточно времени, но размер файла таков, что это вряд ли произойдет, так как у нас также есть преимущество, заранее зная примерно, что максимальное количество записей в день будет.

Но, как я уже сказал, от ваших потребностей в значительной степени зависит то, какое решение лучше. Я не использовал журналы событий C #, но если они чем-то похожи на старые журналы событий Windows NT, то его преимущество заключается в возможности внешнего чтения без участия клиентской программы.

0 голосов
/ 30 июня 2011

Перенос локальных записей журнала в центральную базу данных может быть сложной задачей.Вы должны обрабатывать все возможные исключения, прерывания и т. Д. По этой причине я бы предложил рассмотреть решение с использованием SQL Server Compact 4.0 с Microsoft Sync Framework.

Я думаю, что можно реализовать одностороннюю сервис-ориентированную синхронизациюрешение.

Кроме того, SQL Server Compact 4.0 имеет ограничение размера БД 4 ГБ и обработку> 250 одновременных подключений.Также у вас есть возможность включить в загрузочные приложения x86 и x64 загрузочные приложения.

0 голосов
/ 29 июня 2011

Я предлагаю вам использовать MongoDB .Поэтому, возможно, вы можете использовать то же самое, что и центральное хранилище, получая одинаковую инфраструктуру как для локального, так и для центрального.

...