织梦网站模板免费下载,网络营销网站 优帮云,微信公众平台小程序怎么发布,怀柔建设网站公司2023年#xff08;Q3财年#xff09;技术部门CTO线技术人员晋升考核机试题
分布式篇-C 分布式任务调度
*参考答案*
出题人#xff1a;湖北TL田超凡答案制定#xff1a;湖北TL田超凡
*****试卷启用前绝密****
1 传统的定时任务存在那些缺点
答#xff1a;传统定时任务…2023年Q3财年技术部门CTO线技术人员晋升考核机试题
分布式篇-C 分布式任务调度
*参考答案*
出题人湖北TL田超凡答案制定湖北TL田超凡
*****试卷启用前绝密****
1 传统的定时任务存在那些缺点
答传统定时任务的缺点
定时任务逻辑和业务逻辑在一个服务中是强耦合的没有实现完全解耦当定时任务逻辑出现问题也会影响业务逻辑的执行。定时任务非常消耗cpu资源可能会影响业务线程的执行。服务器集群环境下定时任务可能会被重复执行。
2 定时任务集群如何保证定时任务幂等性问题
答
彻底解耦。将定时任务逻辑和业务逻辑彻底解耦分开只对业务逻辑实现服务集群不对定时任务逻辑实现集群定时任务服务单机存在高可用问题。配置文件新增开关。每个服务启动的时候加载配置文件中配置的定时任务执行开关哪个服务配置了开启那个服务就加载定时任务类并执行定时任务配置关闭的服务不加载和执行定时任务存在高可用问题。数据库主键唯一性。每个服务同时插入相同的主键id到数据库表中因为数据库表中的主键是唯一约束的所以相同的主键id多个服务同时插入到同一个数据库表只会有一个服务插入成功谁插入成功谁就可以执行定时任务。不存在高可用问题但是造成了数据库数据冗余和大量脏数据的问题分布式锁实现每个服务本质都是一个单独的JVM此时可以基于分布式锁的机制实现多个服务JVM同时竞争锁同一时刻只有一个服务JVM能够获取到分布式锁谁获取到分布式锁谁就可以执行定时任务。不存在高可用问题但是性能较差。分布式任务调度平台实现。推荐同时解决了定时任务高可用和幂等性的问题。
3 分布式任务调度平台架构设计原理
答分布式任务调度平台有三类角色组成
定时任务调度中心、定时任务注册中心、定时任务服务实例
定时任务调度中心负责拦截所有定时任务的执行类似于nginx网关的作用。
定时任务注册中心负责注册和管理定时任务服务实例实现服务治理。类似eureka的作用。
定时任务服务实例定时任务服务实例实现集群保证高可用是具体的定时任务服务负责执行定时任务。
分布式任务调度平台实现原理
定时任务服务启动时会连接到定时任务注册中心将自己的ip和端口号注册到定时任务注册中心中。定时任务开始执行的时候会首先被定时任务调度中心拦截获取定时任务关联的定时任务注册中心加载该注册中心下面注册的定时任务服务的地址基于负载均衡算法选择其中一台定时任务服务发送HTTPREST请求到该定时任务服务来执行当前定时任务。
4 XXL-JOB与Elastic-Job之间区别
答
XXL-JOB是中心化管理的分布式任务调度框架所有定时任务数据都存储在DB中。
Elastic-Job是去中心化管理的分布式任务调度框架实现思路基于Quartz数据库高可用机制实现。
XXL-Job支持动态扩容配置中配置的分片数会根据集群中实际可用的机器数动态分片当集群中实际可用机器数大于配置的分片数时会动态分配不会存在机器闲置的情况机器利用率高。
Elastic-Job不支持动态扩容代码中写死分片是多少就少多少当集群中实际可用机器数大于配置的分片数时不会动态分配只会根据写死的分片数进行分片存在机器限制的情况机器利用率低。