У меня есть этот вопрос, я просто бросаю его туда. Я реализую небольшую функцию ведения журнала для моего сервера REST API, основанного на Spring, для регистрации всех запросов. Я ожидаю, что 1000 пользователей будут использовать этот API, поэтому с блокирующим регистратором ввода-вывода он будет замедлять все. У меня есть два подхода к решению проблемы: 1. Имейте асинхронный регистратор, используя arrylist в памяти. затем используйте планировщик весны, чтобы периодически обновлять его до файла журнала. 2. Используйте JMS и отправьте журналы в очередь. Пусть очередь обрабатывает журнал асинхронно.Асинхронный регистратор весной
Кто-нибудь сделал это раньше весной. Хотя я для варианта 2, есть ли лучшие способы сделать это? Нужна консультация экспертов. Всем спасибо !
Дополнительная информация - Я думаю, что синхронное ведение журнала будет шеей бутылки, потому что этот REST API потребляется приложением RoR переднего конца. Таким образом, один сеанс пользователя определенно приведет к появлению 100-секундных вызовов API очень часто. Я регистрирую фактический запрос вместе с JSON, отправленным в POST.
Почему бы не использовать готовое решение? Вы хотите, чтобы плотник построил свой собственный молоток, подделал себе гвоздь и сшил свой собственный инструментальный инструмент, или вы хотите, чтобы он сосредоточился на строительстве дома с помощью инструментов, построенных хорошо зарекомендовавшими себя компаниями, использующими годы существующих исследований и разработок? – jmort253
Я сомневаюсь, что синхронное ведение журнала окажется узким местом. Обычно, если это замедляет работу, вы должны просто уменьшить количество протоколирования. Вот почему есть уровни DEBUG, INFO и т. Д. – artbristol
Спасибо, ребята. просто обновил quesiton по поводу того, почему я считаю, что синхронизация журнала будет узким местом. – gotz