网站建设案例模板下载武威 网站开发
2026/1/21 13:39:59 网站建设 项目流程
网站建设案例模板下载,武威 网站开发,网站建设实验报告,推广商Linux非常的安全、可靠#xff0c;而且有一股黑黝黝的妹子味道#xff0c;这说明她也是柔软的。把服务跑在Linux上#xff0c;就像男生把女装藏在密码箱里一样让人放心#xff0c;它的稳定安全可以让人安稳的睡个懒觉。SPOF#xff0c;是著名的单点问题。鉴于xjjdog非常讨…Linux非常的安全、可靠而且有一股黑黝黝的妹子味道这说明她也是柔软的。把服务跑在Linux上就像男生把女装藏在密码箱里一样让人放心它的稳定安全可以让人安稳的睡个懒觉。SPOF是著名的单点问题。鉴于xjjdog非常讨厌卖弄缩写名词的特点我把它的全称打在这里single point of failure。一台Linux是孤单一台Linux所以跑在上面的服务就会有单点问题。解决单点问题通常可以通过集群也可以通过奢侈的影子节点来达到这个目的。但无论怎么搞我们都希望跑在Linux上的某个进程能够随着Linux的启动自动启动随着Linux的关闭自动关闭。我们希望自己的应用程序就像是Linux的血肉一样就像是安装在Linux的心脏里。准备程序很长一段时间里我使用supervisor来做这种事情。但可惜的是supervisor并不是Linux的预装软件而且它是python写的需要装一大堆依赖包。在网络权限逐渐收紧的企业环境中使用supervisor会给自己徒添烦恼。是的并不是supervisor不好只不过它太麻烦。频繁的网络权限申请让人抓狂甚至喧宾夺主。退而求其次那就是systemd。为了说明怎么使用它我们准备一段小小的Java程序。import com.sun.net.httpserver.HttpContext; import com.sun.net.httpserver.HttpServer; import java.io.OutputStream; import java.net.InetSocketAddress; public class Runner { public static void main(String[] args) throws Exception{ HttpServer server HttpServer.create(new InetSocketAddress(14000), 0); HttpContext context server.createContext(/); context.setHandler(exchange - { try { String response Ojbk!; exchange.sendResponseHeaders(200, response.getBytes().length); OutputStream os exchange.getResponseBody(); os.write(response.getBytes()); os.close(); } catch (Exception ex) { ex.printStackTrace(); } }); server.start(); } }这段代码将在14000端口开启一个Http服务器每当你访问它的时候它都会输出Ojbk。curl http://localhost:14000把程序搞成服务要想让上面的程序成为系统的一部分需要将其服务化。[Unit] DescriptionMy First Java Service Afternetwork.target StartLimitIntervalSec0 [Service] Typesimple Restartalways RestartSec1 Userroot ExecStart/usr/bin/env java /opt/Runner [Install] WantedBymulti-user.target比较重要的就是ExecStart它配置了你确切要执行的命令我们这里当然是一个简单的class文件。给这个文件起一个名字吧比如xjjdogfirstjava.service然后把文件扔进/etc/systemd/system/目录里。要启动这个服务的话直接执行下面的命令就好了。systemctl start xjjdogfirstjava如果你找不到刚刚创建的服务记得reload一下。systemctl daemon-reload如果你想要它随着Linux启动的话可以执行enable创建一个链接就可以了。systemctl enable xjjdogfirstjava除了这两者disable、stop、restart也是标配的指令。注意到配置文件里有这么2行内容。Restartalways RestartSec1它表明每当程序异常终止的时候都会自动重启这个进程重启的间隔是1秒。更多一些的配置我们注意到上面的配置文件里有Afternetwork.target字样。它表明当MySQL启动完毕的时候才会启动xjjdogfirstjava服务也就是强行指定了一个依赖关系。但很多小伙伴在使用上面配置的时候经常发现服务自动重启几次之后就再也不会再重启了。等等我们不是使用了Restartalways参数么这是由于systemd默认内置了两个阈值。StartLimitBurst5 StartLimitIntervalSec10当你把StartLimitIntervalSec设置成0的时候目的就总算达到了我们的程序可以一直一失败一直重启下去。虽然这样保持一个重启间隔是一个比较好的习惯。因为大多数服务重启的时候都会造成服务器资源的上升如果你不想让你的服务器报警那就不要这么压迫它。End这就是systemd一个Linux内置的程序。有了它你的应用程序终于能够和Linux合为一体天荒地老的伴随下去了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询