天天看点

docker方式 部署xxl-job分布式调度框架

作者:杜杜影院

宿主机中创建数据库

  • 用户名: root
  • 密码: 1qaz@WSX
  • 数据库: xxl_job

部署xxl-job

下载镜像

docker pull xuxueli/xxl-job-admin:2.3.1
           

创建日志目录

创建容器并运行

自定义配置

自定义mysql配置, mac下宿主机访问使用 docker.for.mac.host.internal

  • spring.datasource.url : jdbc:mysql://docker.for.mac.host.internal:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
  • spring.datasource.username : root
  • spring.datasource.password : 1qaz@WSX
docker run -p 8080:8080 -e PARAMS="--spring.datasource.url=jdbc:mysql://docker.for.mac.host.internal:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=1qaz@WSX" -v /opt/docker/xxl-job/applogs:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin:2.3.1

           

指定外部配置文件

加载外部配置文件, 配置中的server.port 和 端口映射保持一致, 例子中就是8080

容器1

docker run \
-p 8081:8080 \
-ePARAMS="--spring.config.location=/data/config/application.properties" \
-v /opt/docker/xxl-job/applogs1:/data/applogs \
-v /opt/docker/xxl-job/config1/application.properties:/data/config/application.properties  \
--name xxl-job-admin-1 \
-d xuxueli/xxl-job-admin:2.3.1
           

容器2

docker run \
-p 8082:8080 \
-ePARAMS="--spring.config.location=/data/config/application.properties" \
-v /opt/docker/xxl-job/applogs2:/data/applogs \
-v /opt/docker/xxl-job/config2/application.properties:/data/config/application.properties  \
--name xxl-job-admin-2 \
-d xuxueli/xxl-job-admin:2.3.1
           

配置文件

### web
server.port=8080
server.servlet.context-path=/xxl-job-admin

### actuator
management.server.servlet.context-path=/actuator
management.health.mail.enabled=false

### resources
spring.mvc.servlet.load-on-startup=0
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/

### freemarker
spring.freemarker.templateLoaderPath=classpath:/templates/
spring.freemarker.suffix=.ftl
spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request
spring.freemarker.settings.number_format=0.##########

### mybatis
mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model

### xxl-job, datasource
spring.datasource.url=jdbc:mysql://docker.for.mac.host.internal:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=1qaz@WSX
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

### datasource-pool
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=30
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.max-lifetime=900000
spring.datasource.hikari.connection-timeout=10000
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.validation-timeout=1000

### xxl-job, email
# spring.mail.host=smtp.qq.com
# spring.mail.port=465
# [email protected]
# [email protected]
# spring.mail.password=uxvthhnaivlhbdgd
# spring.mail.properties.mail.smtp.auth=true
# spring.mail.properties.mail.smtp.starttls.enable=true
# spring.mail.properties.mail.smtp.starttls.required=true
# spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.host=smtp.163.com
[email protected]
[email protected]
spring.mail.password=VPOTGZZZFIBBGYPD
spring.mail.test-connection=false
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.host=smtp.163.com
spring.mail.properties.mail.smtp.port=465
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=3000
spring.mail.properties.mail.smtp.writetimeout=5000
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.socketFactory.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.ssl.trust=smtp.163.com
    
### xxl-job, access token
xxl.job.accessToken=duyafei

### xxl-job, i18n (default is zh_CN, and you can choose "zh_CN", "zh_TC" and "en")
xxl.job.i18n=zh_CN

## xxl-job, triggerpool max size
xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100

### xxl-job, log retention days
xxl.job.logretentiondays=30

           

访问调度中心

http://127.0.0.1:8081/xxl-job-admin admin/123456

http://127.0.0.1:8082/xxl-job-admin admin/123456

使用nginx 代理访问