Недостатки NIO в ActiveMQ - PullRequest
5 голосов
/ 19 мая 2011

Я работал над настройкой брокера ActiveMQ, и одна вещь, которая меня смущает, заключается в том, что все, что я прочитал, описывает NIO как «хороший выбор, если вам нужно масштабировать», или «что-то, на что можно посмотреть, если вам нужно». больше скорости », поэтому мой вопрос: почему они просто не говорят« всегда используйте NIO »? Все, что я прочитал, это преимущества, но, вероятно, есть причины не использовать его (иначе это будет просто по умолчанию). Что они?

Ответы [ 2 ]

3 голосов
/ 24 мая 2011

Сложность.Обычно проще создать код для 1 потока на соединение.

Кроме того, я думаю, что NIO может быть немного медленнее в случае небольшого объема (1, 2, 3 соединения).Как правило, вы не спроектируете систему, которая бы хорошо работала в случае небольшого объема ... но если вы знаете, что у вас никогда не будет> 2 подключений для приложения ... возможно, NIO излишне / действительно вреден.

3 голосов
/ 20 мая 2011

Транспорт NIO масштабируется лучше, потому что он более эффективен и не порождает поток на соединение.Кроме того, транспорт NIO расширяет транспорт TCP, поэтому все параметры для основного сокета все еще применяются.Насколько мне известно, нет недостатка в использовании NIO, потому что в целом он должен быть более эффективным, чем транспорт TCP.Нет веских причин, чтобы я мог вспомнить, что NIO не является транспортом по умолчанию.

...