高可用方案_XXL-JOB

这篇博客应该是拖了很久,大家应该都已经忘记了吧,还是今天补上。
看标题,高可用,就先来说一下什么是高可用:
高可用,通常是为了解决单点故障的问题,减少停工的时间,保证程序的高度可用性。与其相关的术语有:自动切换以及Vip(此Vip可不是会员的意思,是Virtual ip)
ok,那么既然常见的术语是自动切换以及Vip那么久代表着他是由多机(多服务)组成,而不再只是单机(单服务),引入下文 ⤵

XXL-JOB先来一个官网介绍:
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
看这行解释平平无奇,但是不知道你在看官方网站的时候有没有注意到在Features(特性)一栏有一行解释尤其显眼:
高可用方案_XXL-JOB
OK,没关系,你没看到那我就把官方链接贴后面,内容很完整,推荐好好拜读一遍,有个了解:https://github.com/xuxueli/xxl-job

了解完之后就该来说一下高可用方案了,不能光扯没用的⤵
先来一张图看看吧,我再来讲解:
高可用方案_XXL-JOB
OK,看了上边的图,大家应该就知道我的意图了吧,其实就是使用Nginx做到了一个调度器的高可用。
对于页面的请求操作是根据Nginx进行负载均衡转发到对应的调度中心机器上,他的每次调度都会通过一个远程任务代理的请求,触发到远程的执行器(这边没有画,因为上图主要是讲解调度器的高可用)。
高可用方案_XXL-JOB
上边就完善了执行器的高可用,在部署远程执行器的时候,只要把每一台机器都指向同一个APP name,这样每个执行器都会以心跳方式向调度中心进行注册,也是30s注册一次,三次心跳,如果三次都失败的话,会把当前的执行器摘除掉。这样调度中心发现三次心跳之内都在存活的情况下,会将其视为是一个存活的执行器,在下次触发的时候回根据配置好的路由策略选择机器通过RPC方式进行调度执行。
以为上边就已经是完善的了吗?不!不是!!!
高可用方案_XXL-JOB
嗯~这样才是大部分完整形态嘛!因为你不能保证Nginx机器的高可用性,所以这边引入Keepalived,使用Vip的方式来保证Nginx的高可用(不知道的自己去查!)

END

当然这样还不是完整的高可用,因为不能保证数据库的高可用,还需要有数据库的集群部署,读写分离等操作,但是一般情况下使用上方的部署模式就可以满足大部分的需求…
整理不易,如果感觉写的还可以给个赞再走????