Как Google обслуживает результаты так быстро? [Дубликат]

Хотя предлагаемое решение работает нормально, есть еще один способ вернуть массив байтов из контроллера с корректно отформатированным откликом:

  • В запросе установите заголовок «Accept: application / octet-stream ".
  • На стороне сервера добавьте форматтера медиафайлов для поддержки этого типа mime.

К сожалению, WebApi не содержит форматера для« application / октет-поток». В GitHub реализована реализация: BinaryMediaTypeFormatter (есть небольшие адаптации, чтобы заставить его работать для webapi 2, изменены сигнатуры методов).

Вы можете добавить этот форматтер в свою глобальную конфигурацию :

HttpConfiguration config;
// ...
config.Formatters.Add(new BinaryMediaTypeFormatter(false));

WebApi теперь должен использовать BinaryMediaTypeFormatter, если запрос указывает правильный заголовок Accept.

Я предпочитаю это решение, потому что контроллер действия, возвращающий байт [], более удобен для контрольная работа. Хотя другое решение позволяет вам больше контролировать, если вы хотите вернуть другой тип контента, чем «application / octet-stream» (например, «image / gif»).

11
задан Neil Aitken 20 August 2009 в 08:26
поделиться

2 ответа

Я думаю, что основная причина производительности внешнего интерфейса заключается в следующем:

  • Каждый запрос распределяется на несколько машин параллельно (я где-то читал, что каждый запрос попадает примерно на 12 машин ), вероятно, одна машина собирает ответы от этих машин
  • Все данные индекса хранятся в ОЗУ. Под индексными данными я имею в виду термин словарь и индекс списка сообщений, а в случае Google, вероятно, гораздо больше индексов, например, для исправлений орфографии. Даже с одним дисковым вводом-выводом где-то задержка поиска диска препятствует такой производительности.

Googles Map / Reduce, GFS - отличные инструменты для фоновой обработки, но они не имеют ничего общего с производительностью внешнего интерфейса.

9
ответ дан 3 December 2019 в 08:30
поделиться

Map and Reduce + огромный распределенный центр обработки данных.

5
ответ дан 3 December 2019 в 08:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: