Справочная информация: Я занимаюсь разработкой программного приложения, которое считывает миллионы или намного больше файлов и либо конвертирует, либо просто анализирует эти файлы.Часть требований состоит в том, чтобы построить масштабируемую и распределенную систему так, чтобы чтение и анализ могли масштабироваться соответственно.
По сути, минимально подробный список имен файлов - это одна БД, и клиенты должны получить доступ к списку, чтобы знать, какие файлы нужныбыть проанализированным / преобразованным следующим.Файлы снова находятся на другом сервере / месте.Несмотря на то, что большинство частей разработано, одна важная часть, которая нуждается в пересмотре, - это схема передачи имен файлов различным клиентам.
У меня есть два варианта:
Разработайте единый сервис, который будет расположен рядом с БД и направляет все запросы к именам файлов и передает клиентам.Таким образом, в этом случае клиенты общаются со службой (предопределенным протоколом / форматом) и получают список.
Разработка клиентов для непосредственного общения с БД и осуществления синхронизации / канализации в клиентах.
Мое единственное беспокойство по поводу первого варианта - это масштабируемая архитектура / дизайн?Кто-нибудь имел дело с таким обстоятельством в масштабируемой архитектуре, когда один ресурс становится критическим при масштабировании (в моем случае это может быть один сервис, обслуживающий / обслуживающий всех клиентов)