Aar*_*uce 12 java linux daemon
这将是一个网络应用程序,它将始终(或尽可能地管理)在给定端口上进行侦听.
我对Java很新,对非Web服务器端编程也很陌生,所以我希望从我的假设和初步计划中获得社区的反馈.
我已经阅读了关于jsvc(http://commons.apache.org/daemon/jsvc.html)的信息,目前我正在假设这是在java中为linux盒子编写守护进程的"最佳"方式(可能运行centOS).
可以将nagios配置为监视我的守护程序是否正在运行,并在不执行时提醒我或系统管理员吗?(我假设是的,但我不是一个非常有才华的系统管理员类型)
这将是一个SMPP客户端应用程序(或我猜的ESME应用程序),这就是为什么我选择Java,因为它似乎是一个非常成熟的SMPP平台.但是,我知道在C/C++中编写一个守护进程更"传统".使用现代Java,执行相当简单的任务,我是否可能遇到任何重大缺点?
管理新构建部署的最佳方法是什么?只需停止守护进程并尽快更换二进制文件并重新启动?
任何其他输入将不胜感激.
Gra*_*ray 20
如何编写具有24/7正常运行时间的Java守护程序...
我们在Linux服务器上运行了许多24/365应用程序,只需调用Java,如下所示:不需要任何C包装器:
nohup java -D... -X... -jar something.jar ... < /dev/null > output.log 2>&1 &
Run Code Online (Sandbox Code Playgroud)
这将使jar在background(nohup ... &)中运行而没有input(< /dev/null),输出(stdout和stderr)被重定向到logfile(> output.log 2>&1).我们已经分布了日志记录基础结构,但仍然需要一些控制台输出(例如线程转储).这些应用程序可以运行数月,直到我们升级它们.
可以将nagios配置为监视我的守护程序是否正在运行,并在不执行时提醒我或系统管理员吗?
在监控方面,您可以做很多事情.Nagios希望有一个JMX插件来测试jconsole显示的信息.那里还有许多原生JMX日志记录和监视实用程序.我们有内部绿色/黄色/红色指示灯,可以使用JMX上拉并轻松检查.我还从每个应用程序导出了一个简单的JMX/HTTP服务,以提供状态信息,使第三方监控工具可以轻松检测故障.
这将是一个SMPP客户端应用程序(或我猜的ESME应用程序),这就是为什么我选择Java,因为它似乎是一个非常成熟的SMPP平台.
我猜你的意思是SMPP?如果是这样,那么我认为Java没有理由不能做好.我们的应用程序实时执行各种HTTP,UDP,SMTP,JDBC,LDAP和其他协议.我们在批次中使用Jgroups,它使用Java完成经过验证的完整加密的网络堆栈.
管理新构建部署的最佳方法是什么?只需停止守护进程并尽快更换二进制文件并重新启动?
在动态替换正在运行的二进制文件方面,它更复杂.我们预先设有VIP,并在休闲时更换二进制文件.我们的内部协议旨在实现故障转移.如果你没有VIP,那么要考虑的一件事就是有序的交接.你启动新的jar,当它准备好绑定到新端口时,它会与运行旧jar的应用程序进行通信.然后旧的应用程序解除绑定,然后新的应用程序立即绑定.这样的事情.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
14518 次 |
| 最近记录: |