首页 > 解决方案 > 如何部署 Netty 服务器?

问题描述

我开发了一个 Netty 应用程序,它允许从各种设备通过 TCP 进行连接。但是,我不完全确定部署应用程序以供生产使用的最佳方式是什么。现在我将它打包在一个 JAR 文件中并在目标服务器上运行一个屏幕会话,如下所示:

screen -S Nettyjava -jar  Server-Netty.jar

这是推荐的部署方式还是 screen 是最好的选择?

标签: deploymentnetty

解决方案


screen不是在生产中运行服务的正确工具。如果系统必须重新启动,您将不得不手动重新启动服务。在大多数当前的 linux 发行版上,您可以使用systemd 服务单元文件来处理这个问题。这允许您定义工作目录、用户、要运行的命令...这是取自 Unix & Linux StackExchange 问题configure java daemon with systemd的示例

[Unit]
Description=Some job
After=network.target

[Service]
WorkingDirectory=/home/user/tmp/testout
SyslogIdentifier=SocketTest
ExecStart=/bin/sh -c "exec java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar"
User=dlt
Type=simple

[Install]
WantedBy=multi-user.target

一个好的做法是创建一个特定的用户来运行服务并限制他在文件系统上的权利。


推荐阅读