elasticJob分片跑批
2019独角兽企业重金招聘Python工程师标准>>>
业务迅速发展带来了跑批数据量的急剧增加。单机处理跑批数据已不能满足需要,另考虑到企业处理数据的扩展能力,多机跑批势在必行。多机跑批是指将跑批任务分发到多台服务器上执行,多机跑批的前提是”数据分片”。elasticJob通过JobShardingStrategy支持分片跑批。
跑批配置需要做如下修改:
shardingTotalCount:作业分片总数。
jobShardingStrategyClass:作业分片策略实现类全路径,elasticJob默认提供了如下三种分片策略,AverageAllocationJobShardingStrategy : 基于平均分配算法的分片策略。
OdevitySortByNameJobShardingStrategy:根据作业名的哈希值奇偶数决定IP升降序算法的分片策略。
RotateServerByNameJobShardingStrategy:根据作业名的哈希值对服务器列表进行轮转的分片策略。
默认使用AverageAllocationJobShardingStrategy。
shardingItemParameters:分片序列号和个性化参数对照表。
分片序列号和参数用等号分隔, 多个键值对用逗号分隔。
分片序列号从0开始, 不可大于或等于作业分片总数。
分片的维度通常有状态(state)、类型(accountType)、id分区等,需要按照业务合适选取。
以上例,跑批服务器起了两台,192.168.30.38(测试跑批服务器)和10.15.83.211(本地服务)。
作业分片总数为4,跑批服务器起了两台,根据AverageAllocationJobShardingStrategy ,每台服务器分到的分片是: 1=[0,1], 2=[2,3]。这可以在Elastic Job Console上作业列表中可以看出。
本地服务器上也打印了shardingContext对象,以相互印证。
shardingContext:{"fetchDataCount":1,"jobName":"autoBidTransferLoanJob-1","jobParameter":"","monitorExecution":false,"offsets":{},"shardingItemParameters":{0:"NFM",1:"NFMF"},"shardingItems":[0,1],"shardingTotalCount":4}
- 1
数据分片所需要做的,就是将shardingItemParameters作为参数传入查询跑批待处理数据列表的方法里,sql查询时增加一个动态in条件,例如:
And accountType in (‘NFM’, ‘NFMF’)
- 1
分片方案
1、数据库层面,对业务主键进行取模。
where mod(id, 4) in (1, 2)
- 1
这种方式的问题是,在主键或者索引字段外套了一个函数,索引失效、全表扫描。改进方案是查询条件中再增加一个索引字段。
where mod(id, 4) in (1, 2) and create_date > sysdate - 1
- 1
2、数据库层面,增加字段,在生成数据时,就为该行数据生成一个mod值。
做分片的初衷就是跑批数据量越来越大、单台机器处理能力有限,通过扩展机器数来提升系统处理的能力。该mod值建议不要太小,至少要比分片项大。例如,生成的1000条数据的mod值只有0和1,而机器数加到了10,那最终只有两台机器在运行,造成资源浪费。当然,我们可以及时调整生成数据时的取模值,新生成的数据还是会分散到不同的机器上。
3、业务层面,选取状态(state)、类型(accountType)等字段作为分区维度。
转载于:https://my.oschina.net/u/2548090/blog/1536799
elasticJob分片跑批相关推荐
- 微服务设计指导-使用云原生微服务解决传统海量跑批时引起的系统间“级联雪崩”以及效率
问题描述 这也是一起真实的生产事故,如下图所示 这种"雪崩"是属于企业内部系统雪崩. 我们都知道如果是在外部http (包括一切restful.soap请求.http类型调用)调用 ...
- 学习笔记-如何设计离线跑批系统
一.基本概念 离线跑批:通常指批量加工数据.完成一系列流程的定时任务. 业务场景:在银行.金融.支付出现较多,其他行业也可能涉及. 1. 定时的数据状态更新(到期失效) 2. 数据计算(计算罚息.计提 ...
- 查询慢 跑批慢 性能低怎么办? | 润乾高性能计算专家
完整资料下载: 查询慢.跑批慢.性能低怎么办?| 润乾高性能计算专家
- tidb 企业_TiDB 在马上消费金融核心账务系统归档及跑批业务下的实践
作者介绍: 康文权,马上消费金融总账高级研发工程师. 李银龙,原腾讯云运维工程师,马上消费金融容器云 TiDB 负责人,西南区 TUG Leader. 背景介绍 马上消费金融于 2015 年 6 月营 ...
- java跑批任务_【spring配置】——spring整合Quartz定时器
第一种:为普通java类中的某个方法配置跑批任务MethodInvokingJobDetailFactoryBean CronTriggerBean SchedulerFactoryBean 1.定义 ...
- 【中亦安图】清算/报表/日终跑批程序之性能优化案例(5)
第一章 技术人生系列 · 我和数据中心的故事(第五期)-清算/报表/日终跑批程序之性能优化案例(一) 中亦安图 | 2016-02-18 21:40 前言 不知不觉,技术人生系列·我和数据中心的故事来 ...
- 每日跑批任务耗时性能从六分钟优化到半分钟历程及总结
话说做了一个产品需求上线后,涉及到有一个每日凌晨七点跑批任务,跑批查询出来的待处理订单也就1100单作用,但是耗时却花费了5~6分钟,虽说跑批中,又调用外部服务,但是仅仅在空闲时间,鉴于此情况 我觉得 ...
- 批量-跑批存在的意义
批量,顾名思义,一批一批的数据,数据量多.为什么有批量,有跑批这种操作呢? 一个系统,大多数系统肯定不是独立存在,肯定存在系统与系统之间的交互,数据的交换,调接口,取别人系统的数据等.而且就算是一个独 ...
- Hive并行跑批简易一例
1.目标表建表脚本 drop table if exists xxxxx_gift_record_byroom_bymonth; CREATE TABLE `xxxxx_gift_record_byr ...
最新文章
- linux下的基础操作
- 使用设置报头x-Frame-Options限制iframe网页嵌套
- 二叉树的非递归遍历(c/c++)
- SQLServer存储引擎——05.索引的结构和分类
- LeetCode(28): 实现strStr()
- 大数据学习笔记:距离度量和相似度度量
- 图神经网络(GNN)模型原理及应用综述
- 6000万条GitHub帖子告诉你:工作状态与表情符号强相关
- Java、Node.js、PHP还是.Net? 无论你选谁,我都能教你一招!
- AVR之bootloader介绍
- 马云给阿里的礼物:90多项区块链专利,全球最多
- 终结解决方案之最:struts2整合jasperreport再现图片无法显示
- DFS cdoevs 3100 蜗牛
- 利润最大化下的模型cutoff测算
- FZU 1573 大学自习室
- C-V2X仿真测试之虚拟场景设计
- 迷宫算法(JAVA实现)
- Thinkpad Intel 5100无线网卡间歇性掉线问题解决方案
- 数字练习_为什么要练习数字简约
- 赤壁游戏服务器获取玩家角色信息失败,赤壁进不去呀`````没服务器````
热门文章
- 关于Google Map API V2 版本的定位与导航
- 每天一点Linux --- 目录的可执行权限
- Spring.NET学习笔记(5)-对象生命周期和创建者对象
- VanDyke.SecureCRT.v7.0.0.326官方英文版x86 x64 + Keymaker-ZWT
- linux环境程序参数
- [转载]使用C#的BitmapData
- O(n^2) 级别的排序算法
- js插件---10个免费开源的JS音乐播放器插件
- 运用层通过shell脚本直接操控gpio
- ApplicationId 与 PackageName 的区别