Это будет сетевое приложение, которое всегда (или почти всегда, как я могу управлять) прослушивать на данном порту.Как написать Java-демона
Я довольно новичок в Java и очень новичок в программировании на стороне сервера, поэтому я хотел бы получить отзывы от сообщества о моих предположениях и предварительных планах.
Я читал о jsvc (http://commons.apache.org/daemon/jsvc.html) и в настоящее время работает, исходя из предположения, что это «лучший» способ написать демон в java для окна Linux (вероятно, работает centOS).
Может ли nagios быть настроен для мониторинга того, работает ли мой демон, и предупредить меня или администратора sys, когда это не так? (Я предполагаю, что да, но я не очень талантливый тип администратора sys)
Это будет клиентское приложение SMPP (или приложение ESME, которое я думаю), поэтому я выбрал Java, поскольку он кажется очень зрелая платформа для SMPP. Тем не менее, я знаю, что более традиционно писать демона в C/C++. С современной Java, выполняя довольно несложные задачи, могу ли я столкнуться с какими-либо серьезными недостатками?
Каков наилучший способ управления развертыванием новых сборок? Просто остановите демона и как можно быстрее замените двоичный файл и перезапустите его?
Любые другие материалы были бы весьма полезными.
В документе * jsvc * doc говорится, что он позволяет приложению (например, Tomcat) выполнять какое-либо приложение как root (например, привязать к порту <1024), а затем снизить привилегии приложения. Я, честно говоря, не люблю позволять работать как root. То, как я привязываюсь к порту <1024, работает как не-root и выполняет перенаправление брандмауэра, например: * «iptables -t nat -I PREROUTING -p tcp -dport 80 -j REDIRECT - to-ports 8080 «* Обратите внимание, что вы также можете ** использовать такой трюк, чтобы развернуть новый демон * без необходимости« останавливать демона и как можно быстрее заменить двоичный файл »[sic] .... * (продолжение следует) * – TacticalCoder
Если вы привязаны к уникальной машине, вы можете использовать следующий трюк: оставьте «старый» демон (скажем, на порт 8080, из которого 80 перенаправляются), затем разверните новый демон (скажем, на порт 8081). Проверьте, что все работает нормально, и как только вы убедитесь, что ваш новый демон хорош, просто измените перенаправление портов 80-> 8080 на 80-> 8081. Единственный раз, когда требуется * root *, необходимо изменить перенаправление брандмауэра. В Unix-подобных системах вы можете установить Java и Tomcat без необходимости входить в систему как * root * (если вы не используете никаких * .deb * или * .rpm * пакетов). – TacticalCoder
Я думаю, что вы правы в jsvc, и ваше предложение о перенаправлении портов является удивительным, и я, скорее всего, сделаю это. Благодаря! –