Создание обратного прокси - PullRequest
2 голосов
/ 24 июня 2011

Я создаю обратный прокси с нуля.Требования:

1) Супер масштабируемый.Он должен обрабатывать много одновременных запросов (также потоковая передача, 1000 запросов в секунду будет хорошей производительностью в моем случае)2) Супер быстрая (без блокировки).3) Нет C / C ++ или Erlang4) Простота в обслуживании - даже если бы это было так, сборка не вариант:)

После некоторых исследований большинство людей предлагают использовать node.js или Scala - что, по вашему мнению, является лучшим решениемтакая работа?Какие технологии вы бы использовали для создания такого прокси?

Спасибо

Ответы [ 3 ]

4 голосов
/ 24 июня 2011

Лично я бы сначала попробовал этого парня .

Просто для пояснения, люди, которые сказали "попробуй node.js или Scala", слегка ошибаются в том, что Scala - как Java - просто язык программирования, тогда как node.js - это большая часть платформы. Помимо общих преимуществ, Scala предлагает для этого проекта:

  1. Сочный синтаксис, облегчающий написание систем акторов в виде библиотек, а именно «литералов» PartialFunction:

    trait NeedsAPF {
      def pf: PartialFunction[Any,Unit]
    }
    
    object PFHaver extends NeedsAPF {
      def pf = {
        case i: Int => println("I got an int and it was " + i)
      }
    }
    
  2. Когда вы будете к этому готовы, плагин продолжений , который позволяет писать код, который выглядит синхронно, но может быть асинхронным под оболочкой.

0 голосов
/ 24 июня 2011

Я бы посмотрел на: https://github.com/nodejitsu/node-http-proxy, поскольку он удовлетворяет всем вашим требованиям. Я не уверен, почему нужно создавать его с нуля, но, полагаю, если вы решите построить его в ноде, вы, по крайней мере, можете черпать вдохновение из этого.

0 голосов
/ 24 июня 2011

Scala должен быть достаточно хорош, но вам нужно будет много использовать NIO, что означает, что вы, вероятно, будете в тесном контакте с библиотекой NIO Java.Я не знаю, поможет ли вам в этом какая-либо из библиотек, доступных в Scala, но, опять же, ваша задача - искать ее, а не мою.: -)

...