XXL-JOB学习笔记——调度中心

news2025/1/15 20:42:12

集群部署配置

3.1.服务启动
XXL-JOB的集群部署非常简单,只需要注意两点:

集群节点都连接的是同一个数据库。
多台机器部署时,需要统一系统时间,如果是单个机器部署,则不用管这条。
现在是在同一台机器中,并且在上面打的包中,指定了数据库的url地址,所以只需要正常启动,就满足上述的条件了。
找到刚刚打的包,xxl-job-admin,这是一个springboot的功能,所以通过java -jar直接启动就好了,这里先启动两台。

java -jar xxl-job-admin-2.3.1.jar --server.port=8080
java -jar xxl-job-admin-2.3.1.jar --server.port=8081
1
操作到这里,一个基本的调度中心集群就搭建好了。
需要注意的是,XXL-JOB的集群并不是分片集群,不管部署多少台,同一时间执行调度任务的只会有一台。
集群部署纯粹只是为了处理单点故障问题。

为什么会这么设计呢?

如果是分片集群,在同一时间,不同的调度中心在执行同一个调度任务,会导致的重复调度问题,一般解决这种问题,可以通过分布式锁来处理,同一时间只让一个线程去处理任务。
在加上XXL-JOB的架构理念中,将调度器与执行器分离了,使用异步调用的方式来处理,从而大大降低了调度器的性能压力。
于是,就直接使用数据库的独占锁做分布式锁处理了,处理方式简单。

3.2.反向代理
上面我们已经获得了一个集群,但是对于生产环境来说,简单粗暴的通过调度中心所在服务器的ip访问并不是一个友好的方式,可想象的是,一旦ip发生了变化,我们所有的调度器所在服务的配置文件都需要修改。
更好的方式是通过反向代理的方式来暴露调度中心,以Windows环境为例,用以下步骤来做配置:

第一步:修改hosts文件
如果是生产环境,忽略这一步,直接使用生产环境的域名即可。本地配置hosts文件,主要是想把127.0.0.1映射到某个域名上。

127.0.0.1 ls.xxljob.cn
ls.xxljob.cn 可以配置成任意自己喜欢的域名。

第二步:配置Nginx
一般来说,我们不会直接在nginx的配置文件中做配置,而是单独创建一个由某个服务独有的配置文件,方便管理。
这里我们在
conf目录中创建
xxl-job.conf并做以下配置:

负载均衡

upstream local.xxljob.cn {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
1
2
3
4
5
1
server {
listen 80; # nginx端口
server_name ls.xxljob.cn; # hosts中配置的域名

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;

# 需要转发的uri路径
location ~* /xxl-job-admin {
proxy_pass http://local.xxljob.cn; # 映射上面的upstream
proxy_pass_header Date;
proxy_pass_header Server;
proxy_set_header Host h o s t < / s p a n > < s p a n c l a s s = " t o k e n p u n c t u a t i o n " > ; < / s p a n > p r o x y s e t h e a d e r X − R e a l − I P < s p a n c l a s s = " t o k e n v a r i a b l e " > host</span><span class="token punctuation">;</span> proxy_set_header X-Real-IP <span class="token variable"> host</span><spanclass="tokenpunctuation">;</span>proxysetheaderXRealIP<spanclass="tokenvariable">remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
1
2
3
4
5
6
7
8
9
10
11
12
}

日志配置

log_format xxl-job ‘$remote_addr - $upstream_addr - r e m o t e u s e r [ remote_user [remote
u

ser[time_local] “r e q u e s t " ′ < / s p a n > < s p a n c l a s s = " t o k e n s t r i n g " > ′ request" ' 'request"

<spanclass=“tokenstring”>

status b o d y b y t e s s e n t " body_bytes_sent “body
b

ytes
s

ent"http_referer” ‘
’“h t t p u s e r a g e n t " " http_user_agent” “http
u

ser
a

gent”"http_x_forwarded_for”’;

access_log logs/access.log xxl-job;
error_log logs/error.log;

配置好后,打开同级目录下nginx.conf文件,将上面的文件依赖到nginx配置中。

http {
resolver 8.8.8.8;

include       mime.types;
default_type  application/octet-stream;
include xxl-job.conf;

…此处省略其他配置

}
1
2
3
4
5
6
7
然后启动nginx,通过域名访问http://ls.xxljob.cn/xxl-job-admin/,成功展示页面则表示配置成功。
在这里插入图片描述

第三步:反向代理验证
在上面的nginx配置中,加入了一个日志格式化配置:- $upstream_addr,有这个配置后,我们就可以在access_log中查看负载均衡的请求详情了。
刷新几次页面,然后打开nginx目录下的log文件,看到8080和8081交替执行,表达负载均衡配置成功。
在这里插入图片描述
在这里插入图片描述

4.总结
XXL-JOB的调度中心集群部署只需要满足两个条件就可以在生产环境使用了:

多个节点使用同一个数据库。
多台机器的系统时间配置成一样的。
同时,只需要使用反向代理中间件,就可以让调度中心好用起来了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/885399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

W5100S-EVB-PICO做UDP Client进行数据回环测试(八)

前言 上一章我们用开发板作为UDP Server进行数据回环测试&#xff0c;本章我们让我们的开发板作为UDP Client进行数据回环测试。 连接方式 使开发板和我们的电脑处于同一网段&#xff1a; 开发板通过交叉线直连主机开发板和主机都接在路由器LAN口 测试工具 网路调试工具&a…

神采PromeAI,设计师的高效创作搭子

2023年&#xff0c;没有一个打工人不关注AI&#xff0c;也没有一个老板不想乘上AI东风、革新行业的梦。在生成式AI的可控性越强&#xff0c;对市场和产业的颠覆性就越大&#xff01; 神采PromeAI的可控性得到许多用户的认可&#xff0c;网站已上线草图渲染、照片转线稿、涂抹替…

UDP数据报结构分析(面试重点)

在传输层中有UDP和TCP两个重要的协议&#xff0c;下面将针对UDP数据报的结构进行分析 UDP结构图示 UDP报头结构的分析 UDP报头有4个属性&#xff0c;分别是源端口&#xff0c;目的端口&#xff0c;UDP报文长度&#xff0c;校验和&#xff0c;它们都占16位2个字节&#xff0c;所…

CSS自己实现一个步骤条

前言 步骤条是一种用于引导用户按照特定流程完成任务的导航条&#xff0c;在各种分步表单交互场景中广泛应用。例如&#xff1a;在HIS系统-门诊医生站中的接诊场景中&#xff0c;我们就可以使用步骤条来实现。她的执行步骤分别是&#xff1a;门诊病历>遗嘱录入>完成接诊…

福昕阅读器文档无法高亮的问题 转

转自福昕阅读器文档无法高亮的问题_福昕pdf高亮用不了_没有价值的生命的博客-CSDN博客 最近在阅读一篇PDF文档时&#xff0c;对一些内容进行高亮时&#xff0c;发现不能够进行高亮&#xff0c;然后通过在网上查找解决方法算是解决了我的问题。下面我将总结2点不能进行注释的情…

无涯教程-Perl - sqrt函数

描述 此函数返回EXPR的平方根&#xff1b;如果省略,则返回$_。大多数情况下,此函数返回浮点数。 语法 以下是此函数的简单语法- sqrt EXPRsqrt返回值 该函数返回浮点数。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perl -w$resultsqrt(4); print " sqrt(4) …

2024第12届国际生物发酵展,3月6-8日济南举办

2024第12届国际生物发酵产品与技术装备展&#xff08;济南展&#xff09; 2024年3月6-8日 | 山东国际会展中心 2024第13届国际生物发酵产品与技术装备展&#xff08;上海展&#xff09; 2024年8月7-9日 | 上海新国际博览中心 主办单位&#xff1a; …

采用nodejs+vue语言和mysql汽车4s店服务管理系统 _od8k

为设计一个安全便捷&#xff0c;并且使用户更好获取本汽车服务信息&#xff0c;本文主要以安全、简洁为理念&#xff0c;实现用户快捷寻找汽车服务信息&#xff0c;从而解决汽车服务信息复杂难辨的问题。该系统以vue架构技术为基础&#xff0c;采用nodejs语言和mysql数据库进行…

终于理解正向代理和反向代理的联系和区别啦~

正向代理、反向代理 正向代理反向代理联系区别 正向代理 正向代理&#xff08;forward proxy&#xff09;&#xff1a;是一个位于客户端和目标服务器之间的服务器(代理服务器)&#xff0c;为了从目标服务器取得内容&#xff0c;客户端向代理服务器发送一个请求并指定目标&…

实时设备状态监测与故障诊断:制造业转型的驱动力

在当今快节奏、高竞争的制造业环境中&#xff0c;生产效率和设备可靠性成为企业成功的关键。随着技术的不断发展&#xff0c;实时设备状态监测与故障诊断正成为制造业转型的重要驱动力。这一创新技术不仅提供了提前预警和预测性维护&#xff0c;还为制造商带来了更高的生产效率…

事务异常:Transaction rolled back because it has been marked as rollback-only解决方案

目录 事务的概念为何需要事务事务异常的原因解决方案1、方案1&#xff08;一般采用这种&#xff09;2、方案2 事务的概念 事务这个词&#xff0c;其实我们最先接触的地方应该是数据库&#xff0c;我们会知道事务有着四种特性&#xff0c;分别是&#xff1a; 原子性&#xff1…

windows11 修改默认存储位置

windows11 修改默认存储位置 https://zhuanlan.zhihu.com/p/367637690

SCS【31】减少障碍,加速单细胞研究数据库(Single Cell PORTAL)

细胞生信分析教程 桓峰基因公众号推出单细胞生信分析教程并配有视频在线教程&#xff0c;目前整理出来的相关教程目录如下&#xff1a; Topic 6. 克隆进化之 Canopy Topic 7. 克隆进化之 Cardelino Topic 8. 克隆进化之 RobustClone SCS【1】今天开启单细胞之旅&#xff0c;述说…

SElinux 导致 Keepalived 检测脚本无法执行

哈喽大家好&#xff0c;我是咸鱼 今天我们来看一个关于 Keepalived 检测脚本无法执行的问题 一位粉丝后台私信我&#xff0c;说他部署的 keepalived 集群 vrrp_script 模块中的脚本执行失败了&#xff0c;但是手动执行这个脚本却没有任何问题 这个问题也是咸鱼第一次遇到&…

koa2脚手架koa-generator的使用

koa2脚手架的基本使用 简介前言&#xff1a;使用koa2的脚手架koa-generator,使用非常简单&#xff0c;容易上手 首先&#xff0c;我们需要全局安装 npm install -g koa-generator安装成功后&#xff0c;需要创建项目 koa2 koapro[koapro 项目名称] 或者 koa2 -e [koapro 项目名…

华为网络篇 RIP路由手工汇总-27

难度2复杂度2 目录 一、实验原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、实验原理 在网络规划过程中&#xff0c;我们避免不了使用VLSM技术&#xff0c;但是使用VLSM后会有一个问题&#xff0c;就是子网较多时会占用系统资源。我们可以使用路由汇总的方法&…

Doris Summit 2023 正式启航,议题征集 合作伙伴招募火热进行中

在数字化进程不断演进的时代&#xff0c;数据呈现爆发增长。在这数据洪流之中&#xff0c;数据实时分析的重要性愈发凸显&#xff0c;并成为企业成功的关键要素。 作为专注于实时分析的开源实时数据仓库 Apache Doris&#xff0c;从开源至今已走过 6 个年头&#xff0c;这些年…

学习笔记十九:Pod常见的状态和重启策略

Pod常见的状态和重启策略 常见的pod状态第一阶段&#xff1a;第二阶段&#xff1a;扩展&#xff1a; pod重启策略测试Always重启策略正常停止容器内的tomcat服务非正常停止容器里的tomcat服务 测试never重启策略正常停止容器里的tomcat服务非正常停止容器里的tomcat服务 测试On…

配置 NTP

server host.domain8.rhce.cc iburst配置 NTP 配置 node1 作为 NTP 的客户端&#xff0c;跟时间服务器 host.domain8.rhce.cc 同步时间。 yum install chrony 安装chrony软件包 systemctl status chronyd 查看chronyd服务是否开启&#xff0c;没有开启使用一下任何一条…

【mysql】事务的四种特性的理解

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…