Вы используете AWSDBProxy? Есть ли снижение производительности при масштабировании? - PullRequest
0 голосов
/ 02 февраля 2009

После отрицательного голосования я смиренно понял, что мой пост был огромным разглагольствованием . Поэтому я отредактировал это и подвел итог только к вопросу, который я действительно хотел бы знать. Я прошу прощения за мои дерзкие комментарии до этого редактирования;)

Похоже, что единственные учебные пособия, в которых говорится об использовании Amazon SimpleDB на сайте rails, используют AWSDBProxy ... Лично я считаю это нелогичным для масштабирования, учитывая расположение сервера типичного сайта Rails ниже (используя AWSDBProxy):

Плагин здесь: http://agilewebdevelopment.com/plugins/aws_sdb_proxy

Изображение здесь: http://www.freeimagehosting.net/uploads/91be4e0617.png

Как видите, даже если мы добавим больше дворняжек, у нас есть две проблемы.

  1. У нас есть единственная точка отказа, гораздо менее стабильная, чем у нашего балансировщика нагрузки
  2. Мы должны передать всю нашу информацию через этот WEBrick сервер

Решение, конечно, состоит в том, чтобы добавить больше AWSDBProxies ... но почему бы тогда просто не использовать следующий код, скажем, в классе, пропуская прокси все вместе?

service = AwsSdb::Service.new(Logger.new(nil),
                                CONFIG['aws_access_key_id'],
                                CONFIG['aws_secret_access_key'])
service.query(domain, query)

Итак, что я имею в виду, если вы используете AWSDBProxy, что вы оправдываете? И если вы действительно используете его, какова ваша производительность? Если у вас есть жесткие цифры, это будет еще более ценно!

Спасибо!

1 Ответ

1 голос
/ 02 февраля 2009

Я им не пользуюсь и никогда о нем не слышал, но я думаю, что это разумные причины.

  1. Вы используете свой главный сервер приложений на EC2, поэтому вероятность интернет-сбоя на самом деле не влияет на вас более одного раза.
  2. Вы запускаете один прокси на каждом из ваших серверов приложений. Таким образом, разрыв соединения не хуже, чем разрыв соединения с базой данных.
  3. Потому что это можно сделать. Это такая же веская причина, как и любая другая в проекте с открытым исходным кодом. Иногда нужно что-то построить, прежде чем вы поймете, является ли эта вещь хорошей / плохой идеей.
  4. У вас нет уровней трафика, для которых нужен балансировщик нагрузки. Тогда ваша диаграмма сжимается до линии, если не одной машины.
...