当前位置: 首页 > news >正文

免费建网站 高校社团官方网站沧州好的做网站的公司

免费建网站 高校社团官方网站,沧州好的做网站的公司,湖北省建设厅网站怎么打不开,初级程序员与网站开发目录 xxl-job的分片广播 场景引入 xxl-job简介 xxl-job的部署安装 代码编写 1.导入依赖 2.yml文件编写 3.编写xxl-job执行器配置类#xff0c;维护一个xxl-job执行器的bean 4.编写第一个任务#xff0c;任务名字叫firstJob 5.进入服务端#xff0c;增加执行器和任务…目录 xxl-job的分片广播 场景引入 xxl-job简介 xxl-job的部署安装 代码编写 1.导入依赖 2.yml文件编写 3.编写xxl-job执行器配置类维护一个xxl-job执行器的bean 4.编写第一个任务任务名字叫firstJob 5.进入服务端增加执行器和任务 ​编辑 6.启动两个服务实例 7.执行任务 8.使用分片广播的任务重点操作 xxl-job的分片广播 这里分享以下xxl-job的分片广播的使用 场景引入 在分布式架构下一个服务往往会部署多个实例来运行我们的业务如果在这种分布式系统环境下运行任务调度我们称之为分布式任务调度。 在单体项目中可以直接使用SpringTask来完成但如果在集群项目中不同的项目之间无法知道任务的完成情况。那为什么要使用分布式集群项目以下是分布式的优点 分布式系统的特点并且提高任务的调度处理能力 并行任务调度 集群部署单个服务这样就可以多台计算机共同去完成任务调度我们可以将任务分割为若干个分片由不同的实例并行执行这就是分片广播来提高任务调度的处理效率。 高可用 若某一个实例宕机不影响其他实例来执行任务。 弹性扩容 当集群中增加实例就可以提高并执行任务的处理效率。 任务管理与监测 对系统中存在的所有定时任务进行统一的管理及监测。让开发人员及运维人员能够时刻了解任务执行情况从而做出快速的应急处理响应。 xxl-job简介 XXL-JOB是一个分布式任务调度平台其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线开箱即用。 xxl-job的部署安装 xxl-job想要使用需要安装admin服务端 这里我们在docker安装 docker run \ -e PARAMS--spring.datasource.urljdbc:mysql://192.168.150.101:3306/xxl_job?UnicodetruecharacterEncodingUTF-8 \ --spring.datasource.usernameroot \ --spring.datasource.password123 \ --restartalways \ -p 28080:8080 \ -v xxl-job-admin-applogs:/data/applogs \ --name xxl-job-admin \ -d \ xuxueli/xxl-job-admin:2.3.0 默认端口映射到28080日志挂载到/var/lib/docker/volumes/xxl-job-admin-applogs通过PARAMS环境变量设置数据库链接参数数据库脚本doc/db/tables_xxl_job.sql · 许雪里/xxl-job - Gitee.com   xxl-job使用的8张表 xxl_job_lock任务调度锁表xxl_job_group执行器信息表维护任务执行器信息xxl_job_info调度扩展信息表 用于保存XXL-JOB调度任务的扩展信息如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等xxl_job_log调度日志表 用于保存XXL-JOB任务调度的历史信息如调度结果、执行结果、调度入参、调度机器和执行器等等xxl_job_log_report调度日志报表用户存储XXL-JOB任务调度日志的报表调度中心报表功能页面会用到xxl_job_logglue任务GLUE日志用于保存GLUE更新历史用于支持GLUE的版本回溯功能xxl_job_registry执行器注册表维护在线的执行器和调度中心机器地址信息xxl_job_user系统用户表 代码编写 1.导入依赖 dependencygroupIdcom.xuxueli/groupIdartifactIdxxl-job-core/artifactId/dependency 2.yml文件编写 application:version: v1.0 spring:application:name: sl-express-xxl-job server:port: 9901 xxl:job:admin:addresses: http://192.168.150.101:28080/xxl-job-adminexecutor:ip: 192.168.150.1appname: ${spring.application.name}#执行器运行日志文件存储磁盘路径logpath: /data/applogs/xxl-job/jobhandler#执行器日志文件保存天数logretentiondays: 30 这里我们设置了执行器的ip地址让执行器与xxl-job的服务端同处一个网络下让服务端可以扫描到这个执行器这样一来我们就不用自己配置了。  3.编写xxl-job执行器配置类维护一个xxl-job执行器的bean Configuration public class XxlJobConfig {private Logger logger LoggerFactory.getLogger(XxlJobConfig.class);Value(${xxl.job.admin.addresses})private String adminAddresses;Value(${xxl.job.accessToken:})private String accessToken;Value(${xxl.job.executor.appname})private String appname;Value(${xxl.job.executor.address:})private String address;Value(${xxl.job.executor.ip:})private String ip;Value(${xxl.job.executor.port:0})private int port;Value(${xxl.job.executor.logpath:})private String logPath;Value(${xxl.job.executor.logretentiondays:})private int logRetentionDays;Beanpublic XxlJobSpringExecutor xxlJobExecutor() {logger.info( xxl-job config init.);XxlJobSpringExecutor xxlJobSpringExecutor new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddresses);xxlJobSpringExecutor.setAppname(appname);xxlJobSpringExecutor.setAddress(address);xxlJobSpringExecutor.setIp(ip);xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logPath);xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;}} 4.编写第一个任务任务名字叫firstJob Component public class JobHandler {private ListInteger dataList Arrays.asList(1, 2, 3, 4, 5);/*** 普通任务*/XxlJob(firstJob)public void firstJob() throws Exception {System.out.println(firstJob执行了.... LocalDateTime.now());for (Integer data : dataList) {XxlJobHelper.log(data {}, data);Thread.sleep(RandomUtil.randomInt(100, 500));}System.out.println(firstJob执行结束了.... LocalDateTime.now());} } 5.进入服务端增加执行器和任务 增加执行器 增加任务我们这里先使用轮询策略 6.启动两个服务实例 7.执行任务 第一个服务器把所有任务都执行了 再执行一次第二个服务器又把所有任务执行了 这样一来我们可以发现并没有把分布式的优势利用上如果任务特别多都是只让一个服务器(执行器)执行任务 效率十分低下所以我们需要使用分片广播 8.使用分片广播的任务重点操作 /*** 分片式任务*/XxlJob(shardingJob)public void shardingJob() throws Exception {// 分片参数// 分片节点总数int shardTotal XxlJobHelper.getShardTotal();// 当前节点下标从0开始int shardIndex XxlJobHelper.getShardIndex();System.out.println(shardingJob执行了.... LocalDateTime.now());for (Integer data : dataList) {if (data % shardTotal shardIndex) {System.out.println(data {} data);Thread.sleep(RandomUtil.randomInt(100, 500));}}System.out.println(shardingJob执行结束了.... LocalDateTime.now());} 如何把任务分片给不同的服务器(执行器)呢xxl-job给了两个方法 // 分片节点总数         int shardTotal XxlJobHelper.getShardTotal();         // 当前节点下标从0开始         int shardIndex XxlJobHelper.getShardIndex(); 这两个方法分别获取了执行器的总数量和当前执行器的下标然后我们可以让任务的某一个唯一参数对总数量进行取模最后让对应的执行器执行任务这样一来就完成了任务的分片执行 任务选择分片广播  执行一次任务成功完成分片
http://www.hkea.cn/news/14547593/

相关文章:

  • 什么网站专做店铺商业网站设计欣赏
  • 百度网盘搜索引擎网站ppt下载免费网站
  • 厦门哪里做网站网站如何调用数据库
  • 太原网站建设小程序seo薪酬
  • 爱站网的关键词是怎么来的kratos的WordPress
  • 利用google地图标注做网站公司建站花费
  • 东莞建站模板大全宁波专业品牌网站制作外包
  • 阿里巴巴电子商务网站建设目的手机创建网站
  • 罗定城乡建设规划局网站排名优化上首页怎么做
  • 南京房产网站建设谷歌浏览器下载安卓版
  • 嘉兴网站推广公司第一ppt网ppt模板免费下载
  • 专业网站建设机构wordpress移动端底部导航栏
  • 深圳网站制作公司资讯劳动仲裁院网站建设
  • 深圳定制网站公司潍坊知名网站建设价格
  • 哪里有做网站推广重庆代还信用卡网站建设
  • 凉山州住房与城乡建设局网站免费网站大全app
  • 做网站属于It行业吗企业网站的用户需求
  • 安徽金鹏建设集团网站安装wordpress linux
  • 淘宝是行业门户网站的盈利模式是什么网站开发者工具post
  • 个人备案的网站能做盈利吗网站等保如何做
  • 招聘网站建设人员的要求类网站建设
  • 2018年深圳建设网站公司天津宏宇网站建设
  • 做暧在线观看网站做网站需要报备什么条件
  • 免费企业网站cms系统做网站枣庄
  • 中山市建设局网站窗口电话外贸网站推荐
  • 网络做网站wordpress评论区插件
  • 搭建一个企业网站需要多少钱网站开发前端指什么
  • 宗学华 网站建设上海交通大学网站建设与管理3
  • 企业网站建设价格怎么样在网络上赚钱
  • 怎样更新网站SEO与网站建设创意