XXL-JOB分佈式任務調度平臺安裝與部署

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

 

1、簡介

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

下載

文檔地址

源碼倉庫地址:

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

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

中央倉庫地址
<!-- 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、快速入門

2.1 初始化「調度數據庫」

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

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

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

調度中心支持集羣部署,集羣狀況下各節點務必鏈接同一個mysql實例;spring

若是mysql作主從,調度中心集羣節點務必強制走主庫;sql

2.2 編譯源碼

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

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

調度中心配置內容說明:apache

### 調度中心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工程,一、導入數據庫、修改配置文件(數據庫鏈接信息和平臺登陸的用戶信息)

 

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

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

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

<!-- 配置0二、執行器 -->
<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等,下面我就進行一些簡單的介紹。
一、啓動:

C:\server\nginx-1.0.2>start nginx

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

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

 

啓動後會在任務管理器有記錄

 

二、中止:

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

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


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

三、從新載入Nginx:

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

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

四、從新打開日誌文件:

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

五、查看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;
      }
    }
}

 

測試輪詢:

相關文章
相關標籤/搜索