如何编译安装xxl-job服务器

xxl-job是一种轻量级的分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。本文将介绍如何在CentOS中编译和安装xxl-job服务器。

一、环境描述

1. 宿主机

  • CPU:单核
  • 内存:2 GB
  • 硬盘:120 GB
  • IP:192.168.190.129
  • 操作系统:CentOS 6.9 x86_64 Minimal

2. Nginx

  • 版本:1.12.2-1.el6.ngx

3. MySQL

  • 版本:5.7.21-1.el6

4. Tomcat

  • 版本:apache-tomcat-9.0.7

5. Maven

  • 版本:3.5.2-1.el6

6. xxl-job

  • 版本:v1.9.1

二、安装Nginx

1. 导入Nginx镜像源

在shell中运行以下命令,导入Nginx的官方镜像源和密钥:

cat > /etc/yum.repos.d/nginx.repo << "EOF"
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
EOF
rpm --import http://nginx.org/keys/nginx_signing.key

2. 安装Nginx

在shell中运行以下命令,通过yum安装Nginx:

yum install -y nginx

3. 启动Nginx服务

在shell中运行以下命令:

service nginx start

三、安装MySQL

1. 导入MySQL镜像源

在shell中运行以下命令,导入MySQL的官方镜像源:

rpm -ivh https://repo.mysql.com//mysql57-community-release-el6-11.noarch.rpm

2. 安装MySQL

在shell中运行以下命令,通过yum安装MySQL:

yum install -y mysql-community-server

3. 启动MySQL服务

在shell中运行以下命令,启动MySQL服务:

service mysqld start

4. 修改初始密码

在shell中运行以下命令,修改初始登录密码,然后开启远程登录权限:

init_passwd=$(sed -rn 's/^(.*)(root@localhost: )(.*)$/\3/p' /var/log/mysqld.log)
mysql --user=root --password=${init_passwd} --connect-expired-password --execute="ALTER USER 'root'@'localhost' IDENTIFIED BY '123.Org$%^';"
mysql --user=root --password=123.Org$%^ --execute="GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123.Org$%^' WITH GRANT OPTION;"
mysql --user=root --password=123.Org$%^ --execute="FLUSH PRIVILEGES;"

四、安装Tomcat

1. 导入epel镜像源

在shell中运行以下命令,导入第三方的epel镜像源:

yum install -y epel-release

2. 安装依赖包

在shell中运行以下命令,安装Tomcat的依赖包:

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel gcc autoconf wget

3. 下载和安装Tomcat

在shell中运行以下命令,下载Tomcat的二进制包,然后解压缩安装:

cd /root/Downloads
wget http://mirrors.advancedhosters.com/apache/tomcat/tomcat-9/v9.0.7/bin/apache-tomcat-9.0.7.tar.gz
tar xvzf apache-tomcat-9.0.7.tar.gz
rm -rf apache-tomcat-9.0.7.tar.gz
mv apache-tomcat-9.0.7 /usr/local/tomcat

4. 配置环境变量

在shell中运行以下命令,配置JAVA_HOMECATALINA_HOME环境变量:

sed -i '$a\export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-3.b14.el6_9.x86_64' /etc/profile
sed -i '$a\export CATALINA_HOME=/usr/local/tomcat' /etc/profile
source /etc/profile

5. 编译安装jsvc

在shell中运行以下命令,编译安装jsvc:

cd /usr/local/tomcat/bin && tar xvfz commons-daemon-native.tar.gz
cd /usr/local/tomcat/bin/commons-daemon-1.1.0-native-src/unix/ && ./configure && make
cp /usr/local/tomcat/bin/commons-daemon-1.1.0-native-src/unix/jsvc /usr/local/tomcat/bin/

6. 启动Tomcat服务

在shell中运行以下命令,启动Tomcat服务:

/usr/local/tomcat/bin/jsvc -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -outfile /usr/local/tomcat/logs/catalina.out -errfile /usr/local/tomcat/logs/catalina.err -Dcatalina.home=/usr/local/tomcat -Dcatalina.base=/usr/local/tomcat -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties org.apache.catalina.startup.Bootstrap

五、安装Maven

1. 导入Maven镜像源

在shell中运行以下命令,导入Maven镜像源:

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

2. 安装Maven

在shell中运行以下命令,安装Maven:

yum install -y apache-maven

六、编译xxl-job源码

1. 安装Git客户端

在shell中运行以下命令,安装Git客户端:

yum install -y git

2. 克隆代码库

在shell中运行以下命令,克隆代码库至本地目录:

cd /root/Downloads
git clone https://github.com/xuxueli/xxl-job.git

3. 初始化数据库

在shell中运行以下命令,初始化数据库:

mysql --user=root --password="123.Org$%^" < xxl-job/doc/db/tables_xxl_job.sql

4. 修改应用配置

在shell中运行以下命令,修改应用配置,包括数据库密码、通知邮件账号和密码:

cd /root/Downloads/xxl-job/xxl-job-admin/src/main/resources
sed -i "5s/xxl.job.db.password=root_pwd/xxl.job.db.password=123.Org$%^/g" xxl-job-admin.properties
sed -i "10s/xxl.job.mail.username=ovono802302@163.com/xxl.job.mail.username=xxxx@163.com/g" xxl-job-admin.properties
sed -i "11s/xxl.job.mail.password=asdfzxcv/xxl.job.mail.password=password/g" xxl-job-admin.properties

请根据实际情况,设置真实的数据库的账号和密码,以及通知邮件的账号和密码。

5. 编译源码

在shell中运行以下命令,编译xxl-job服务器的源码:

cd /root/Downloads/xxl-job
mvn clean package

编译完成之后,会得到一个名为xxl-job-admin-1.9.2-SNAPSHOT.war的打包文件,可以把这个文件备份在其他地方,便于以后制作Docker镜像时使用。

七、部署xxl-job服务器

1. 拷贝war包

在shell中运行以下命令,将编译的war包拷贝至Tomcat的应用目录:

cp /root/Downloads/xxl-job/xxl-job-admin/target/xxl-job-admin-1.9.2-SNAPSHOT.war /root/Downloads/xxl-job.war
cp /root/Downloads/xxl-job.war /usr/local/tomcat/webapps/

2. 配置Tomcat

在shell中运行以下命令,设置Tomcat的应用路径:

sed -i '150a\          <Context path="/" docBase="/usr/local/tomcat/webapps/xxl-job"></Context>' /usr/local/tomcat/conf/server.xml

3. 重启Tomcat服务

在shell中运行以下命令,重启Tomcat服务:

/usr/local/tomcat/bin/jsvc -stop org.apache.catalina.startup.Bootstrap
/usr/local/tomcat/bin/jsvc -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -outfile /usr/local/tomcat/logs/catalina.out -errfile /usr/local/tomcat/logs/catalina.err -Dcatalina.home=/usr/local/tomcat -Dcatalina.base=/usr/local/tomcat -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties org.apache.catalina.startup.Bootstrap

4. 配置Nginx

在shell中运行以下命令,配置Nginx负载均衡(虽然只有一个Tomcat节点):

cat > /etc/nginx/conf.d/xxl-job.conf << EOF
upstream xxl-job {
    server 192.168.190.129:8080;
}

server {

    listen   80;
    server_name 192.168.190.129;
    access_log /var/log/nginx/xxl-job_access.log;
    error_log /var/log/nginx/xxl-job_error.log;

    location / {
        proxy_redirect off;
        proxy_set_header Host \$host;
        proxy_set_header X-Real-IP \$remote_addr;
        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
        proxy_pass http://xxl-job;
    }
}
EOF

5. 重启Nginx服务

在shell中运行以下命令,重启Nginx服务:

service nginx restart

八、验证测试

在浏览器中访问以下网址:

http://192.168.190.129/toLogin

此时,会打开登录页面,如下图所示:

xxl-job的登录页面

默认的用户名是admin,密码是123456,登录后的首页,如下图所示:

xxl-job的管理控制台首页

至此,xxl-job服务器已经安装成功!