Каковы потери производительности Apache ActiveMQ по сравнению с необработанными сокетами? - PullRequest
2 голосов
/ 16 февраля 2012

Мы стремимся внедрить ActiveMQ для обработки сообщений между двумя нашими серверами в географически разнообразной среде (от Австралии до Великобритании и обратно через Интернет).

Я искал некоторыенеопределенные показатели производительности по сети, но пока что не повезло.

Мой вопрос: по сравнению с реализацией обычной передачи сообщений TCP / SSL, как будет работать ActiveMQ?Подобные собственные системы могут отправлять и получать сообщения по всей Австралии в течение 100-150 мс, через уровень SSL с уже установленным соединением.

Кроме того, ActiveMQ сохраняет свои соединения TLS / SSL, сохраняя тем самым значительное количествовремя, которое уже будет использовано при создании / разрыве соединения?

Я надеюсь, что он будет по крайней мере работать лучше, чем HTTPS, на уровне запроса.

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

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

Спасибо.

1 Ответ

3 голосов
/ 20 февраля 2012

Тим имеет в виду, что это не сравнение яблок с яблоками.Если вы заинтересованы исключительно в производительности одного-двухточечного соединения для передачи данных, прямая ссылка даст вам хороший результат (хотя «сделай сам» все еще является сомнительным дизайнерским решением).Если вы строите систему, которая требует передачи данных, и у вас есть более сложные функциональные требования, тогда вступит в действие платформа обмена сообщениями на основе брокера, такая как ActiveMQ.

Вы должны рассмотреть возможность обмена сообщениями через брокера, если хотите:

  • система в стиле почтового отделения, в которой производитель отправляет сообщение и знает, что оно будет использовано в определенный момент,даже если в это время нет ни одного потребителя
  • , чтобы не заботиться о том, где находится получатель сообщения или сколько их существует
  • , это гарантия того, что сообщение будет использовано, даже еслиесли потребитель, который первым обработал его, умирает в середине процесса (транзакции, повторная доставка)
  • многих потребителей, с гарантией того, что сообщение будет использовано только один раз - в очереди
  • многих потребителей, которыекаждый из них будет реагировать на одно сообщение - темы

Эти шаблоны довольно стандартны и применяются ко всем готовым продуктам для обмена сообщениями.Как правило, DIY в этом домене - плохая идея, так как обмен сообщениями сложен (см. http://www.ohloh.net/p/activemq/estimated_cost для оценки того, сколько времени вам потребуется, чтобы сделать то же самое);и имеет много существующих реализаций различных разновидностей (некоторые без брокера), которые все хорошо используются, коммерчески поддерживаются и не требуют, чтобы вы поддерживали их.Я бы очень серьезно подумал, прежде чем переходить на уровень TCP для любого вида передачи данных, так как существует так много предшествующего уровня техники.

...