背景
微服务项目中通常包含各种服务。其中一项服务与存储用户相关的数据有关。我们使用Spring Boot作为后端,使用MySQL数据库。
目标
随着用户基数的增长,服务性能受到了影响,延迟也上升了。由于只有一个数据库和一张表,许多查询和更新由于锁异常返回错误。此外,随着数据库的规模不断扩大,性能进一步下降。因此,需要一种解决方案来处理不断增长的用户基数。
解决方案
表格分片

第一种方法是在单个数据库中创建多个类似的表,并使用user_id作为分片键。
我们在user_id列出现的任何地方创建了每个表的10个副本。因此,代码中需要进行两个更改。第一个更改是获取用户请求中的user_id。第二个更改是替换由Hibernate生成的查询中的表名。
关于第一个更改,获取user_id很容易,因为我们已经在请求标头中获取了user_id。
对于第二个更改,我们扩展了Hibernate的EmptyInterceptor类,并覆盖了onPrepareStatement方法,该方法在准备SQL字符串时调用。该方法有一个字符串参数,即SQL语句。该SQL语句中也包含表名。因此,这里根据请求头中存在的user_id用所需的表名替换表名。例如,如果user_id为77。我们取它10的模得到7,并将表名user_profile替换为user_profile_7,因为我们已经在数据库中创建了10个副本。以下是扩展EmptyInterceptor类的代码。如果您使用的是spring boot 3,则EmptyInterceptor已经弃用,你可以使用StatementInspector接口,并覆盖inspect方法,并将逻辑从onPrepareStatement方法移动到inspect方法中。
public class DynamicTableNameSharding extends EmptyInterceptor {@Overridepublic String onPrepareStatement(String sql) {// 替换表名if (Boolean.parseBoolean(DatabaseEnvironment.TABLE_SHARDING_ENABLED.label)) {for (String tableName : SHARDED_TABLES) {if(sql.contains(tableName)) {ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();String shardingNumber = getSharding(attr);sql = sql.replace(tableName, tableName + shardingNumber);// 这里不要使用break,因为一条查询可以包含多个表,因此需要更改所有已启用分片的表的名称}}}return super.onPrepareStatement(sql);}}
在上述函数中,SHARDED_TABLES是已启用分片的表的列表。getSharding方法根据请求头中传递的用户ID返回分片号。由于在单个查询中存在多个表(例如连接或复杂逻辑),因此我们使用for循环来正确替换查询中出现的所有表。
我们还通过扩展DefaultVisitListener类,在某些操作中使用了JOOQ。
数据库分片
虽然通过表格分片提升了一定性能,但还有进一步改进的空间,我们进一步对数据库进行分片。与创建表副本类似,我们创建10个数据库 服务器 /实例的副本,每个服务器都有10个表的副本。总共有100个表副本。
因此,同时保持10个数据库服务器运行也需要路由查询到正确的数据库。
首先,在的Spring Boot应用程序中创建了10个数据源,每个数据源都有不同的数据库URL。现在,我们需要一种方法将数据库连接路由到正确的数据源。因此,我们使用了AbstractRoutingDataSource,它是一个路由getConnection()调用到其中一个多个目标数据源的抽象DataSource实现,这个目标数据源基于一个查找键。然后,我们重写了这个方法determineCurrentLookupKey。
因此,这个方法返回一个键,用于标识我们已定义的10个数据源中的一个特定数据源。因此,我们也更改了一些用于确定表和数据库的逻辑。我们使用个位数字标识数据库服务器,使用十位数来标识表。例如,用户ID为447将被路由到第7个数据库服务器及该服务器上的第4个表副本。因此,我们在10个数据库服务器上有100个表,这大大提高了性能。
结论
在这个例子中,我们既使用了表分片又使用了数据库分片。除此以外,我们可以进一步提高性能,方法是在单个服务器中增加更多的数据库,可能总共有1000个表的副本。
目前大专热门的专业
1.电子信息类 电子信息产业是一项新兴的高科技产业,被称为朝阳产业。 根据信息产业部分析,“十五”期间是我国电子信息产业发展的关键时期,预计电子信息产业仍将以高于经济增速两倍左右的速度快速发展,产业前景十分广阔。 未来的发展重点是电子信息产品制造业、软件产业和集成电路等产业 ;新兴通信业务如数据通信、多媒体、互联网、电话信息服务、手机短信等业务也将迅速扩展;值得关注的还有文化科技产业,如网络游戏等。 目前,信息技术支持人才需求中排除技术故障、设备和顾客服务、硬件和软件安装以及配置更新和系统操作、监视与维修等四类人才最为短缺。 此外,电子商务和互动媒体、数据库开发和软件工程方面的需求量也非常大。 相关专业 电子信息工程、通信工程、信息对抗技术、信息工程、信息与计算科学等。 freshlover 2006-06-08 20:19 2.生物技术类 21世纪是生物的世纪,生物科技经济发展起来是必然趋势。 据了解,目前在全国年产值过亿元的生物技术企业已蓬勃发展起来,各地把生物技术作为经济发展的突破口。 但生物技术的开发需要具有独立工作能力和良好科学素质,特别是具有创造能力和付诸实现能力的新型人才。 生物科研人才近年来一直是国际人才竞争的焦点之一。 我国目前无论是生物技术的研究人员,还是生物技术产品开发的人才,都存在严重不足的问题,未来一段时期我国对生物技术人才有极大需求。 有关专家预计,随着基因技术、生物工程等领域的发展和产业升级,这类高技术专业人才的缺口会越来越大。 相关专业 生物技术、生物工程、生物资源科学等。 freshlover 2006-06-08 20:19 3.现代医药类 全球现代医药技术产业继续呈高速增长态势,现代生物技术产业已经成为医药产业新的国际竞争焦点。 有关专家指出,面对日趋直接而激烈的国际化市场竞争,我国发展现代中药及生物医药技术产业已是势在必行。 特别是现代中药产业不仅在世界发展较快,而且在我国也是增长较快的产业之一,目前已成为我国一项具有较强发展优势和广阔市场前景的潜在的战略性产业。 科技部已将“创新药物与中药现代化”列为“十五”期间国家12个重大科技专项之一。 相关专业 药物制剂、制药工程、生物医学工程、中药学等。 freshlover 2006-06-08 20:20 4.汽车类 随着汽车逐渐成为我们生活中的必需品,汽车专业也成为了社会上十分走俏的专业。 汽车类专业人才成为了炙手可热的“抢手货”,汽车行业中的复合型人才将成为竞争焦点,比如精通外语的汽车设计人才、具备汽车技术背景的营销人才、具备汽车销售背景的IT类专业人才,以及汽车信贷、保险等金融人才年将继续走俏。 此外,热能与动力工程、工业设计等相关专业人才需求也将持续看涨。 相关专业 车辆工程专业、汽车服务工程、热能与动力工程、工业设计等。 freshlover 2006-06-08 20:20 5.物流类 加入WTO后,随着我国在公路货运、仓储、海上搬运运输、船舶代理等方面进一步开放市场,我国的相关行业和企业与国外物流企业将开展全面合作,这意味着,我国的现代物流将进入快速增长、全面发展的新时期。 专家预计,今后10年乃至更长一段时间,我国物流业将接近或赶上发达国家的物流发展水平。 目前,国内需要600多万中高级物流专业人才,物流专业人才已被列为我国12类紧缺人才之一。 到2010年我国大专以上物流人才的需求量约为30万至40万,而目前各类大专院校物流专业年培养规模在5000人左右,物流规划咨询、物流外向型国际、物流科研这三种人才在业内最为缺乏。 相关专业 物流管理、现代物流等。 freshlover 2006-06-08 20:21 6.新材料类 新材料的应用范围非常广泛,发展前景十分广阔,其研发水平及产业化规模已成为衡量一个国家经济发展、科技进步和国防实力的重要标志。 “十五”计划开始以来,国家产业政策导向明显向以新材料产业为代表的高新技术产业倾斜,这对新材料产业发展无疑将产生重要的推动作用。 同时,国内支柱产业及高技术产业发展对新材料的需求不断扩大,机械制造业、电子信息制造业、汽车工业、建筑业等支柱产业的快速发展对原材料在质量、性能与数量等方面都提出了更高的要求;高新技术产业将带动新材料需求的增加,特别是电子信息材料以每年20%至30%的速度增长,生物医用材料以约20%的速度递增。 此外新型能源材料、生态环境材料、航空航天材料等新材料的需求将随着社会经济的发展而迅速增加;复合材料的需求将有较大幅度的增加,特别是树脂基的复合材料。 相关专业 高分子材料与工程、复合材料与工程、再生资源科学与技术、稀土工程等。 freshlover 2006-06-08 20:21 7.环境能源类 环保产业被称为21世纪的朝阳产业,有着巨大的发展潜力。 随着环境保护投入的大幅度增加,我国环保产业发展较快,成为国民经济的重要组成部分。 环保产业的发展之快,效益之显著,无疑是环保技术人员的研究与开发的结果。 但目前,我国环保产业面临严重人才不足,现有的环保技术人才难以适应国民经济的发展。 如果环保技术人员按环保从业人员的5%计算,将需要50万人。 而我国现有的环保技术人员离实际需求相差甚远,培养环保技术人才的任务十分艰巨。 同时,开发利用可再生能源也成为世界能源可持续发展战略的重要组成部分,政府的政策支持、社会的认可以及中国丰富的可再生资源,使得我国新能源产业发展前景十分广阔。 freshlover 2006-06-08 20:32 8.管理类 因为加入WTO和申奥成功将直接带动我国外经外贸的大发展,所以,管理类专业人才社会需求大增将指日可待。 在现代企业中,一个优秀企业家的作用超过了100名优秀工程师、1000名优秀工人。 目前我国越来越多的转换企业产权、机制以及企业法人实行招标制、年薪制,实际上就是将企业的管理大权交到职业企业家手中。 而据我国近三年的统计资料显示,外方代理人正以每年500%以上的速度递增,目前在不少大城市已形成一个职业阶层。 不管是外企还是国企,高层管理人员的价值越来越看涨。 所以,尽管企业管理专业的学生刚毕业的时候可能做的并不是管理的工作,但是过几年之后,有管理专业背景的人将会成为抢手货,MBA仍将是企业争夺的对象之一。 相关专业 工商管理类、人力资源管理、工程管理等。 freshlover 2006-06-08 20:33 9.法律类 目前我国律师人才十分缺乏。 据不完全统计,目前我国取得律师资格的专职律师还不到2万人,平均每10万人口只有两名律师,而聘请律师的企业也只占全部企业的千分之几,无论是数量还是质量都远远不能适应社会的需求。 由此可见,我国律师人才的供需矛盾十分突出。 同时,随着全民的法律意识逐渐在增强,企业的法律意识也在增强,合同化的概念深入人心,对法律专业人才的需求将会大大提高。 法律专业因此成为未来热门专业之一。 相关专业 法学、国际法、国际经济商业法、国际商法等。 freshlover 2006-06-08 20:33 10.营销类 由于我国市场经济不断完善,市场营销已经渗入到各种各样的企业,人们对市场营销的观念也将有更深的认识,所以对这方面人才的需求将继续看好,并有继续升温的可能。 而随着我国住房制度的商品化发展和商品房信贷业务的日益红火,购买商品房已成为绝大多数国人的首选投资,房产商之间的竞争也越来越激烈,其中最有效的促销手段就是聘用房产推销员。 而随着小轿车的大幅降价及国民收入的逐年增加,小轿车在21世纪进入中国三分之一以上家庭已不再是神话,因此,汽车营销人员也将走俏职场。 再有保险推销人员在经历了20世纪90年代的“艰苦创业”之后,也将成为21世纪的热门职业。 所以,对市场营销专业人才的整体需求会增大。 相关专业 环境科学、环境工程、能源与环境系统工程、资源环境与科学等。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 查了很多资料,望采纳
32位操作系统和64位操作系统有什么区别?
我们通常说的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。 64位平台不管是在性能上,还是在功能上,都要领先于目前的32位平台,目前主流的32位处理器在性能执行模式方面存在一个严重的缺陷:当面临大量的数据流时,32位的寄存器和指令集不能及时进行相应的处理运算。 32位处理器一次只能处理32位,也就是4个字节的数据;而64位处理器一次就能处理64位,即8个字节的数据。 如果将总长128位的指令分别按16位、32位、64位为单位进行编辑的话:32位的处理器需要4个指令,而64位处理器则只要两个指令。 显然,在工作频率相同的情况下,64位处理器的处理速度比32位的更快。 除了运算能力之外,与32位处理器相比,64位处理器的优势还体现在系统对内存的控制上。 由于地址使用的是特殊的整数,而64位处理器的一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。 传统32位处理器的寻址空间最大为4GB,而64位的处理器在理论上则可以达到1800万个TB(1TB=1024GB)。 从32位到64位,表面上好象只是CPU字长增大了一倍,实际上它使寻址范围、最大内存容量、数据传输和处理速度、数值精度等指标也成倍增加,带来的结果就是CPU的处理能力得到大幅提升,尤其是对强烈依赖数值运算、存在巨量数据吞吐和需要超大并发处理的应用提升效果非常明显,如科学计算、人工智能、平面设计、视频处理、3D动画和游戏、数据库以及各种网络服务器等。 目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T技术、和Intel公司的IA-64技术。 其中IA-64是Intel独立开发,不兼容32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,人们习惯性地称它为“纯64位技术”。 64位计算技术从2004年推出至今,其产品线不断丰富。 目前,AMD方面支持64位技术的CPU有Athlon 64系列、Athlon FX系列和Opteron系列。 Intel方面支持64位技术的CPU有使用Nocona核心的Xeon系列、使用Prescott 2M核心的Pentium 4 6系列和使用Prescott 2M核心的P4 EE系列。
优化大师与鲁大师之间,哪个比较好?
鲁大师的前身即为著名的“Z武器”。“Z武器”是一款集专业而易用的硬件检测、系统漏洞扫描和修复、常用软件安装和升级的装机工具,专业而易用的硬件检测拥有专业而易用的硬件检测,不仅超级准确,而且向你提供中文厂商信息,让你的电脑配置一目了然,拒绝奸商蒙蔽。 它适合于各种品牌台式机、笔记本电脑、DIY兼容机的硬件测试,实时的关键性部件的监控预警,全面的电脑硬件信息,有效预防硬件故障,让您的电脑免受困扰。 电池健康监控:电池状态、电池损耗、电池质量的检测,有效的提高电池的使用寿命和电脑的健康。 系统漏洞扫描和修复系统漏洞主要指操作系统中因Bug或疏漏而导致的一些系统程序或组件存在的后门。 木马或者病毒程序通常都是利用它们绕过防火墙等防护软件,以达到攻击和控制用户个人电脑的目的。 所以为了系统的安全和稳定,及时下载安装补丁、修复系统漏洞非常必要。 各类硬件温度实时监测在硬件温度监测内,Z武器显示计算机各类硬件温度的变化曲线图表。 硬件温度监测包含以下内容(视当前系统的传感器而定):CPU温度、显卡温度(GPU温度)、主硬盘温度、主板温度。 小提示:你可以在运行硬件温度监测时,最小化Z武器,然后运行3D游戏,待游戏结束后,观察各硬件温度的变化。 常用武器(清理武器、驱动武器、优化武器)清理武器扫描、清理系统垃圾迅速、全面,清理武器可以让电脑运行得更清爽、更快捷、更安全。 驱动武器为用户提供驱动备份、还原和更新等功能。 驱动武器具备软件界面清晰,操作简单,设置人性化等优点。 优化武器提供全智能的一键优化和一键恢复功能,包括对系统响应速度、用户界面速度、文件系统、网络等优化。
特点1、提供国内最领先的计算机硬件信息检测技术,包含最全面的硬件信息数据库。 与国际知名的Everest相比,”Z武器”给用户提供更加简洁的报告,而不是一大堆连很多专业级别的用户都看不懂的参数。 而与其他国际知名的CPU-Z(主要支持CPU信息)、GPU-Z(主要支持显卡信息)相比,”Z武器”提供更为全面的检测项目,并支持最新的各种CPU、主板、显卡等硬件;
2、“Z武器”能扫描定时您的计算机的安全情况,为您提供安全报告,到微软官方网站为您下载安装最适合您的机器的漏洞补丁。 “Z武器”只会安装您的机器需要升级的漏洞补丁,并支持下载同时安装,大幅提高补丁安装速度,节省热门软件推荐安装您的等待时间。
3、“Z武器”能自动检测您的机器的软件安装信息,推荐最适合的软件进行下载安装;还能随时检查已经安装的软件信息,生成一个升级报告,可以单独升级任何一款软件,也可以直接点击全部升级;并自带软件管理器,可以方便的管理与卸载,省事省心。
所以鲁大师好一点
发表评论