配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.
如下圖:
1. 人肉修改tomcat的版本號
- 1.使用WinRar, WinZip, 7zip打開文件./lib/catalina.jar (注意不要解壓)
- 2.打開文件org/apache/catalina/util/ServerInfo.properties
- 3.修改文件第16行版本號為 8.0.0
- 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; } } }
測試輪詢: