背景:在下班后,本来吃完免费午饭准备走人了,但是突然来了一个活儿。由于项目环境地域问题(阿里云、杭州集群、私有云、京东云、移动云、亚马逊等),xxl-job-admin 之前用的是部署在私有云,但是由于网络问题,现在这个xxl-job-admin 无法在杭州集群(k8s集群)使用。需要部署一个xxl-job.

开始:由于这个没部署过,需要基于我们自己的(k8s为底层开发的)saas平台进行部署一个xxl-job,然后开始找资料,开始干活,首先需要弄清楚需要哪些组件、基础原理(说来惭愧,虽然以前用过,但是没部署过)。

然后发现,一个数据库,一个镜像即可。。。。然后就开干了。域名、数据库、镜像。一气呵成。

首先在dockerhub上面搜索xxl-job-admin 毫无疑问第一个就是需要的;数据库有现成的,只是需要申请资源。然后提交流水线执行;然后就是域名申请。

仓库地址:https://github.com/xuxueli/xxl-job, 说明书也在这里面(虽然需要时间,但是下面直接来干货),

数据库的sql:项目的/xxl-job/doc/db/tables_xxl_job.sql 

镜像地址:https://registry.hub.docker.com/r/xuxueli/xxl-job-admin 下载最新的2.2.0。

部署的数据库参数、邮箱参数、优化参数,全部在环境变量中配置:PARAMS --spring.datasource.url=**** --spring.datasource.username=*** --spring.mail.host=*** 

key 为PARAMS value是由所有需要的配置key value组成的一个字符串即可。

然后运行就行了。

###################搞定收工###############################

logback [xxl-job, executor ExecutorRegistryThread] INFO c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job registry error, registryParam:RegistryParam{registGroup='EXECUTOR', registryKey='xxl-job-executor-sample', registryValue='127.0.0.1:9999'} 

###################但是无法注册上##########################

一直报错,无法注册上,后面找了很多原因,网络问题、域名问题、都试了,没用。继续找问题.....................

最后发现怀疑是版本问题,因为1.9.1 是1.x版本的最后一个版本,2.0.1的都换了人维护了。

发现其中执行器的初始化函数也变了,1.x的执行器初始化函数XxlJobExecutor(), 2.0.1之后的注册器的初始化函数 XxlJobSpringExecutor()

也就是说版本并不是后向前兼容的。如果执行器的依赖是2.0.1以前的,那xxl-job-admin也必须是2.0.1以前的。

然后发现镜像的仓库都不是同一个了https://registry.hub.docker.com/r/huahouye/xxl-job-admin ,但是此镜像拉的贼慢贼慢的。

使用然后重新从git地址拉取sql,生成数据库、拉镜像、tag、推镜像、部署(提一下,旧版本的xxl-job上的docker部署有很详细的说明)。

然后用这个镜像部署,很快。。。。搞定。执行器注册也没问题了。自动注册上了。

###################搞定收工###############################

 

###################点击新建任务无效???###################

又懵了。。。这又是咋回事,用F12看,发现点击后根本没有触发事件。难道是镜像问题?。。。。。
换了一个浏览器,又可以了。。。。
最终结论就是最新的谷歌浏览器已经不支持旧版的web页面了。。。。差点又去找bug去了。。。

#########################结论######################################

1 这种开源组件,查找问题一定要看git的issue

2 对于组件部署,先确定版本、再进行部署。很容易出现兼容问题。

3 多看官方文档。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐