XXL-JOB分布式任務調度平台安裝與部署


配XXL-JOB分布式任務調度平台安裝與部署

 

一、簡介

XXL-JOB是一個輕量級分布式任務調度平台,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼並接入多家公司線上產品線,開箱即用。

下載

文檔地址

源碼倉庫地址:

https://github.com/xuxueli/xxl-job

https://github.com/xuxueli/xxl-job

中央倉庫地址
<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>${最新穩定版本}</version>
</dependency>

 

准備環境

  • Maven3+
  • Jdk1.7+
  • Mysql5.6+

二、快速入門

2.1 初始化“調度數據庫”

請下載項目源碼並解壓,獲取 "調度數據庫初始化SQL腳本" 並執行即可,正常情況下應該生成16張表。

"調度數據庫初始化SQL腳本" 位置為:

/xxl-job/doc/db/tables_xxl_job.sql

調度中心支持集群部署,集群情況下各節點務必連接同一個mysql實例;

如果mysql做主從,調度中心集群節點務必強制走主庫;

2.2 編譯源碼

解壓源碼,按照maven格式將源碼導入IDE, 使用maven進行編譯即可,源碼結構如下:

xxl-job-admin:調度中心
xxl-job-core:公共依賴
xxl-job-executor:執行器Sample示例(選擇合適的版本執行器,可直接使用,也可以參考其並將現有項目改造成執行器)
    :xxl-job-executor-sample-spring:Spring版本,通過Spring容器管理執行器,比較通用,推薦這種方式;
    :xxl-job-executor-sample-springboot:Springboot版本,通過Springboot管理執行器;
    :xxl-job-executor-sample-jfinal:JFinal版本,通過JFinal管理執行器;
    :xxl-job-executor-sample-nutz:Nutz版本,通過Nutz管理執行器;

2.3 配置部署“調度中心”

調度中心項目:xxl-job-admin
作用:統一管理任務調度平台上調度任務,負責觸發調度執行,並且提供任務管理平台。

步驟一:調度中心配置:

調度中心配置文件地址:

/xxl-job/xxl-job-admin/src/main/resources/xxl-job-admin.properties

調度中心配置內容說明:

### 調度中心JDBC鏈接:鏈接地址請保持和 2.1章節 所創建的調度數據庫的地址一致
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl-job?Unicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

### 報警郵箱
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

### 登錄賬號
xxl.job.login.username=admin
xxl.job.login.password=123456

### 調度中心通訊TOKEN,非空時啟用
xxl.job.accessToken=

### 調度中心國際化設置,默認為中文版本,值設置為“en”時切換為英文版本
xxl.job.i18n=

 項目導入maven工程,1、導入數據庫、修改配置文件(數據庫連接信息和平台登錄的用戶信息)

 

eclipse安裝Tomcat8.5

在eclipse中,當使用tomcat版本為8.5時,無法與eclipse綁定,選擇8.0或9.0版本都會提示:

The Apache Tomcat installation at this directory is version 8.5.5.  A Tomcat 8.0 installation is expected.

如下圖:

 

2種解決辦法

1. 人肉修改tomcat的版本號

  1. 1.使用WinRar, WinZip, 7zip打開文件./lib/catalina.jar (注意不要解壓)  
  2. 2.打開文件org/apache/catalina/util/ServerInfo.properties  
  3. 3.修改文件第16行版本號為 8.0.0  
  4. 4.保存,將文件更新到原jar包中即可  
1.使用WinRar, WinZip, 7zip打開文件./lib/catalina.jar (注意不要解壓) 2.打開文件org/apache/catalina/util/ServerInfo.properties 3.修改文件第16行版本號為 8.0.0 4.保存,將文件更新到原jar包中即可

成功綁定:

2.打補丁:

https://bugs.eclipse.org/bugs/attachment.cgi?id=262418&action=edit

Download this patch and put it to the plugins directory of your Eclipse installation. It will replace the default "org.eclipse.jst.server.tomcat.core_1.1.800.v201602282129.jar".

詳細可參考:《How to use Tomcat 8.5.x and TomEE 7.x with Eclipse?

將下載的插件放在eclipse安裝目錄的plugin目錄下

 

 啟動 tomcat 8 的服務應用程序

 

步驟二:部署項目:

如果已經正確進行上述配置,可將項目編譯打包部署。 調度中心訪問地址:http://localhost:8080/xxl-job-admin (該地址執行器將會使用到,作為回調地址),

用戶名:admin

密碼:123456

登錄后運行界面如下圖所示

輸入圖片說明

至此“調度中心”項目已經部署成功。

 

其他:Docker 鏡像方式搭建調度中心:

  • 下載鏡像
// Docker地址:https://hub.docker.com/r/xuxueli/xxl-job-admin/
docker pull xuxueli/xxl-job-admin
  • 創建容器並運行
docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin
/**
* 如需自定義 mysql 等配置,可通過 "PARAMS" 指定;
* 配置項參考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties
*/
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl-job?Unicode=true&characterEncoding=UTF-8" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin

2.4 配置部署“執行器項目”

“執行器”項目:xxl-job-executor-sample-spring (提供多種版本執行器供選擇,現以Spring版本為例,可直接使用,也可以參考其並將現有項目改造成執行器)
作用:負責接收“調度中心”的調度並執行;可直接部署執行器,也可以將執行器集成到現有業務項目中。

步驟一:maven依賴

確認pom文件中引入了 "xxl-job-core" 的maven依賴;

步驟二:執行器配置

執行器配置,配置文件地址:

spring項目:

/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-spring/src/main/resources/xxl-job-executor.properties

springboot項目

/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties

執行器配置,配置內容說明:

### xxl-job admin address list:調度中心部署跟地址:如調度中心集群部署存在多個地址則用逗號分隔。執行器將會使用該地址進行"執行器心跳注冊"和"任務結果回調"。
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

### xxl-job executor address:執行器"AppName"和地址信息配置:AppName執行器心跳注冊分組依據;地址信息用於"調度中心請求並觸發任務"和"執行器注冊"。執行器默認端口為9999,執行器IP默認為空表示自動獲取IP,多網卡時可手動設置指定IP,該IP不會綁定Host僅作為通訊實用。單機部署多個執行器時,注意要配置不同執行器端口;
xxl.job.executor.appname= app-prod
xxl.job.executor.ip=
xxl.job.executor.port=9999 ### xxl-job, access token:執行器通訊TOKEN,非空時啟用 xxl.job.accessToken= ### xxl-job log path:執行器運行日志文件存儲的磁盤位置,需要對該路徑擁有讀寫權限 xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler/ ### xxl-job log retention days:執行器Log文件定期清理功能,指定日志保存天數,日志文件過期自動刪除。限制至少保持3天,否則功能不生效; xxl.job.executor.logretentiondays=-1

步驟三:執行器組件配置

執行器組件,配置文件地址:

/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-spring/src/main/resources/applicationcontext-xxl-job.xml

執行器組件,配置內容說明:

<!-- 配置01、JobHandler 掃描路徑:自動掃描容器中JobHandler -->
<context:component-scan base-package="com.xxl.job.executor.service.jobhandler" />

<!-- 配置02、執行器 -->
<bean id="xxlJobExecutor" class="com.xxl.job.core.executor.XxlJobExecutor" init-method="start" destroy-method="destroy" >
    <!-- 執行器注冊中心地址[選填],為空則關閉自動注冊 -->
    <property name="adminAddresses" value="${xxl.job.admin.addresses}" />
    <!-- 執行器AppName[選填],為空則關閉自動注冊 -->
    <property name="appName" value="${xxl.job.executor.appname}" />
    <!-- 執行器IP[選填],為空則自動獲取 -->
    <property name="ip" value="${xxl.job.executor.ip}" />
    <!-- 執行器端口號[選填],小於等於0則自動獲取 -->
    <property name="port" value="${xxl.job.executor.port}" />
    <!-- 訪問令牌[選填],非空則進行匹配校驗 -->
    <property name="accessToken" value="${xxl.job.accessToken}" />
    <!-- 執行器日志路徑[選填],為空則使用默認路徑 -->
    <property name="logPath" value="${xxl.job.executor.logpath}" />
    <!-- 日志保存天數[選填],值大於3時生效 -->
    <property name="logRetentionDays" value="${xxl.job.executor.logretentiondays}" />
</bean>

步驟四:部署執行器項目:

如果已經正確進行上述配置,可將執行器項目編譯打部署,系統提供多種執行器Sample示例項目,選擇其中一個即可,各自的部署方式如下。

xxl-job-executor-sample-springboot:項目編譯打包成springboot類型的可執行JAR包,命令啟動即可;
xxl-job-executor-sample-spring:項目編譯打包成WAR包,並部署到tomcat中。
xxl-job-executor-sample-jfinal:同上
xxl-job-executor-sample-nutz:同上

至此“執行器”項目已經部署結束。

 簡單 修改測試 demo

 

 運行demo的執行器程序

 

 配置執行器

 

配置執行器的調度任務

觸發執行

 

 執行每隔3秒執行一次

 關心的幾張表

 

 配置調度多個應用:

啟動另外一個執行器:

 

 配置路由策略

 

 任務在不同的應用程序輪詢執行,保證每個任務只會被一個應用所執行

 

 

 

Windows下Nginx的啟動、停止等命令

 

Windows下Nginx的啟動、停止等命令

在Windows下使用Nginx,我們需要掌握一些基本的操作命令,比如:啟動、停止Nginx服務,重新載入Nginx等,下面我就進行一些簡單的介紹。
1、啟動:

C:\server\nginx-1.0.2>start nginx

C:\server\nginx-1.0.2>nginx.exe

注:建議使用第一種,第二種會使你的cmd窗口一直處於執行中,不能進行其他命令操作。

 

啟動后會在任務管理器有記錄

 

2、停止:

C:\server\nginx-1.0.2>nginx.exe -s stop

C:\server\nginx-1.0.2>nginx.exe -s quit


注:stop是快速停止nginx,可能並不保存相關信息;quit是完整有序的停止nginx,並保存相關信息。

3、重新載入Nginx:

C:\server\nginx-1.0.2>nginx.exe -s reload

當配置信息修改,需要重新載入這些配置時使用此命令。

4、重新打開日志文件:

C:\server\nginx-1.0.2>nginx.exe -s reopen

5、查看Nginx版本:

C:\server\nginx-1.0.2>nginx -v

 

修改hosts文件

127.0.0.1 www.xxx.com

修改nginx配置文件

http{

    upstream  backServer{
        server 127.0.0.1:8080 weight=1;
        server 127.0.0.1:8081 weight=1;
    }


    server {
       listen       80;
       server_name  www.xxx.com;
       location / {
          proxy_pass   http://backServer;
          index  index.html index.htm;
       }
      error_page   500 502 503 504  /50x.html;
         location = /50x.html {
         root   html;
      }
    }
}

 

測試輪詢:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM