热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

elasticjob和xxljob实践对比

elastic-job与xxl-job的实践数据对比。从多个维度,数据进行更适合的选择。简介技术文档都比较完善,学习成本低。elastic-job官网地

elastic-job与xxl-job的实践数据对比。从多个维度,数据进行更适合的选择。



简介


技术文档都比较完善,学习成本低。



elastic-job


官网地址:https://shardingsphere.apache.org/elasticjob/current/cn/overview/


E-Job 关注的是数据,增长了弹性扩容和数据分片的思路,以便于更大限度的利用分布式服务器的资源。可是学习成本相对高些,推荐在“数据量庞大,且部署服务器数量较多”时使用算法


xxl-job


官网地址:https://www.xuxueli.com/xxl-job/


X-Job 侧重的业务实现的简单和管理的方便,学习成本简单,失败策略和路由策略丰富。推荐使用在“用户基数相对少,服务器数量在必定范围内”的情景下使用


对比维度


前提条件均运行在K8S中,并且程序运行内存512M,正常运行12小时。



GC情况 (XXL-job完胜)


E-job

S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 43.10 0.00 6.18 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 6.18 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 6.18 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 6.18 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 6.18 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 6.30 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 13.53 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 13.53 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 13.53 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 13.53 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 13.53 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 13.53 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 13.53 35.03 97.84 96.22 11700 177.625 3 0.655 178.28043.10 0.00 13.53 35.03 97.84 96.22 11700 177.625 3 0.655 178.280

XXL-job

S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 58.86 0.00 49.24 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.24 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.27 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.28 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.36 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.36 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.36 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.36 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.36 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.36 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.37 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.37 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.37 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 49.37 28.97 95.87 93.36 1190 26.351 3 0.380 26.73158.86 0.00 51.05 28.97 95.87 93.36 1190 26.351 3 0.380 26.731

对比结论


  • E:年轻代中Eden目前已使用的空间,波动率不一。
    • E-job 波动幅度大,并且空间使用大
    • XXL-job 波动幅度平均,并且短时间空间使用低
  • YGC:年轻代中E-job,gc次数大。

CPU/MEM情况

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e1b9efeec680 k8s_xxl-jobs_cloud-namespace_9a47d619-5a8b-4529-856b-2cbd972c726d_0 0.00% 844MiB / 15.28GiB 5.39% 0B / 0B 4.56MB / 12.3kB 353
ij7j09jiasdq k8s_e-jobs_test-namespace_154s24d2-s1s2-2355-322s-a2121da21saa_0 0.00% 719MiB / 15.28GiB 4.58% 0B / 0B 4.56MB / 12.3kB 353CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e1b9efeec680 k8s_xxl-jobs_cloud-namespace_9a47d619-5a8b-4529-856b-2cbd972c726d_0 3.00% 844MiB / 15.28GiB 5.39% 0B / 0B 4.56MB / 12.3kB 353
ij7j09jiasdq k8s_e-jobs_test-namespace_154s24d2-s1s2-2355-322s-a2121da21saa_0 2.00% 719MiB / 15.28GiB 4.58% 0B / 0B 4.56MB / 12.3kB 353CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e1b9efeec680 k8s_xxl-jobs_cloud-namespace_9a47d619-5a8b-4529-856b-2cbd972c726d_0 3.20% 844MiB / 15.28GiB 5.39% 0B / 0B 4.56MB / 12.3kB 353
ij7j09jiasdq k8s_e-jobs_test-namespace_154s24d2-s1s2-2355-322s-a2121da21saa_0 4.00% 719MiB / 15.28GiB 4.58% 0B / 0B 4.56MB / 12.3kB 353CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e1b9efeec680 k8s_xxl-jobs_cloud-namespace_9a47d619-5a8b-4529-856b-2cbd972c726d_0 3.20% 844MiB / 15.28GiB 5.39% 0B / 0B 4.56MB / 12.3kB 353
ij7j09jiasdq k8s_e-jobs_test-namespace_154s24d2-s1s2-2355-322s-a2121da21saa_0 2.70% 719MiB / 15.28GiB 4.58% 0B / 0B 4.56MB / 12.3kB 353

对比结论

E-job稍微逊色一点,但是相差不多,对于上述比较的GC来看,个人觉得GC的可比性更重要。


支持集群部署 (感觉不通的情况使用)


XXL-job

集群部署唯一要求为:保证每个集群节点配置(db和登陆账号等)保持一致。调度中心通过db配置区分不同集群。
执行器支持集群部署,提升调度系统可用性,同时提升任务处理能力。集群部署唯一要求为:保证集群中每个执行器的配置项 “xxl.job.admin.addresses/调度中心地址” 保持一致,执行器根据该配置进行执行器自动注册等操作。


E-job

重写Quartz基于数据库的分布式功能,改用Zookeeper实现注册中心
作业注册中心: 基于Zookeeper和其客户端Curator实现的全局作业注册控制中心。用于注册,控制和协调分布式作业执行。


对比结论


  • 最新版本X-job 基于时间轮,使用数据库实现注册中心
  • E-Job基于quartz,改用Zookeeper实现注册中心

监控告警,日志追溯 (XXL-job完胜)


XXL-job

提供了调度器,支持日志查询,动态控制任务触发条件,支持配置邮箱地址进行异常告警。
xxl-job


E-job

需监听任务的处理是否成功,作业服务器是否存活,数据是否处理成功,自行编写告警程序。


对比结论


  • xxl-job对于动态任务执行,日志查询,告警更自动化,用法更建议,对于业务处理来说更方便
  • E-job这方便稍微欠缺。

大量数据处理,批量处理 (E-job完胜)


E-job

支持并行调度,采用任务分片实现,可自定义分片策略,并且通过zk实现服务注册,控制,协调,对服务器压力更少


XXL-job

支持任务分片,更加执行起集群实现动态分片。因为是通过数据来实现弹性扩容,如果任务服务器多了,会对服务器造成一定的压力


总结

综合来说,如果侧重于数据则使用E-job,侧重业务请使用XXL-job


推荐阅读
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • 本文介绍了MySQL数据库的安全权限管理思想及其制度流程,涵盖从项目开发、数据库更新到日常运维等多个方面的详细流程控制,旨在通过严格的流程管理和权限控制,有效预防数据安全隐患。 ... [详细]
  • 深入解析Spark核心架构与部署策略
    本文详细探讨了Spark的核心架构,包括其运行机制、任务调度和内存管理等方面,以及四种主要的部署模式:Standalone、Apache Mesos、Hadoop YARN和Kubernetes。通过本文,读者可以深入了解Spark的工作原理及其在不同环境下的部署方式。 ... [详细]
  • 深入探讨ASP.NET中的OAuth、JWT与OpenID Connect
    本文作为前文关于OAuth2.0和使用.NET实现OAuth身份验证的补充,详细阐述了OAuth与JWT及OpenID Connect之间的关系和差异,旨在提供更全面的理解。 ... [详细]
  • 收割机|篇幅_国内最牛逼的笔记,不接受反驳!!
    收割机|篇幅_国内最牛逼的笔记,不接受反驳!! ... [详细]
  • 自SQL Server 2005以来,微软的这款数据库产品逐渐崭露头角,成为企业级应用中的佼佼者。本文将探讨SQL Server 2008的革新之处及其对企业级数据库市场的影响。 ... [详细]
  • 深入解析:主流开源分布式文件系统综述
    本文详细探讨了几款主流的开源分布式文件系统,包括HDFS、MooseFS、Lustre、GlusterFS和CephFS,重点分析了它们的元数据管理和数据一致性机制,旨在为读者提供深入的技术见解。 ... [详细]
  • 免费获取:全面更新的Linux集群视频教程及配套资源
    本资源包含最新的Linux集群视频教程、详细的教学资料、实用的学习课件、完整的源代码及多种软件开发工具。百度网盘链接:https://pan.baidu.com/s/1roYoSM0jHqa3PrCfaaaqUQ,提取码:41py。关注我们的公众号,获取更多更新的技术教程。 ... [详细]
  • 优化使用Apache + Memcached-Session-Manager + Tomcat集群方案
    本文探讨了使用Apache、Memcached-Session-Manager和Tomcat集群构建高性能Web应用过程中遇到的问题及解决方案。通过重新设计物理架构,解决了单虚拟机环境无法真实模拟分布式环境的问题,并详细记录了性能测试结果。 ... [详细]
  • 本文介绍了Kettle资源库的基本概念、类型及其管理方法,同时探讨了Kettle的不同运行方式,包括图形界面、命令行以及API调用,并详细说明了日志记录的相关配置。 ... [详细]
  • 本文在前文基础上,进一步探讨了如何利用Multi-Paxos算法解决一系列值的共识问题。文中不仅分析了Basic Paxos的局限性,还详细阐述了通过引入领导者节点优化Multi-Paxos算法的具体方法。 ... [详细]
  • Consul 单节点与集群环境构建指南
    本文详细介绍了如何安装和配置 Consul 以支持服务注册与发现、健康检查等功能,包括单节点和集群环境的搭建步骤。 ... [详细]
  • 本文详细探讨了虚拟化的基本概念,包括服务器虚拟化、网络虚拟化及其在云计算环境中的应用。特别强调了SDN技术在网络虚拟化和云计算中的关键作用,以及网络虚拟化技术如何提升资源利用效率和管理灵活性。 ... [详细]
  • 构建Filebeat-Kafka-Logstash-ElasticSearch-Kibana日志收集体系
    本文介绍了如何使用Filebeat、Kafka、Logstash、ElasticSearch和Kibana构建一个高效、可扩展的日志收集与分析系统。各组件分别承担不同的职责,确保日志数据能够被有效收集、处理、存储及可视化。 ... [详细]
author-avatar
,,,,,,,,,,,,,,,
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有