Каковы преимущества и недостатки использования Nailgun против netcat для обеспечения быстрого CLI для Java-приложения? - PullRequest
4 голосов
/ 28 октября 2010

Способы сокращения времени запуска приложений Java и Scala уже обсуждались здесь и здесь . Одним из предложенных решений было использование клиент-серверного подхода с Nailgun или простым рукописным сервером, связывающимся через сокет TCP с netcat .

С одной стороны, Nailgun предназначен для этой цели. С другой стороны, последний выпуск 0.7.1 был в 2005 году, и я немного волнуюсь, остановилась ли разработка и насколько она стабильна. Netcat кажется довольно стандартным инструментом и доступен во многих системах Linux / Unix. Но обе эти системы являются новыми для меня, поэтому я хотел бы знать, верны ли мои наблюдения и каковы другие преимущества и недостатки использования Nailgun против netcat для обеспечения быстрого интерфейса командной строки для приложения Java?

* * 1012 P.S. Вы можете задаться вопросом, зачем улучшать время запуска, поскольку оно уже вполне разумно (~ 100 мс на моей машине) или почему бы не использовать, скажем, C / C ++. Во-первых, потому что приложение будет выполняться много раз (например, из цикла в скрипте bash), и этот сценарий использования не может быть изменен, к сожалению, во-вторых, потому что эта консольная программа будет просто альтернативным интерфейсом (CLI) для существующей части программного обеспечения, написанного на Java.

Ответы [ 3 ]

4 голосов
/ 28 октября 2010

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

Если вы подтвердили, что узким местом является время запуска, вы можете внедрить очень простой клиент / сервер с тем преимуществом, что вы можете свободно использовать любую коммуникационную программу (netcat, wget, curl, perl и т. Д.) И иметь полную контроль над протоколом.

3 голосов
/ 28 октября 2010

"Перед тем, как загрузить его, имейте в виду, что он небезопасен. Даже не близко. Хотя есть средства для обеспечения того, чтобы клиент был подключен к серверу с локальной машины, пока еще нет понятия" пользователь " . Любые программы, запускаемые в Nailgun, запускаются с теми же разрешениями, что и сам сервер. Вы были предупреждены. "

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

0 голосов
/ 04 мая 2015

Nailgun работает хорошо, и Netcat тоже хорошо работает.Я использовал оба.Netcat подходит для любых программ, а не только для Java.Его можно использовать для выполнения, скажем, сценариев завершения работы в вашей локальной сети.Для Windows вам может понадобиться использовать Nailgun.

...