Способ загрузки веб-сайта с высокой нагрузкой в ​​файл? - PullRequest
0 голосов
/ 21 июля 2009

Мне нужно встроить отслеживание кликов и конверсий (более конкретное и целенаправленное, чем файлы журнала IIS) в существующий веб-сайт. Я ожидаю довольно высокую нагрузку. Я исследовал использование log4net , в частности FileAppender Class , но в документах явно говорится: "Этот тип небезопасен для многопоточных операций."

Может ли кто-нибудь предложить надежный подход для решения этого типа тяжелой регистрации? Мне действительно нравится гибкость, которую log4net дал бы мне. Можно ли обойтись без отсутствия безопасной многопоточности с помощью lock? Приведет ли это к проблемам производительности / конкуренции?

Ответы [ 4 ]

1 голос
/ 21 июля 2009

Вы можете проверить Блок приложения регистрации, доступный в Microsoft Enterprise Library. Он предлагает целый ряд различных типов регистраторов, а также удобный конфигуратор графического интерфейса, который вы можете указать на свой app.config \ web.config для его изменения. Так что не нужно просеивать XML самостоятельно.

Вот ссылка на хороший учебник о том, как начать с ним:

http://elegantcode.com/2009/01/20/enterprise-library-logging-101/

1 голос
/ 21 июля 2009

Хотя сам FileAppender может быть небезопасен для ведения журнала, я бы, конечно, ожидал нормальных маршрутов доступа к нему через log4net для обеспечения безопасности потоков.

Из FAQ :

  • log4net является поточно-ориентированным.

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

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

0 голосов
/ 21 июля 2009

При использовании syslog у вас не будет проблем с многопоточностью. Syslog, отправляет логи с использованием UDP на logdaemon (потенциально может быть на той же машине).

Особенно хорошо работает, если у вас больше запущенных процессов / сервисов, так как все строки журнала объединяются в один инструмент просмотра.

Если вы ожидаете действительно больших нагрузок, посмотрите, как это делают ребята из Facebook: http://developers.facebook.com/scribe/ Вы можете использовать их открытый исходный журнал. Я не думаю, что вы пока что достигнете такой нагрузки, так что вы должны быть в безопасности на некоторое время!

R

0 голосов
/ 21 июля 2009

Мне также интересен ответ, но я скажу вам то, что мне сказали, когда я пытался найти решение.

Самый простой способ - использовать что-то вроде базы данных SQL. Если нужные вам данные не подходят для этого, вы можете при каждом доступе к странице записывать свой собственный файл журнала, а затем периодически объединять файлы журнала.

Однако я уверен, что есть лучшее решение.

...