调度思想-现实中的事物与技术里面其实存在类似道理

以前看有人解决铁道部订票方案的时候,提供的思路。网友评价是:陷入了纯技术思维路子。

 

仔细想想非常有道理。

这里还是一种调度的思想原则。现实中很多事情像公交车,列车,拥堵的时候进行调度,运作的不错。如果陷入纯技术思维就会是:我如何才能把道路扩宽,让车子更快地通过道路….这些方案都可行。但实际意义要考虑成本与实用性。这种思维可以用到网站技术上去。然后技术作为一种工具,在思想指导下实现(比如代码锁定金额,不能操作等等)。

 

 

即便用复杂的技术解决了快速访问,下单的问题,那接下来新的问题来了:

 

 

 

所以还是要限额调度的思想。那个时候我发现,学会相通性思考。把现实中的东西道理带到技术中去。比如现实中解决交通问题的调度思想就完全很好。

之所以归纳总结,今天我在看石展《mysql开发军规》分享一个dba的经验时候,找到了思想的共鸣,他也用交通问题这个例子来说明解决问题的思路:

他举例,说明现实生活在堵车,只要其中一辆车抛锚了,就会导致所有的车都无法前进,被卡死了(本身道路宽度就有限)。所谓一个抛锚拖死全部。

 

在传统的数据库系统中,是建议,尽量使用更少是sql完成更多是事情。也就是尽量少到使用一条sql实现更多的查询。
但是这个使用原则在mysql中就不适合(我觉得在互联网大并发访问情况下都不适合,不清楚oracle什么情况),因为mysql被设计成适合高效的连接和断开,响应查询。所以很适合拆分成多条sql去实现。
假设一个情况:在5000个qps中(每秒响应5000个sql请求),如果一条sql查询超过了一秒,就会导致整个拖慢,就像交通中道路一辆车抛锚了,整个交通都会堵掉。

 

我曾经在思考这方面:现实生活中,堵车,道路宽度有限。如果单纯依靠扩宽道路来解决交通问题,是解决不了根源问题的,因为道路宽度即便扩宽,也有更多车去拥挤,扩宽是有极限,扩到不能扩了才麻烦(类似于服务器,数据库方面使劲去扩,已经达到极限化了,换种思维模式往往柳暗花明)。我的理解是,无论你把道路扩宽多少,总会有更多的车辆不够用,然后占据车道去了。原来3米,后来变成5米宽。开车的车主仍然会去占据剩下2米的宽度。应该是一种调度思想指导。

我曾经想:坐火车,每到过节车厢就那么拥挤。如果多增加一些车厢了。是不是就不会那么拥挤了。后来我想了想,随便增加多少。仍然会拥挤得满满的。增加更多的车厢,仍然会提供更多的售票,人还是会去买的(毕竟中国人都更加倾向于做火车,因为穷人多,比较经济。高铁的话为什么反而是空空,因为价格贵。火车当然安全也是一大因素。)

 

网友提到一点,让我印象深刻,那就是:在订票系统没出来之前,现实中的铁路售票系统都足够应付全国范围的售票了。说明这个系统足够应付。只是网络自助售票系统没有解决好调度问题。在怎么往大并发的技术方面去着力,也只是付出与产出不成正比。

把业务模式稍微调整一下,参考现实中已经有的成功例子:交通调度。把这类思想运用,也许发现会更好。

 

现在也逐渐感悟到技术跟哲学之间的关系。哲学是一种道的层面,思想层面的东西。具体的技术,mysql,java,php等都是具体的术。就是战术与战略之间的关系了。不过我承认还是的多了解一些战术,这样战略才能知道自己制定,这个战略是否能实现

 技术工作者,提升到哲学层面才是方向。我发现,同样是技术,有的人,虽然做了7、8年。仍然可能纠结在具体的技术层面。无法上升到思想层面去看待问题。

”这个世界好像没有一个完美的技术解决方案“,好像跟哲学都是相通的。选了a方案,可能失去的是其他方面。总会有失去。有既符合a,b,c的方案很少。比如,数据库设计中,空间换性能,需要提高性能。有时候就要损失一定数据的一致性(不符合三大范式)。

往往都是一个取舍的过程,得到我想要的,然后失去的是我不是非常关注的。

 

 

补充一下,后来看这本书《大型网站技术技术架构》提到一点我很认同,现在收藏下来如下:

 

误区三:企图用技术解决所有问题

最典型的例子就是2012年年初12306故障事件后,软件开发技术界的反应。

各种专业和非专业人士众说纷纭地帮12306的技术架构出谋划策,甚至有人提议帮12306写一个开源的网站,解决其大规模并发访问的问题。

12306真正的问题其实不在于它的技术架构,而在于它的业务架构:12306根本就不应该在几亿中国人一票难求的情况下以窗口售票的模式在网上售票(零点开始出售若干天后的车票)。12306需要重构的不仅是它的技术架构,更重要的是它的业务架构:调整业务需求,换一种方式卖票,而不要去搞促销秒杀这种噱头的游戏。

后来证明12306确实是朝这个方向发展的:在售票方式上引入了排队机制,整点售票调整为分时段售票。其实如果能控制住并发访问的量,很多棘手的技术问题也就不是什么问题了。

技术是用来解决业务的问题,而业务的问题,也可以通过业务的手段去解决。

 

====================================end

 

 

 

 

 

 

我记得我曾经看阿里旺旺的dba分享他们的数据库设计经验的时候,童家旺提到一句关键话:不是我们技术多么牛地解决了数据库方面的问题,而在于我们的架构师把产品经理一些无理的需求给砍掉了(不是原话,但大体是类似的意思)

 

 

有些感想,果然对一个事情钻研越深入透彻,思维就越提升到高层面,因为你熟悉了所有技术手段了,知道什么是技术手段解决不了的,不是陷入纯技术思维,使劲用技术手段去折腾,此时往往是哲学思维发挥作用了

 

 

时间: 2024-10-01 10:45:52

调度思想-现实中的事物与技术里面其实存在类似道理的相关文章

鲍尔默:在理想和现实中找到平衡最具挑战性

导读:微软CEO史蒂夫·鲍尔默(Steven Ballmer)接受<纽约时报>的采访,回答了管理中所面临的挑战等问题. 以下为采访全文: 问:作为一位领导者,你觉得还有什么需要提高的地方吗? 答:我想事情很快,我的脑子转得太快了,所以就算我听完别人说的全部内容,如果没有显示出全部听进去了的样子,别人会认为我没有用心去听.有时候你的确没有听进去,因为你的脑子转得太快了.我就是这样,我想事情总是很快.所以说,如果你真想让别人发挥自己的最大能力,就必须认真倾听他们说话,并且让他们觉得自己的话被听进去

[收藏]数据库设计中的反规范技术探讨

规范|设计|数据|数据库|数据库设计   数据库设计中的反规范技术探讨   注:这是很久以前在一个论坛看到的文章,觉得写的不错:本着与众多业内人士交流.传播思想的目的展示在此,原论坛的名称已经不记得了,当时亦是转载.你可以任意转载此文,但由此引起的任何道德.法律纠纷与http:blog.csdn.net/aceplus无关,且http:blog.csdn.net/aceplus保证没有将此文用作任何商业和非法用途:如果您是本文的原作者,认为http:blog.csdn.net/aceplus转载

虚拟现实在现实中触碰虚拟世界:视觉盛宴背后的技术革命

早在50年前,虚拟现实就已出现,如今它有变革人类视觉体验之势.在虚拟现实重构的世界里,我们不仅有视.听.触.嗅等感觉,而且它们将变得愈发真实,与现实世界无异.与虚拟现实相对应的,还有增强现实以及混合现实,它们在改变人类视觉体验的同时,也在真切地变革我们的生活.我们既可用它们来购物,也可进行模拟驾驶,甚至还可用它来治疗疾病.尽管目前虚拟现实技术仍有许多缺陷,但它注定会在不远的将来影响我们每一个人.本文来自上海交通大学软件学院教授杨旭波日前在"新民科学咖啡馆"活动的分享. 早在50多年前,

现实中的容器技术运用案例

进入2016年以后,容器技术早已经从最初的牛逼满天飞到了脚踏实地的大规模铺开.很多企业都已经在实际项目中或深或浅的使用着容器技术,享受到新技术带来的简洁和高效.作为国内最早研究和使用Docker技术的企业,ThoughtWorks在2013年底就在实际项目中将Docker用于测试环境的资源复用,并在之后的许多项目中逐渐总结出许多有用的实践和经验.在这篇文章里,我将聊聊Docker在我经历过项目中的一些比较有代表性的运用场景. 现实中的容器技术运用方式非常广泛而灵活,时常让人觉得脑洞大开,概括来说

中英文对照Stargate中的科学与技术_中英文对照

Stargate 作为一部延续了十年的硬科幻,不仅继承了其前辈的"科学"体系,又有自己的创新和挖掘,其中涉及到的科学与技术涵盖空间技术.物理学.能源与动力科学.生命科学.计算机科学.哲学与社会科学等诸多领域,不仅满足了观众对新技术的猎奇,也在一定程度上透射出人类文明的发展方向,而这正是科幻的本质所在.本文作者作为SG系列的忠实fans,保持了平均每集5+遍的观看记录,在这里希望能够整理一下Stargate中出现的科学与技术, 并与传统科幻的体系和现实中的原型做比较,希望能够让更多的人了

CSS中的滑动门技术

css 原文作者:Douglas Bowman 原文出自:A List Apart 中文翻译:54player.com nobita 版权说明:本文中文翻译版权归译者54player.com nobita所有.需要转载发表的,请先与作者联系 在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果.根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素.在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用. 标

现实中的细粒度审计(1)

现实中的细粒度审计(1) 作者:Arup Nanda 了解如何使用 Oracle 数据库的细粒度审计特性来跟踪对表中特定行的只读访问 - 以及更多信息 传统的 Oracle 数据库审计选件允许您在宏观级别上跟踪用户在对象上所执行的操作 - 例如,如果您审计对某个表的 SELECT 语句,则可以跟踪是谁从表中选择了数据.但是,您不知道他们选择了什么.利用数据操纵语句 - 如 INSERT.UPDATE 或 DELETE - 您可以通过使用触发器或使用 Oracle LogMiner 实用程序来分析

现实中的细粒度审计(2)

现实中的细粒度审计(2) 管理 FGA 策略 在前文中您看到了如何添加 FGA 策略.要删除策略,您可以使用以下语句: begindbms_fga.drop_policy (object_schema => 'BANK',object_name => 'ACCOUNTS',policy_name => 'ACCOUNTS_ACCESS' );end; 对于更改策略而言,没有随取随用的解决方案.要更改策略中的任何参数,必须删除策略,再使用更改后的参数添加策略. 有时您可能需要临时禁用审计收

CSS中的滑动门技术研究

css 在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果.根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素.在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用. 标签导航栏就是其中的一个例子.过去,我们频繁的使用这些标签,并已成为了一种非常流行的站点导航方式.现今,在CSS已被广泛支持的前景下,我们可以为我们站点制作出更高质量和更好外观的标签导航栏来.你也许知道CSS可以用来"驯服"无