信步漫谈之 SpringBoot+ElasticJob 实现分布式任务调度

信步漫谈之 SpringBoot+ElasticJob 实现分布式任务调度


1 相关简介

2 Zookeeper 的 Docker 安装

  • 镜像拉取:docker pull zookeeper
  • docker-compose.yml
# 描述 Compose 文件的版本信息
version: '3.8'
# 定义服务,可以多个
services:
zookeeper: # 服务名称
image: zookeeper # 创建容器时所需的镜像
container_name: zookeeper # 容器名称
ports:
- "2181:2181"
privileged: true
volumes:
- /etc/localtime:/etc/localtime
restart: always # 容器总是重新启动

3 Zookeeper 的 Windows 版本安装

  • 下载 zookeeper-3.4.8.tar.gz,直接解压到安装目录
  • 配置系统环境变量
    1)ZOOKEEPER_HOME:安装目录
    2)PATH:添加 “安装目录 \bin”
  • 进入安装目录,新建 data 文件夹
  • 进入 “安装目录 \conf” 下,复制 zoo_sample.cfg 为 zoo.cfg,修改内部 “dataDir=” 的值为以上 data 目录全路径
dataDir=G:\\ProgramFiles\\zookeeper-3.4.9\\data
  • 点击 “安装目录 \bin” 下的 zkServer.cmd 启动服务
  • 点击 “安装目录 \bin” 下的 zkCli.cmd 启动客户端,可输入命令执行

4 Zookeeper 图形化客户端 prettyZoo

5 Zookeeper 启用用户密码认证(以 Docker 版本为例)

  • 进入 zookeeper 容器,命令:docker exec -it 容器 ID /bin/bash
  • 连接 zookeeper,命令:bin/zkCli.sh -timeout 30000 -server 服务器 IP:2181
  • 配置认证用户,命令:addauth digest user1:password1(明文)
  • 配置目录的用户和权限,命令:setAcl /auth:user1:password1(明文):cdrwa,其中 cdrwa 是权限,/ 是指根目录
  • 查看配置是否成功,命令:getAcl /,查看根目录权限情况,配置成功会输出有权限的用户信息
  • 在 springboot 项目的 application 中,增加配置 elasticjob.regCenter.digest,值为:用户名:密码(明文)
  • 如果再次登录 zookeeper 后台,还需要在执行以上配置认证用户命令后(addauth digest user1:password1(明文)),才能切换该用户查看权限

6 示例代码

https://gitee.com/alfredinchange/springboot.git 下 com.alfred.springboot.elasticjob

7 添加任务监听器

  • 在项目 resources 新建文件夹: META-INF\services
  • 在新建文件夹下创建文件,名称为:org.apache.shardingsphere.elasticjob.infra.listener.ElasticJobListener
  • 内容为监听器类全路径
com.alfred.springboot.elasticjob.listener.MyElasticJobListener
  • 在 application.yml 所需监听的 elasticjob 中添加 jobListenerTypes,值为所配置监听器的 getType 值

8 参考资料(感谢)

工具篇 -- 分布式定时任务 springBoot--elasticjob ElasticJobListener 的加载

posted @   临渊启明  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示