当前位置:首页 > 数码 > 优化奏鸣曲-Sharding-启动提速秘籍-JDBC-把握 (奏鸣曲进化)

优化奏鸣曲-Sharding-启动提速秘籍-JDBC-把握 (奏鸣曲进化)

admin8个月前 (05-09)数码41

一.Sharding-JDBC启动优化

疑问剖析

最近在本地调试的时刻发现,名目本地启动比拟慢,对启动日志启动剖析,Sharding-JDBC在加载元数据的环节中中耗时116秒,占用了名目启动期间的一半。

[org..shardingsphere.core.log.ConfigurationLogger:104]:[0||0]Properties:max.connections.size.per.query:'1'[org.apache.shardingsphere.core.metadata.ShardingMetaDataLoader:131]:[0||0]Loading2logictables'meta>List<List<String>>tableGroups=Lists.partition(tableNames,Math.max(tableNames.size()/maxConnectionCount,1));Map<String,TableMetaData>tableMetaDataMap=1==tableGroups.size()?load(dataSource.getConnection(),tableGroups.get(0),>publicenumConfigurationPropertyKeyimplementsTypedPropertyKey{//......./***Maxopenedconnectionsizeforeachquery.*/MAX_CONNECTIONS_SIZE_PER_QUERY("max.connections.size.per.query",String.valueOf(1),int.class)//......}

那是不是把这特性能裁减一下就可以提高启动速度了?在将性能轻易设置成8之后由116s优化至15s。

从这里来看启动疑问处置了,同时也发生了不懂,为什么max.connections.size.per.query自动值设置为1。

这里是官方关于性能的解释,物理数据库为每次查问调配的最大衔接数量。

光看字面意思不可评价影响面,那就从Sharding-JDBC的查问入口开局看一下ShardingPreparedStatement#executeQuery

publicResultSetexecuteQuery()throwsSQLException{ResultSetresult;try{clearPrevious();prepare();initPreparedStatementExecutor();MergedResultmergedResult=mergeQuery(preparedStatementExecutor.executeQuery());result=newShardingResultSet(preparedStatementExecutor.getResultSets(),mergedResult,this,executionContext);}finally{clearBatch();}currentResultSet=result;returnresult;}

SQLExecutePrepareTemplate#getSQLExecuteGroups

privateList<InputGroup<StatementExecuteUnit>>getSQLExecuteGroups(finalString>select*fromtablewherefield=测试查问;

实践口头的环节中会被处置成

select*fromtable0wherefield=测试查问;select*fromtable1wherefield=测试查问;select*fromtable2wherefield=测试查问;......select*fromtable(n-1)wherefield=测试查问;

Sharding-JDBC会将实在SQL查问的数据启动聚合,聚合的方式依据maxConnectionsSizePerQuery性能有两种,即CONNECTION_STRICTLY、MEMORY_STRICTLY。

CONNECTION_STRICTLY可以了解为对同一数据源最多创立maxConnectionsSizePerQuery个衔接。

MEMORY_STRICTLY则是对一次性操作的数据库衔接不做限度,同一数据源n张分表就创立n个衔接,多线程并发处置。

从实践上看,是不是可以将max.connections.size.per.query设置的大一点,只需单次操作创立的数据源不超越数据库衔接下限就可以了?其实不必定,这里进入UPDATE的方法看一下。

publicintexecuteUpdate()throwsSQLException{try{clearPrevious();prepare();initPreparedStatementExecutor();returnpreparedStatementExecutor.executeUpdate();}finally{clearBatch();}}

发现这里在口头SQL前同SELECT口头了一样的预处置逻辑initPreparedStatementExecutor(),那么在max.connections.size.per.query>1的状况下,无论是那种形式都或者会依据性能的不同失掉多个数据源,口头UPDATE就有或者存在死锁疑问。

Sharding

例:

@Transactionalpublicvoidtest(){updateByID(1);updateByKey(1);}

图片

所以最终得出论断目前形态下,测试环境、预发环境可对max.connections.size.per.query启动性能,提高启动速度,在线上环境max.connections.size.per.query默以为1保障运行的稳固。

总结

在剖析启动疑问的环节中对Sharding-JDBC查问环节启动了便捷的了解,规避了线上或者引发的疑问,同时也提示了自己在改变一些性能时须要对性能所触及的影响面启动充沛评价后再启动改变。

参考资料


外包管理人员怎么使用钉钉管理人员

考勤心得_基于钉钉考勤数据自动化处理的实践 原创2021-01-12 04:22:33兰小龙 码龄4年关注基于钉钉考勤数据自动化处理的实践点击上方“技术支持联盟”,选择“置顶公众号”第一时间了解程序员大小事儿作者:冬日暖阳摘要:随着公司业务拓展,科技赋能的推进,系统逐渐增多,相应外包公司及人员也在迅速扩充,人员管理问题日渐突出,为了能够更有效的管理外包人员,通过对接钉钉考勤信息,用数据了解部门中外包实际工作情况。 01痛点厂商过多外包厂商过多,无各个厂商单独钉钉情况,只有组内每月汇总,不好逐日逐周的追踪本组内外包厂商详情,从而及时调整组内外包人员工作积极性。 人员流动性大外包人员流动性大,没有数据支撑,无法对人员个体及整体情况进行总结,通过数据从侧面了解外包工作时长、工作态度及工作能力,通过打卡详情数据,做到精确管理,典型追踪。 0 2钉钉小程序创建通过企业内部自建应用创建小程序1.登录钉钉开发者后台。 说明:只有管理员和子管理员可登录开发者后台。 2.在应用开发页面,选择企业内部开发 > 小程序,然后单击创建应用。 3.填写应用的基本信息,然后单击确定创建。 4.在应用信息页面,单击开发管理,然后单击修改。 5.根据以下信息配置开发信息,然后单击保存。 服务器出口IP:输入调用钉钉服务端API时使用的IP即企业服务器的公网IP,多个IP请以,隔开,支持带一个*号通配符的IP格式。 说明:同一个IP只能被一个企业使用。 6.管理后台地址(可选):输入管理后台地址。 在钉钉管理后台-工作台-找到对应应用,点击应用图标,跳转到填写的地址。 如设置为,登录钉钉管理后台,点击进入后如图所示。 7.单击凭证与基础信息获取应用的AppKey和AppSecret。 03现阶段实现功能日、周、月情况汇总,包含: ①外包厂商报备人员及打卡人员(含远程)对比,计算打卡率;②汇总缺卡及缺勤人员详情及月度统计名单;③汇总迟到人员(打卡时间9:30以后且前一天21:00之前打卡离场)及月度统计名单;④工作时长统计:考勤打卡总时长、打卡人数、平均时长以及排名情况。 当日当月当周04后续功能规划1.覆盖范围由新一代组转为所有产品组2.根据人力日常需要的信息调整规则,自动提供日、周、月数据,并发送邮件;3.将考勤人员与外包管理系统人员进行统一关联管理4.邮件板式调整,使整体更直观历史文章解决方案:开源规则引擎--droolsredis基本原理介绍spring-session集成redis问题通过分析Nginx服务器日志统计用户流量并预警加密与认证技术【双十一钜惠:科技人的专属保障】移动端交互速度保证——影像上传优化【双十一钜惠:科技人的专属保障】移动端认证保障——非对称加密及jwt应用系统安全建设小经验公共组件-需求自动录入TAPDPython初体验HTML5实现自定义键盘及使用Sentinel限流基于公有云实时音视频通道的构建音视频组件方法与实战经验分布式定时任务调度探讨阿里云OSS JavaAPI分享Jmeter压测的使用API接口安全优化浅谈基于idea将传统应用maven化改造实践安全漏洞预扫小工具Nacos作为注册中心,配置中心部署方案Rancher+K8S简化学习环境搭建方案Excel大数据量解析优化方案Sharding-JDBC个性化分表方案基于JWT的接口权限认证Spring Cloud Gateway实现限流公网发布的通用技术解决方案Nginx结合Lua实现限流Mysql数据同步Canal方案Weblogic部署基于Spring Cloud项目应用实例智能验证码解析java语言实现数据库的演绎与变迁-下架最后一台小型机关于struts架构通过引入spring包实现dubbo调用测试的未来式架构系列:双十一钜惠:科技人的专属保障】如何保障移动端活动的稳定运转?——移动端基础平台建设的经验分享【双十一钜惠:一个有温度的技术公众号】科技人需要什么样的保障架构师入门系列:架构三板斧“缓存,消息,异步”监控&运维redis监控工具-redislive微服务链路追踪工具 ApacheSkyWalking部署与实践快速发现生产环境SQL问题Grafana-业务数据监控实践自动化运维能力提升服务器监控及问题定位排除基于Spring Boot Admin告警之应用状态告警Ansible在自动化运维中的使用自助迁发分支工具大数据浅谈大数据平台的建设基于CDH集群的大数据项目的优化总结Oracle实时同步大数据平台解决方案实时流关联维表解决方案中间件浅谈Elasticsearch的资源分配Apache Kafka使用规范Elasticsearch安装及使用SSDB介绍及使用RabbitMq使用简单介绍Spring Cloud常用组件介绍前端ESLint + Prettier 规范前端代码对WinXP系统对兼容性关于采集操作系统、浏览器版本的设计方案及一些浏览器兼容性问题处理安卓动态加载SO文件对浏览器的理解及兼容移动端H5本地化方案调研和实践自适应网页设计短信/浏览器唤起APP方案基础知识Sonar简介JVM基础系列1:JVM内存模型介绍JVM基础系列2:JVM配置参数和Java内存模型JVM基础系列3虚拟机字节码执行引擎开发规范Java异常处理规范战略方向金融保险系统开源浪潮下机遇与挑战项目实战《Scrum精髓》心得分享聊一聊我们程序猿--技术交流感悟分享如何快速支撑健康险业务发展《凤凰项目-一个IT运维传奇故事》心得分享运维工作要学会“偷懒”“用户思维+中台架构”快速搭建金融宝app多维分保的应用探索用文化指引自身的成长之路-2020年技术成长心得分享从工作中探寻自身的成长之路从《平凡的荣耀》到记一次兼容性改造优化后的技术感悟客户为中心,统筹协调,把控风险让我们的管理看的见 E N 请识别下方二维码,关注 技术支持联盟欢迎加入基于钉钉API功能开发交流,请扫码进群打开CSDN APP,看更多技术内容钉钉开发DEMO此程序为钉钉应用,亲测可以用,非喜勿喷,有任何疑问可以私信,互相交流同步考勤数据 钉钉_钉钉考勤打卡攻略①钉钉考勤打卡是专门针对企业员工上下班打卡的一款考勤应用。 考勤打卡应用可以让人事随时随地了解团队状态,出勤人员一目了然;智能统计考勤数据,云端存储,考勤数据永不丢失哦[灵光一闪]一、如何新增考勤组?手机端:点击【工作台】—【考勤】—【设置】—【新建考勤组】电脑端:登录管理后台—【工作台】—【考勤打卡】—【考勤组管理】—【新建考勤组】二、考勤组如何添加人?手机端:点击【工作台】—【考勤打卡】—【设置】...继续访问钉钉考勤数据抓取_VBA实战篇|HR们的福利,从此不再为整理考勤记录发狂提示:这是7月的第1篇原创文章关于整理『考勤记录』的案例如果你喜欢本文,就分享给你的小伙伴,你的喜欢是我前进的最大动力如果你有任何疑问,可以文章下方留言或后台留言在HR的日常工作中,统计考勤是其中一项工作。 虽然现在有考勤机、钉钉等高科技的手段进行辅助,但是有些考勤机导出的数据会让各位HR们集体吐槽为何如此反人类的设计。 如下图所示,是我一位HR朋友发我的考勤记录(数据已做部分处理),看到这...继续访问钉钉API考勤打卡记录获取并存入数据库(python)前言: 钉钉有个开发平台,通过API可以开发自己企业内部应用,钉钉开发文档顺序写的有点乱,花了挺长时间才看懂,我写了一个python脚本来获取考勤记录,当然能做的不止这些,可以删除公司成员,修改部门,瞎发通知等等。 。 。 (这是上路的新手,大神忽略。 ) 一、准备 钉钉API地址:继续访问钉钉考勤接口调用与OA系统数据对接钉钉考勤接口调用与OA系统数据对接 公司由原来的指纹打卡更换为钉钉打卡,需要钉钉和现有的OA考勤数据对接(合并钉钉打卡数据和OA上的请假,外出,出差数据) 1.查看钉钉接口文档2.项目搭建引入钉钉开发SDK 3.获取钉钉考勤数据存储服务器数据库(调整存储格式) //测试 public s...继续访问最新发布 从钉钉后台获取考勤数据(其他数据获取类似)从钉钉后台获取数据继续访问钉钉考勤数据抓取_员工考勤管理系统:如何轻松计算出每月的考勤数据其实想要达到你这种效果的话有两种方法: 一个是使用考勤机 一个是使用员工考勤管理系统考勤机 一般的企业为了加强自己的考勤管理,使用比较多的就是指纹打卡考勤机,只要上下班的时候通过指纹打卡就行了。 优点: 费用低几百到几千就能搞定,适合人数不太多的中小企业,只要在需要整理数据的时候把数据导出到电脑里就行。 缺点: 没法儿自动帮你汇总分析,导出来的数据只是作为记录,如果你要计算或者和绩效结合的话,需...继续访问钉钉考勤数据抓取_钉钉考勤答疑你关心的都在这里钉钉/// ///那些事儿///答疑篇 ///为提高工作效率,公司引进钉钉考勤系统替代传统打卡模式,经过一个月的使用,经过前期对数据的分析整理,现将钉钉使用过程中遇到的一些疑惑进行解答。 首先请各部门确认所有人员都在“浙江新和成股份有限公司钉钉考勤组”,如果有新员工不在该群组的,部门考勤员要先将人员邀请进考勤组。 01.钉钉数据是如何采集的? ...继续访问钉钉API考勤打卡记录获取(PHP + JS)前言:钉钉有个开发平台,通过API可以开发自己企业内部应用,钉钉开发文档顺序写的有点乱,花了挺长时间才看懂,我建立一个php后端以及一个单独网页(不运行在钉钉上)来获取考勤记录,当然能做的不止这些,可以删除公司成员,修改部门,瞎发通知等等。 。 。 (这是上路的新手,大神忽略,练习下AJAX倒是挺好的。 ) 一、准备 钉钉API地址:继续访问热门推荐 获取钉钉考勤机的打卡记录并且解析有个特别恶心的地方就是打卡信息只能最多一次取七天的。 所以要注意一下; 时间格式:2018-05-01 钉钉突然改接口了,直接获取是被拒绝了,加了分页限制,加了人数限制,头大,之前得方法不能用了,重新写了版,最多一次获取50个人的考勤,并且这些人的考勤记录一次只能获取50条,我想了个办法中心思想就是首先拆分公司人员的dingId的列表,拆成每50个一组,然后限制分页最大50个每页,50个人的打...继续访问钉钉考勤数据抓取_华跃考勤管理系统华跃考勤管理系统通过我司考勤系统把人力资源管理重要环节做到及时管控,随时可分析员工日出勤异常报表、周出勤、月出勤等出勤数据。 软件兼容先进的现代感应式、RFID、指纹、图像管理等硬件设备,在防止代打卡和混加班等方面有独到的实施经验。 可满足不同企业的各种考勤制度,客户自定义的设计使不同行业的用户可根据其所制定的考勤制度对系统进行灵活设置。 智能排班的自动抓取让您对排班无需进行任何操作,班次采用...继续访问积分-钉钉考勤-取参与考勤人员钉钉考勤接口调用与OA系统数据对接(多线程版)钉钉考勤接口调用与OA系统数据对接(多线程版) 公司由原来的指纹打卡更换为钉钉打卡,需要钉钉和现有的OA考勤数据对接(合并钉钉打卡数据和OA上的请假,外出,出差数据),因为人数增减单线程定时任务数据抓取时间较长,做一下优化 1.线程池 class CountableThreadPool { private int threadNum; private AtomicInteger...继续访问从钉钉后台对接考勤打卡信息(仅供参考)# -*- coding: utf-8 -*- import requests, logging, json, openpyxl, os, time #官方下载SDK import from datetime import datetime as dt from datetime import timedelta import xlsxwriter import configparser import datetime (level=logg继续访问dingtalk 一个让钉钉服务端开发更简单的golang工具库dingtalk 这是一个集成钉钉常用功能的简易版服务端开发工具库,适用于创建一次客户端,多次调用的场景。 内置token过期时间维护;内置用户id到用户userid的计算函数,可以方便的在企业用户名与userid之间自动转换;同时在reduce函数中可以设置加入白名单过滤,避免在测试环境中发信息给非白名单用户。 具体参数说明,请参考钉钉开发文档 仓库地址安装 go get -u /kevin2027继续访问【钉钉-场景化能力包】制造业考勤数据多维分析企业结合钉钉考勤的能力后,可以获取钉钉的考勤数据,并将考勤数据从时间、机构、部门、人员等多个维度进行横向纵向比对分析,从而了解一段时间内企业考勤情况的变化趋势以及各个部门在提升考勤率方面的成果对比,并通过宣导、鼓励和问责等方式进一步提升员工的工作效能,逐步提升企业整体的考勤达成率。 继续访问

ShardingJDBC中的错误

在使用 SpringBoot 和 Sharding-JDBC 进行分库分表的时候,使用 配置文件配置分片规则,启动程序的时候,出现下面的错误: 错误图片 中的配置如图所示: 从图中看不出配置上有任何问题。 经过一段时间的排查,请观察下面的图片: 将 algorithnExpression 中的值 -> ,换成英文字符即可。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Shardingjdbc