调度中心集群
调度中心支持集群部署,提升调度系统容灾和可用性。
调度中心集群部署时,几点要求和建议:
- DB配置保持一致;
- 集群机器时钟保持一致(单机集群忽视);
- 建议:推荐通过 nginx 为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。
OK,我们使用 nginx 做调度中心的负载均衡,但是我们需要明白一点:处理业务的操作(比如创建任务等)是 nginx 做负载均衡的操作,而在调度任务的时候,是由某一台调度中心的微服务执行的,就像是主、备关系(最新版本的调度中心集群是交错执行)。
首先下载 windows 版本的 nginx:http://nginx.org/en/download.html
我们下载稳定版:
解压 zip 压缩包,打开 conf 目录,修改配置文件:nginx.conf。
①配置负载均衡节点:upstream 如下:
②配置域名映射关系(然后需要在 host 文件增加这个域名的配置)
③完整配置如下(去掉了很多没有用到的注解):
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
# 配置负载均衡,对应两台服务器,端口分别是8080、8081
upstream backServer{
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=1;
}
server {
listen 80;
# 配置域名映射关系
server_name xxljob.study.com;
#charset koi8-r;
location / {
# 配置代理
proxy_pass http://backServer;
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
然后在本机的 host 文件增加域名映射,如果不知道如何修改的,查看博客:https://blog.csdn.net/BiandanLoveyou/article/details/103742805
然后,为了验证 nginx 的负载均衡,我们在 admin 模块标注一下,如图,在 IndexController 类的登录和退出接口,我们增加控制台日志的打印:
然后,我们启动两台调度中心的微服务。如果不懂怎么启动两台微服务,查看博客:https://blog.csdn.net/BiandanLoveyou/article/details/103746170
启动结果:
端口号为 8080 服务器:
端口号为 8081 服务器:
OK,我们先启动 nginx 程序:
OK,调度中心的集群就这样搞定了。其实它们就是主备的关系。谁先启动就是主机器(8080端口的机器),后来启动的是备机器(8081端口的机器)。
验证
为了验证我们的调度中心集群成功,我们需要测试一下。首先以访问域名的形式访问调度中心地址:http://xxljob.study.com/
1、退出管理平台
2、登录平台
OK,验证 nginx 负载均衡成功。
接下来,我们验证调度中心集群版去分发任务给执行器。
我们在没有启动执行器微服务的情况下,直接启动任务的分配,看下有什么效果:
我们看到 8081(你们的或许是 8080 )端口号的微服务报错了,连接不上执行器:
或者是 8080 服务器先执行几次,然后 8081 服务器再执行几次,不过调度中心能保证在同一时刻只有1个在执行。
OK,调度中心的集群讲解到这。