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_HOME
和CATALINA_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
此时,会打开登录页面,如下图所示:
默认的用户名是admin
,密码是123456
,登录后的首页,如下图所示:
至此,xxl-job服务器已经安装成功!