当前位置:380元网站建设 虎网站 > 网站维护 > 正文

有风险的架构是什么?

发布日期:2020-02-02
这里的架构和设计模式存在很多问题,有些只用于非常有限的几种环境中,之所以在这几种环境中有用,是因为你真的明白在做什么。要是这样的话,你可以跳过这章不读。但为了使我的说法能够安全地适用于所有情况,我建议你不要使用这些架构。

分片

经常能够听到这样的建议:“要尽早分片,经常分片。”我的建议则大为不同“除非不得已,不要分片”。假如有足够的经验,明白不得不分片,那就要对分片做好准备,但仍然要等到需要分片的时候再进行分片。分片存在一些问题。

有风险的架构是什么?

主要问题是分片现在已经很流行,而且人们分片做得太早、太频繁。我看到的大多数系统,要么已经做了分片,要么正在考虑做分片,实际上根本就不需要一一只需要对目前可用的商品硬件进行充分利用即可。以我的观点看来,对一个中等规模的应用,就要将其构建在跨越数百台低档机器的分片架构上,试图提供无限伸缩能力,是非常愚蠢的。其实,只需要购买几台足够好的机器,在工程上多做些考虑,就足够了。对每个睁大眼睛、指着分片的成功故事的人(我曾经就是其中之一),我可以给你看一些没有使用分片的大规模应用,只是靠了几个聪明的人,就能运维这种大规模应用。我的同事,还有我,也曾经看到过大量的最流行的分片应用,透过表面现象,内部却是资源的极大浪费。

分片架构比你预想的要昂贵得多,甚至在短期内也是如此,长期则一定如此。这方面的例子有:分片一旦建立,则无法为了重新均衡的目的而再次构建;或者使用一种过于简单的方法,如用简单的取模算法作为分片函数。用低劣的工程方法构建分片架构,无疑是一种短视行为,从而也是根本无法实现可伸缩的。对于真正重要的事情也就很难考虑和设计,如常见的失效情形。如果要在很多台机器上分布应用,或哪怕只有几台,都要认真地考虑失效转移和故障后回切。应用程序也可能需要考虑失效的容错性,假如一部分数据集不可用,要能够降级运行。

分片的第三个问题涉及过度设计(overengineering)的风险。大多数事情都很难做到正好,不是做过头了,就是没有做到位。害怕架构没有足够的灵活性,或害怕不知道怎么做到正好,很容易导致过度设计。这不仅使事情过于复杂,还会产生无休止的麻烦。

写入多台主服务器

存在很多诱惑性的陷阱,其中之一就是,将复制拓扑中的多台服务器配置成可写的,你认为这样做就万事大吉了。通常的想法是,“这样就能够提高写操作的性能”或者“所有节点都是平等的,从而失效转移就容易实现了。”然而,这两者都是错误的。
 
在主-主配置中,通过向两台主服务器写,是无法提高性能的。所有的写操作都要通过复制发送给从服务器,在每个节点上都要重复执行该写操作,所以,写操作从哪台服务器上发出,是无关紧要的。

因为复制是异步执行的8,在多个位置进行写操作非常容易出错,而且几乎肯定在很多情况下都会产生麻烦,这些情况包括失效转移、应用程序错误、程序员错误,以及大量的其他常见情形。通常导致的结果有丢失数据,以及长时间的、没日没夜的苦干,试图将系统恢复到合理的、一致的状态。试图说服你的老板或同事不要这样做,肯定很困难,但一定要试试。

多级复制

如果可能的话,尽量不要使用多级复制。使用一台主服务器和N台从服务器,而不是从服务器的从服务器的从服务器,要简单得多。麻花链链的从服务器结构,有的时候是有优点的,但可能的话最好避免使用。孙子辈的从服务器和重孙子辈的从服务器很难管理,假如在这些从服务器和位于金字塔顶端的主服务器之间的中间级别上发生问题的话。常见的问题有复制延迟、服务器崩溃、错误以及网络问题。

环形复制(多于两个节点)

要像躲避瘟疫一样避免使用环形复制,其失效情形,不管是数量还是复杂度,都大得超乎想象。就在几天前,我接到一个请求支持的电话,那是由5台服务器构成的环,在试图移掉其中一台而用另外的服务器替换时,却发生了语句死循环的问题。这种架构非常脆弱,随时都会引发灾难。

依赖于DNS

我已经说过这一点,但仍然值得再重复一次。DNS很脆弱,依赖于DNS最终会自食苦果。将DNS用于域名查询是没问题的,但DNS不应该受失效转移的影响。不要将循环DNS∞用于负载均衡。同理,也不要使用/letc/hosts,对这个文件的版本变更、管理以及部署都要是原子操作。

所谓的实体一属性一值(EAV)设计模式

每当有人对我说,“我有一个托管的多租户Saas应用…”我都能够补充他的下半句:“你使用的是EAV,而且有性能问题。”在你不知道最终的数据模式是什么,或者根本就没有最终的数据模式时,EAV是有诱惑力的。这往往出现在“托管的、多租户的SaaS应用”中,这只是因为公司想销售有灵活性的东西。他们想这样告诉客户:“不管你的数据是什么样的,都会适合我们的系统的。”但这并不是关系数据库的工作方式。因为很快就会产生100个表的自连接(self-joins),而产生的查询计划除了由于搜索整个磁盘而产生的随机IO之外,不会做更多的事情。这些搜索在网站建设索引中找到一点儿数据,然后将这些简单的值按行拼接起来一一这个过程很慢的。在 MYSQL中,你是无法做100个连接的, MYSQL的限制是每个查询只能最多对61个表做连接,实际上不到20个表的时候就已经有问题了,因为执行计划的计算太复杂了。

新西兰放宽旅游签证 2023年新西兰签证还签发吗?

    新西兰旅游签证下签时间? 通常4~10个工作日是普遍的出签时间(您提交的申请材料完整、齐全)。 不过2018年新西兰移民局办事处和工作人员都缩减,加上年底圣诞假(12月22~12月27日)、元旦假期(12月29日~1月1日),年前国内提交申请的游客很多。所以办理时间估计要15个工作日左右。不知你是几时递交的? 新西兰普通旅游签证可以续签? 新西兰的个人签证是可以续签的!只需要递交这次去新西兰的旅...

       浅谈打开速度的快慢对网站的影响 没人愿意等待,所以,没有访问者真的能够忍受一个打开速度极慢的网站。但是,网页打开速度到底对用户行为有什么影响,恐怕没几个人能够说清楚吧。本文,就网页打开速度中的几个方面,做了简单阐述,希望能对网站制作有些启发。   一、网页打开的最佳速度:2秒!   许多研究都表明,用户最满意的打开网页时间,是在2秒以下。用户能够忍受的最长等待时间的中位数,在6~8秒之间。这就是说,8秒是一个临界值,如果你的网站...

       企业在广州网站建设是否需要策划? 网站策划对于广州网站建设来说很关键,然而广州网站建设的拥护者和制作人并没有意识到这一点。很多企业只是简单的制作网站:直接拿一些相关的企业简介和产品的相关介绍资料,拍几张照片就交给制作人,让他们做的漂亮点,最后等着验收结果。而制作人呢,以客户需求为出发点,为了网页更加的好看,将一些动态效果加进去就交差了。这样的网站可能外观还不错也挺符合双方的要求,但肯定不是一个实用的网站。为什么呢?因为它并不算一个...

       美国消费型网站电子邮件营销策略浅析 自网络广告兴起之日起,有个问题一直难以克服,即广告的有效性。随着各种拦截软件的大量应用,以标准横幅广告为代表的网络广告点击率日益降低。为了获得更大的生存空间,网络广告商一方面对现有广告形式进行创新,另一方面也在不断发展其他类型的广告,其中电子邮件广告被寄予了很高的期望。从中国目前网络广告运营的现状来看,电子邮件广告的形式已经应用,但处于一种补充地位;而在大洋彼岸,美国的电子邮件广告却已经在网络广告...

       西安网站为什么要选择做优化推广 网站优化推广 的原理是将网站按照搜索引擎自动收录的规则,将网站进行技术等相关处理,以便网站能够快速有效被搜索引擎收录,掌握搜索引擎网站优化技术对长春企业网站开展网络营销实践有着重大意义,能获得更大收益有着广阔而美好的前景。   1.开展网络营销我们必须要先了解搜索引擎进行合理网站优化的重要性,否则过度优化将会给企业网站带来重大的损失。   使用搜索引擎,是现在大部分使用网络的人的日常行为习惯。无论...

       怎样做到导航站不再千篇一律? 一、定位最重要。 说起导航站,我们公司的那些上了年纪的老员工都能说出来几个,因为那些大站如神一样的存在着,当然,我也看见一些不常见的,在维护公司数百台电脑的时候,就常常碰到一些导航站恶意的篡改了电脑首页,修复起来十分麻烦,碰到这种情况我一律把该网站禁止,永久不予访问。这是题外话了,我想表达的是,那么多站长在做导航网,若你没有些非常手段,那么你的导航站最终的结果只能是自娱自乐,最后坚持不住而关闭。 ...

最新模板
少儿英语培训机构网站建设 培训公司网站建设
成人自考网站建设 成人培训网站制作设计版面
智能家居摆设设计网站建设 智能家居装修企业网站建设
铜螺母,铜螺丝,螺栓,螺钉工厂网站建设
废气处理设备,如活性炭吸附箱、RTO蓄热式氧化处理设备、光氧等离子复合设备 低温等离子设备 光氧催化设备等网企业网站建设
图文阅读