如果我们的xxljob 以及nacos 集群比较多,同时需要提供ha 以及灵活的mysql 管理能力,基于tidb 以及oceanbase 是一个不错的选择
oceanbase 多租户能力上是比较方便的,可以更好的提供服务能力,以下是一个简单的示例,实际使用我们李勇多租户能力进行扩展下
同时提供好ha 就可以了
参考环境
- docker-compose
version: "3"
services:
nacos:
image: nacos/nacos-server:v2.1.2
environment:
- MODE=standalone
volumes:
- ./applicationnacos.properties:/home/nacos/conf/application.properties
ports:
- "8848:8848"
- "9848:9848"
- "9555:9555"
job:
image: xuxueli/xxl-job-admin:2.3.0
ports:
- "8080:8080"
volumes:
- "./tmp:/data/applogs"
- "./applicationxxljob.properties:/application.properties"
ob:
image: oceanbase/oceanbase-ce:3.1.4
ports:
- "2881:2881"
environment:
- MINI_MODE=true
- OB_ROOT_PASSWORD=dalongdemo
- OB_CLUSTER_NAME=demoobcluster
- OB_TENANT_NAME=dalongdemo
- 配置
配置部署参考xxljob 以及nacos 就行了,我简单提供了一个,具体可以参考github,注意我为了简化,直接使用了root 账户 - 说明&问题
因为nacos 以及xxljob 都是需要自己执行sql 初始化的,但是因为ob 的engine 是OceanBase 是有问题的,xxljob 以及nacos 官方提供的sql 运行是有问题的
解决方法很简单就是去掉ENGINE=InnoDB
运行效果
- xxljob
初始化完sql 之后直接运行比较顺利,兼容很不错,木有任何异常
- nacos
同时运行也比较顺利,初始化完sql 之后直接运行比较顺利,兼容很不错,暂时木有发现任何异常
说明
以上是一个简单的运行说明,通过测试说明了oceanbase 与xxljob 以及nacos 兼容是很不错的,集成也很好,如果我们利用ob 的多租户能力部署灵活的xxljob 任务调度以及nacos 注册中心能力,实现多租户的管理能力,参考玩法
基于ob 提供的daas 可以更好的提供xxljob 以及nacos 这类依赖mysql 的服务,简化我们数据库的管理
参考资料
https://github.com/rongfengliang/oceanbase-xxljob-nacos
https://nacos.io/zh-cn/docs/deployment.html
https://www.xuxueli.com/xxl-job/
https://www.oceanbase.com/docs/community-observer-cn-10000000000449173