说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

覆盖全领域:Google、Facebook、Twitter等大师的最佳推荐

HTML文档下载 WORD文档下载 PDF文档下载
每个公司都会针对自己使用场景做合适的设计,然而总有一些万变不离其宗的思想;比如:让应用程序保持简单、让所有事情自动化、重做你的解决方案、在适当的地方使用缓存、根据场景在数据的一致性和可用性之间做取舍。

Dodgy Coder发布了一篇关于高访问量公司扩展经验的总结文章,内容主要是High Scalability Blog上关于Google、YouTube、Twitter、Amazon、Ebay、Facebook和Instagram博文的摘取。

在具体看每个公司之前,先看一下这7个公司中的通用思想

  • 让应用程序保持简单——在扩展过程中、复杂性总会一直出现。
  • 让所有事情都自动化——包括灾难恢复。
  • 重做你的解决方案——在你准备好将其扩展到下一个等级时,你必须做好丢弃一个工作组件的准备。
  • 在适当的地方使用缓存。
  • 根据场景,在数据的一致性和可用性之间做取舍。

下面来分别看一下7个领域中大师级公司的优秀建议:

一、  Google

可靠的存储(Reliable Storage)

可靠、可扩展的存储基本上是任何应用程序的核心。GFS(Google File System)是Google的核心存储平台——它是一个大型分布式结构化的日志文件系统,Google在其中投放了大量的数据。然而为什么会自建系统,而不是使用其它已有的产品,其主要原因是Google需要对系统持有绝对的掌控力,同时这个平台也是Google与其它机构的区别之处。对GFS,他们的评价是:实现跨数据中心的高可靠性处理、具备扩展到上万个节点的能力、提供巨大的读写带宽、支持以G为单位的大数据块处理以及使用降低瓶颈发生的高效跨节点操作分发技术。

基础设施即竞争优势

Google可以释放出更快、更便宜,并且在规模上罕有匹敌的新互联网服务。许多公司与Google的想法并不相同,他们把基础设施的赡养看作是一笔负担。每个机构都使用完全不同的技术,并且缺少系统建设的计划和共识。

在平台的基础上构建应用程序

平台解决方案有一个经常被忽略的优势就是初级开发者就具备快速建立强健应用程序的能力。如果每个项目都需要建立分布式基础设施,那么你很快将会陷入困境,因为懂得这么去做的开发者非常少。协同效应并不总是空谈,从整个系统上着眼改善,可以帮助到建立在这个系统上的所有应用程序或项目。比如:改善了文件系统就可以让所有项目都立即和清晰地获益。如果每个项目都使用不同的文件系统,那么在整个堆栈上的改进将不会带来持续不断的增益。

自动化和恢复

建立订制的管理系统,让工作不需要停机进行。这样允许你更容易的进行以下操作:平衡服务器间的资源使用、动态的添加性能、将机器移除以及从容的处理更新。

建立一个Darwinian版的基础设施

并行地执行一个耗时(CPU绑定的)操作,并取优胜者。这尤其适合在CPU富余而IO不足的情况。

不要忽视学术

学术中有很多很棒的思想并没有产品化,你现在看到Google所做的事情只是在已完成技术上的部署,这些“顶尖”的技术在很早以前就已经被研发。

聚焦数据压缩

当由许多机器组成的大型集群受限于IO时,压缩不失为一良策。

二、  YouTube

越简单越好

寻找问题领域的最简解决方案。这里存在许多复杂的问题,但是选择解决方案的首要前提就是不能复杂。随着时间的发展,复杂性会一直存在,而最简单和最松散的解决方案是始终适用的。这样做的原因是保持解决问题的灵活性,反之你则会把自己逼入角落。你将会失去对程序的控制,同样当你试图解决时,问题将变的越来越复杂,你会变得无路可走。

欺骗:知晓如何在数据上作假

最快的函数调用就是根本上没有发生。当你需要做一个持续增加的计数器时,比如说一个浏览计数,你需要为每次的更改做数据库调用。或者你可以每隔一段的时间做一次调用,或者是一个随机数量做更改——但是人们可能就会认为它是实时显示的。你必须要知道如何在数据上作假。

抖动(Jitter)

如果你的系统不存在抖动,将会因为用户在同一时间对同一个资源进行请求产生Thundering Herd(“惊群效应”)。对于一个流行的视频,YouTube会尽可能的为其做缓冲。最流行的视频可能会缓冲24小时。如果所有缓存同时到期,将会造成上面所说的Thundering Herd。通过抖动,你可以设置随机的时间(18-30小时)。这将阻止事情在同一个时间发生,并且保证很长时间内请求的顺利完成。

近似的正确

用户所见就是你系统的状态。如果用户看不到你系统中存在的偏移和不一致,那么这些问题从本质上来说根本“不存在”。如果你正在一个页面上发布评论,而这时候某些用户刚好打开了这个页面,那么这些用户在半秒内可能根本看不到你的评论,然而那些阅读这个页面的用户根本不会在意这个事情。这种情况就允许你稍微的进行“作弊”,因为你的评论并没有达到全局一致性。如果真的去做这个全局上的一致性,那将会投入大量的开销,同样也是牛刀杀鸡——因为你并不是在做金融系统,所以你可以作弊。

三、 Twitter

实现一个API

Twitter的API Traffic是Twitter网站的10倍,API的使用是Twitter增长他们用例的最重要手段。保持服务的简单,允许用户在各自基础设施上建立服务,并且提出比Twitter能想到的更好应用程序思想。所谓众人拾柴火焰高,集思广益才能做更好的创新。所以开源你的应用程序,并且让其保持简单,这样就可以和其他人的应用程序进行整合。

使用你清楚的东西

Twitter使用了一堆消息传送。对用户发布的消息进行排队,然后分发给指定的用户。Twitter最主要的功能就是扮演消息传递的桥梁,架起不同格式(SMS、Web、IM等等)之间的消息传送。在后台同步发送消息去清除朋友的缓存,而不是单独的进行。Twitter开发者对Ruby最为熟悉,所以他们抛弃DRb转至Starling(一个Ruby编写的分布式队列系统)。分布式队列系统将队列写入磁盘,以防止系统崩溃。以Twitter的经验,大部分的性能提升不是语言的选择而是应用程序的设计。

知道何时进行缓存以及缓存什么

举个例子,获得你朋友的状态是很复杂的,包括了安全等多个隐患。所以,取代对数据库进行查询,朋友的状态将会被放入缓存。永远都不会接触到数据库。90%的请求都是API请求,所以他们在前端基本上不做任何页面缓存。因为Twitter的页面都对时间敏感,这样做(缓存页面)没有任何好处。

四、 Amazon

使用SOA

Amazon的架构都是松耦合的,并且围绕着服务建立。一个面向服务的体系结构(SOA),基于他们可以快速及独立的建立软件的多个组件,允许他们更快的向市场上投放。Amazon.com Web页就是一个类似的应用程序服务器。这样的话这个应用程序同时服务了网络服务接口、用户服务应用程序以及卖方接口。

使用API打造你的系统,你将围绕你的应用程序建立起一整套的生态系统。围绕着服务展开将给你更高的灵活性——你可以并行的进行操作,因为所有的输出都是一项服务。禁止客户端直接对数据库进行访问,因为不会涉及到客户端,所以你的服务将拥有更好的扩展性和可靠性。这点很像谷歌的改变某个组件让建立在整个系统或平台上的应用程序都获益。

根据场景在数据的一致性和数据的可用性之间做取舍

既然扩展你就必须做分片,所以你必须为特定的系统做高一致性或者高可用性的选择。你必须发现有效性和一致性上的重叠部分,根据服务的需求选择一个合适的方案。举个结账系统的用例:你总是希望将请求作为购物车的添加项,因为它产生了收入。在这个用例中,你就选择了高可用性。错误就隐藏在了客户方面,并且由其提出:当客户进行提交时,你必须对一致性进行重点对待,因为不同的服务(信用卡处理、运输、操作、报告)都将同时访问数据,并且每个都有各自数据一致性的需求。

拥抱失败

对失败抱平常心,它可能会经常出现,所以拥抱它。比如,使用一个快速重启和快速恢复方案。选用一个合适的数据传输,服务正常运行的几率将接近100%。建立一个自我修复、自我组织、无人值守类型的操作。

只用你需要的

让设计保持简单,确定设计中没有隐藏的需求及依赖性。将技术程度降到最低,你只需要一些解决问题的必须技术。确保这些技术不会带来更多的复杂性,慎重甚至是不选择一些特定的方法或者技术堆栈。有些地方他们使用jboss/java,但他们只选用Servlet,而不使用余下的几个J2EE框架。使用C++来处理请求,使用Perl/Mason来建立目录。

根据客户的反馈来指定决策

使用测量和客观的讨论去区分好坏。给客户一个切实的选择来测试哪个更好,并且通过这些测试制定决策。这点通常使用类似A/B测试和Web Analytics等技术实现。如果你产生决策上的问题,那么将其编码,让更多的人使用,从而清楚哪个选择才是你真正想要的。

扩展性即竞争优势

和Google一样,基础设施同样是Amazon竞争优势所在。他们可以简单的在原始服务上建立非常复杂的应用程序。他们可以独立的进行扩展操作,保持无与伦比的系统可用性,在不需要大规模的重配置下就可以快速的推出新服务。

五、 eBay

切分所有

如果你不能对其进行切分,那么你就不能对其进行扩展。通过功能和数据,将所有东西都切割成容易控制的组块。

异步所有

通过事件驱动队列和传输管道,连接起所有的组件。

拥抱失败

监视所有发生的事情,别间断服务——即使有些部分开始发生故障。最小化和控制依赖性,使用抽象的接口和虚拟化技术,组件中包含一个SLA,用户从SLA违规中恢复。自动化所有事情,组件需要自动的调整,而系统则需要自我调节和完善。

拥抱不一致

在需要使用CAP原理的地方挑选好每个特征,如果选择非分布式事务,不一致性可以通过操作顺序来最小化,通过异步恢复和调整实现最终一致性。

保存你所有的数据

数据驱动最佳的机遇、预测和推荐的发现,所以保存所有。清楚哪些数据是有权威的,哪些数据没有,进行不同的对待。

基础设施:给指定的工作分配合适的工具

需要最大化的使用每个资源:数据(内存)、处理(CPU)、时钟时间(延时)等。没有通吃的策略,区分规模对待。由商用、工业服务器共同组成。

六、 Facebook

扩展需要多次的迭代

解决方案通常是在工作的开始时提出,然而随着发展你必须对其进行修改——已经使用了一年的方案,以后可能不再适用。一个好的例子就是图片,Facebook现在(文章撰写时)每秒需要服务12亿张图片。第一代的思想就非常简单,没有考虑到扩展到如此规模,只注重功能上的实现。Uploader会将文件储存为NFS格式,而原数据将会保存在MySQL中。这个方案只用了3个月,但是这并不重要,在上市时间上他们赢得了巨大的竞争优势,同样功能上的特点比深思扩展方案来的更加重要。第二代则使用了不同的访问方式对其进行优化,鉴于较小的图片访问频度会比较高,所以对其使用了缓存,他们同样开始使用CDN(内容分发网络)。第三代则是一个overlay系统,让Facebook可以在原有的文件系统上使用BLOB存储。图片被存储到一个二进制的BLOB,因为你清楚BLOB中图片的字节偏移量,所以每张图片对磁盘只进行一次IO操作。

不要重复设计一个方案,让其保持简单

在你对系统进行横向扩展时,只使用你需要用到的。找到方案中需要重做的地方,进行优化,或者着手重新建立堆栈中需要修改的部分。Facebook花费了大把的时间去优化PHP,最终完成了HipHop的编写,完成了PHP到C++的转换,这为他们节省了大量的内存和CPU开销。然而你不需要从第一天就着手做这个事情,在完全重写一门语言之前你需要做的是聚焦产品的特性。

针对工作选用正确的工具,并且接受这个选择所带来的开销

如果你需要使用Python,并选择了它进行开发,但是必须要认识到这个选择是有开销的:通常是部署、监视、运营等方面。如果选择了一个面向服务的体系结构(SOA),你必须自己动手建立大部分所需的后端,这需要大把的时间。通过LAMP你可以省下许多开销,但是一旦你真的选择了LAMP堆栈,类似服务的配置以及监视将是随之要面对的问题。随着你对这个服务了解的加深,你必定会自费力气做重复的工作。

正确的公司文化

建立一个可以促进生产的内部环境,并根据需求不断的进行完善。在进行正确的编码和做出正确的产品之前,你首先需要定义正确的公司文化;没有一个正确的文化,公司将不会得到发展。

七、 Instagram

利用现有的云基础设施

不要去做重复的事情,你可以使用可靠并且得到证实的技术。Instagram在Amazon的EC2云计算基础设施上运行了100多个Ubuntu 11.04实例,他们同样还使用了Amazon ELB,其中包括3个NGINX实例以及自动的故障恢复(撰稿日期)。图片被储存在Amazon S3上,他们还使用了Amazon CloudFront作为他们的CDN,这么做可以有助于世界各地的图片加载时间。

异步的任务队列

当一个用户决定将Instagram上的图片分享到Twitter或者Facebook时,或者当他们需要给发布的图片发送一个实时的通告,他们把任务推送给开源的Gearman任务管理框架。使用异步队列意味着当“重载”在后台进行时,媒体上传可以快速完成。大约有200个工作者(Python编写)忙于任务队列的处理,处理服务中自己分割的份额。

推送通知

他们使用一个开源Apple Push Notification Service(APNS)提供者pyapns(基于Twisted),每天稳定的为Instagram解决10亿推送消息的任务。

实时的系统级监控

对于拥有100多个EC2实例的Instagram来说,对系统进行实时的全方位监控无疑是重中之重。他们使用Munin进行系统级监视,这个监视工具在系统任何操作超过正常范围时都会发出警报。他们开发了Munin的定制插件,基于Python-Munin之上,监视非系统级事件。他们使用Pingdom进行服务的外部监视,并且使用PagerDuty处理通知和事件。而Python的错误报告,他们使用Sentry,一个开源的Djngo应用。在任何给定的时间,他们可以实时的开始指令并得知系统中正在发生的错误。

选择性使用NoSQL技术(比如Redis)

Redis驱动了大部分的操作,活动、会话系统以及其它相关系统。Redis所有的数据都需要写入内存,所以他们在EC2上为Redis运行了几个Quadruple Extra-Large Memory实例,并且不定期给任何给定系统做跨Redis的分片。

原文链接: Scalability lessons from Google, YouTube, Twitter, Amazon, eBay, Facebook and Instagram  (编译/仲浩 审校/王旭东)

“  第五届中国云计算大会 ”将于2013年6月5-7日在北京国家会议中心隆重举行。猛击报名!

相关活动已经火热启动:

2013中国云计算大调查,每周大奖等你拿! “

Innovation Cloud 2013云创新产品与应用项目征集,欢迎研发者、团队和创业企业参加!

VB用API函数控制光驱的开关 VB用注册表保存数据(VB函数篇) 有关Tray系统盒的VB API函数 在VB中调用API函数动态改变及恢复屏幕设置 在VB中控制Ctrl+Del+Alt键 在VB中使用API函数 (之二) 在VB中使用API函数 (之三) 在VB中使用API函数 (之四) 在VB中使用API函数 (之五) 在VB中使用API函数 (之一) 在VB中用API实现多媒体 VB怎样用VB在应用程序中调用API VB怎样在DELPHI中使用API函数 指定文件夹-VB资料 VB5中注册控件三法 Bug:维护 Internet Transfer Control 之 Username 及 Pass VB对低层硬件访问控制 HitTest的妙用 -VB资料 ListBox项的控制-VB资料 VB 6.0中类聚集关系的实现 VB6编程中如何获取硬盘分区信息 VB的坐标系统综述 VB调用C程序动态链接库的方法 VB对低层硬件的访问控制 VB软件开发中的错误捕获及处理技术 VB中Combo的一种输入检查制约方法的实现 VB中Winsock控制的UDP协议的使用 VB中的时间处理问题 Windows操作平台下CGI的实现 -VB资料 按下某组键(HotKey)便执行某程式-VB资料 把所有的字体名称放到 ComboBox -VB资料 请问在发邮件的时候怎么检查邮件地址真假!有无正确的发到! 简单之极的问题(两个,有关IE和IIS),但我还不会 那里有activethreed 3.0下载,快帮帮我呀! 开发OFFICE ADDIN 插件是否需要OFFICE SDK? 谁能给我一个用C++实现哈希表的例子? ◇◆◇上海有居住证的请进来拿分◇◆◇ 誰有SilverStream的中文資料,或哪有下載,謝謝. 在VB中如何显示声音VU强度的输出 How to install VB6.0 Enterprise in Windows NT workstation4.0+sp6? 想使用windump却总是说 error opening adapter 是什么意思?? 关于pb的一个问题 怎么控制Word为只读属性? 在VB中如何显示声音VU强度的输出 快来啊,怎么总是不行?帮帮忙把!!!!!!!!!!! 关于TreeView与数据库的问题? 如何找一份软件开发的工作 WorkThread和UserThread到底有什么区别? ASGLW进来 麻烦帮下忙,一个看上去好像很简单的问题,居然搞不出 在有系统分析员的情况下实践XP 请问各位,如何装ORCALE呀,我买了ORACALE8.05的光盘,装了一个晚上都不能装上?来者有分! 怎样隐藏datagrid中的一列? 我的程序员表妹照片-----------mm程序员 80分求助!滚动ScrollBox的Scrollbar,结束滚动时,可以触发什么事件?请高手帮忙! CGI漏洞部题! 怎样令自己的程序不在按Ctrl+Alt+Delete弹出的任务管理器中出现? 如何开发http://www.mobset.com/这样的手机应用程序? 求救! 数据库操作中,内存不能为读,怎么办? 使id号自动加1的方法?? 吸烟成瘾 如何调用com? 有这样的控件么? pb中如何连接局域网中的另一台电脑,并拷贝文件? 我要做毕业设计了,请大家给点建议吧!十万火急,十万火急! 请问,该程序段如何设置组合条件查询? 通信的同步与异步 TreeView中取得节点值时遇到问题!时间太紧了,请帮忙! 招聘上海java程序员 555~~~~~小猪妹我受气了~~刚才去打网络台球,有人骂我好难听的话~~我怎么报仇?? 求助! 十万火急!!!请各位帮忙 有关sql语句的问题,急,(sql = "SELECT id,title,addtime FROM news where special ='是'") 有人知道“达丰电脑”吗?说一下来~~ 请问,在VB中怎么调用 SQL server 的脚本文件?急急急!!! EXCEL、GRADS、SURFER、GRAPHER、MATLAB哪一个好以地图为背景画二维图? 求教高手关于Rose的问题 CComPtr<IFontDisp> 的QueryInterface 问题. 怎么编程实现通过代理服务器访问intenet? 十万火急!!!请各位帮忙 请各位大哥指教:想考研究生,问哪所大学的计算机理论与软件专业最好,能够给出个排名吗,谢谢 已知关于x的方程(2m-1)x的平方+2mx+1=0 求m1、方程只有一个实数根 2、方程有两个相等实数根 3、方程有两个互为相反数实数根 西南季风对我国西南地区的影响RT 为什么西南地区春旱 夏季降水多? 巴基斯坦为什么是热带沙漠气候 关于x的方程2mx的平方-(4m+1)x+2m-1=0,当m为何值时:(1):方程有2个不相等的实数根(2)方程有2个相等的实数根(3)方程没有实数根 x取哪些整数值时,2≤3x-7 a>0,a不等于1,fx=loga(x2-2x+3)有最小值,则不等式loga(x-1)>0的解集为 印度水旱灾害频繁,与西南季风不稳定有关,具体是急 在同圆或等圆中,相等的弦所对的圆周角相等. 圆上一条弧所对的圆周角等于圆上的该弦所对的圆心角的一半. x2m+1无解试判断关于x的方程x的平方-2mx+m的平方+m=0的实数根的情况 去分母解关于x的方程 2/x-2 + mx/x²-4=0得到使分母为0的根,求m的值(5分钟内) 已知三个集合A={x|x2;-3x+2=0},B={x|x2-ax+a-1=0},C={x|x2-bx+2=0},问同时满足B是A的真子集,A∪C=A的实数a,b是否存在?,若存在,求出a,b的值;若不存在,请说明理由额 请讲得通俗一点,至少我能听明白, 已知{x=3 y=2是二元一次方程3x-ay=6的一个解,则a=几? 当m为何值时,去分母解方程(2/x-2)+(mx)/(x²-4)会产生增根? 已知集合A=2x-1/x2+3x+2>0,B=x2+ax+b小于等于0,且A交B=1/2 东亚的主要气候类型是什么 已知x=1,y=2是二元一次方程3x-ay=2的一个解,则a=() 当m为何值时,x的方程,2/x-2+mx/x的平方-4=3/x+2无解 东亚的气候类型及其分布、成因就是东亚的气候类型,它们的分布区域,以及这些气候的形成原因. 二元一次方程3x+ay=7有一个解是x=3,y=-1,则a的值为? 我国的季风气候除了受东南季风、西南季风影响外还受其它什么因素的影响? 先化简,再求值:(x-4)(3x+1)-4(3x-1)(3x+1),其中x=-1 在圆中,为什么一弦两侧所对的两个圆周角互补?如题 已知n为自然数,且x的3n+5次方=9,求(-四分之一乘x的2n+3次方)的四次方除以(二分之一乘x的2n+2 关于x的一元二次方程,mx²-3(m-1)x+2m-3=0 (m为实数)若方程有两个不相等的实数根,求m的取值范围 判断同弦所对的圆周角相等. √x^2-3x+2<x+3的解 不等式loga^(x^2-5x+6)<loga^(2x-2) 0<a<1的解 已知不等式|x+b|<3的 直径在圆周角的外部怎么证明圆周角是圆心角的一半? 在同圆中,同弦所对的圆周角互补吗要求有证明过程,最好有图,复制者闪.好的赏 解关于X的不等式ax^2+(1-2a)x+a-1<0 如果3y=x+2z,那么x^2+9y^2+4z^2-6xy-12yz+4xz= 在同一个圆中相等的弦所对的圆周角相等这句话对吗?请说下理由 反驳下 这句是错的 最好有图形反驳 当m为何值时,方程x分之2-x²-x分之x-m=1+x-1分之1无解?当m为何值时,方程x分之(2) -( x²-x)分之(x-m)=1+ (x-1)分之1 无解? 已知3y=x+2z,求x平方-9y平方+4z平方+4xz 同一个圆内,圆周角相等所对的弦相等吗 直线和圆的方程 椭圆 双曲线 抛物线 在高考中所占分值!这两个部分的内容在高考中的比重有多大?好像也是高中数学最难的两个部分吧!求 x的平方+9y的平方+4z的平方-6xy+4xz-12yz 在同圆或等圆中,相等的弦所对圆周角相等错在那 已知函数f(x)=x^3+ax^2+bx+c=0的三个实根可分别作为一个椭圆、一双曲线、一抛物线的离心率,求a/b的取值范围 已知-3y=x+2z,求x的平方-9y的平方+4z的平方+4xz (x+3y)平方(x-3y)平方 (x平方+9y平方)平方 已知x的平方+2x=3,且2mx的平方+4mx-12=0,求m的平方+2m的值 运用乘法公式计算:第一道(x-2y+3z)² 第二道 (2a+b+1)(2a-b-1) (9y的平方-x的平方)-(x+3y)是什么 已知x^2+2x=4,且2mx^2+4mx-12=0,求2m^2+m的值 关于x的方程 a(ax+4)-4(x-2)=0无解 则a的值为() 在一个装满水的底面直径为3分米的圆柱形水桶里,有一块棱长为8厘米的立方钢块,从桶中取走钢块后,水面下降了多少厘米?(得数保留整厘米数)求助高手, 设a>0且a≠1,f(x)=loga底(x^2-2x+3)有最小值,则不等式log(x-1)>0的解集为 中南半岛热带季风气候形成的原因,就像冬季风和夏季风的形成原因,什么信风变成什么之类的. 在一个装买水的底面直径为3分米的圆柱形水桶里,有一块棱长为8厘米的立方米钢块,从桶中取走钢块后(下面)水面下降了多少厘米? 巴基斯坦7月是什么季风 代数式2x2+3x+7的值为12,则代数式4x2+6x-10= 在同圆或等圆中相等的弦所对的圆周角相等吗?MY GOD!我说的是圆周角! 1、1/2x²-2xy+2y²2、8(a²+1)-16a3、4b²c²-(c²+b²)²分解上面的因式。 连续自然数的n次方和用一个公式表示出来我用n表示连续多少个自然数的话--这是22次方和的公式23*S(22次)=n^23+23/2*n^22+253/6*n^21-1771/6*n^19+4807/2*n^17-81719/5*n^15+260015/3*n^13-5133439/15*n^11+2860165/3*n^9-1 在同圆或等圆中相等的圆周角所对的弦相等,是对吗 巴基斯坦热带沙漠气候的成因是什么? 自然数的同次方相加有什么公式? 同圆中同弦所对的圆周角相等吗 巴基斯坦为什么是热带沙漠气候?说明一下具体原因.急.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘