信步漫谈之 SpringBoot+ElasticJob 实现分布式任务调度
信步漫谈之 SpringBoot+ElasticJob 实现分布式任务调度
目录
1 相关简介
- zookeeper:开源分布式应用程序协调服务
下载地址:https://archive.apache.org/dist/zookeeper/
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
- 下载地址:https://github.com/vran-dev/PrettyZoo/releases
- 免安装,直接下载 prettyZoo-win.zip 后解压,双击 prettyZoo.exe 启动,添加连接即可使用
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 的加载
分类:
技术锦集
标签:
SpringBoot
, ElasticJob
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具