Каков наилучший подход для построения системы с большим объемом передачи данных?

Привет

У меня есть сервер кэширования (написанный на Java+Lucene Framework), который хранит большой объем данных и предоставляет их в соответствии с запросом запроса.

Это в основном работает так:

  1. При запуске он подключает БД и сохраняет все таблицы в ОЗУ.
  2. Он слушает запросы и предоставляет правильные данные в виде списков массивов (около 1000 - 20000 строк).
  3. Когда пользователь заходит на веб-страницу, он подключается к серверу кеша, запрашивает и показывает ответ сервера.

Я планировал запускать веб-приложения и приложения для кеширования из-за проблем с памятью. Сервер кэширования работает как служба, а сеть находится на Tomcat.

Что вы предлагаете о том, как должна быть организована связь между веб-сайтом и сервером кеша?

Мне нужно передать большой объем данных со списками массивов из одного экземпляра в другой. Стоит ли думать о веб-сервисах (обмен данными в формате xml), обмене данными через сокеты nio (возможно, Apache MINA) или решениях типа CORBA?

Благодарю.

1 ответ

Это действительно очень зависит от соображений, которые вы не указали.

  1. Какие клиенты? например, если ваши клиенты используют JavaScript, работающий с AJAX, очевидно, что что-то через HTTP более полезно, чем проприетарное решение UDP.
  2. В какой сети он работает? Локальные сети ведут себя не так, как интернет, а мобильный интернет совершенно отличается от обоих.
  3. Насколько тщательно вы можете использовать кеширование? Если вы используете HTTP, вы можете иметь довольно хороший контроль (через заголовки HTTP) как клиентского, так и сетевого кэшей, а также множество существующих программ, которые могут использовать оба.

Есть много других соображений, которые необходимо принять во внимание, и существует много существующих реализаций систем, соответствующих более распространенным потребностям. Из вашего (не очень подробного) описания, которое вы дали, я бы порекомендовал взглянуть на Redis.

Другие вопросы по тегам