java 部署springweb项目到两台服务器上,防止其中一台服务器挂了,另一台服务器顶上。

java 部署springweb项目到两台服务器上,防止其中一台服务器挂了,另一台服务器顶上。,第1张

楼主的这种情况,需要用到服务器集群、负载均衡相关技术。实现集群有两种方式,一是一台机器里面安装两个服务器软件,同时开启软件实现集群;二是多台机器安装同一款服务器软件或者不同的服务器软件实现集群。不同的服务器和不同的操作系统有不同的集群配置,这些干货CSDN上非常多,你上去搜。

JAVA程序在开发完成后,需要部署到服务器,如果是WEB项目,需要部署到WEB服务器,否则部署到应用服务器。

JAVA是跨平台的编程语言,服务器的操作系统可以是Windows、Linux或者其它,下面将在RedHat6操作系统下,详细说明JAVA程序在WEB服务器和应用服务器上的部署情况。

1、JAVA程序部署在应用服务器

(1) JAVA程序HelloWorld 在Redhat6上部署的目录结构

bin : 存放shell脚本run.sh

conf :存放配置文件log4j.properties

lib :存放JAR包HelloWorld.jar、log4j-1.2.16.jar

logs:存放程序运行日志文件log.log

(2)编写测试类HelloWorld.java 并打成JAR包HelloWorld.jar

package com.test

import org.apache.log4j.Logger

import org.apache.log4j.PropertyConfigurator

public class HelloWorld {

private static Logger log = Logger.getLogger(HelloWorld.class)

public static void main(String[] args) {

try{

//log4j.properties变量的值在脚本bin/run.sh 中读取

String config = System.getProperty("log4j.properties")

if (config != null) {

PropertyConfigurator.configure(config)

}

log.info("HelloWorld")

Thread thread = new Thread(){

public void run(){

while(true){

try {

Thread.sleep(5*1000)

log.info("每隔5秒打印一下日志")

} catch (InterruptedException e) {

e.printStackTrace()

log.error(e.getMessage())

}

}

}

}

thread.run()

} catch (Exception e) {

log.error("[X]启动失败:"+e.getMessage())

System.exit(1)

}

}

}

每个项目一个表空间,这不会出问题。主要是3个项目最后打包的东西所用到的第三方提供的 jar 类库的共享问题。如果大家用相同的 jar 就尽量用同一个版本,如果没办法做到用同一个版本就尽量把它们放到自己的 ear 里面或 WEB-INF/lib 下面,不能直接把同一个 api 的不同版本同时放到服务器的 lib 目录下。

ear 本身是一个 zip 格式,它可以包括 ejb 的 jar, war 之类的,另外还可以把第三方的 spring.jar,hibernate.jar 之类的也放在里面,然后你的 ejb 源文件夹的 META-INF/MANIFEST.MF 里面的 Class-Path: spring.jar hibernate.jar 这样用相对位置来引用第三方 jar 就可以了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/728207.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-10
下一篇2023-08-10

发表评论

登录后才能评论

评论列表(0条)

    保存