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

.NET技术+25台服务器怎样支撑世界第54大网站

HTML文档下载 WORD文档下载 PDF文档下载
同时使用Linux和Windows平台产品,大量使用静态的方法和类,Stack Overflow是个重度性能控。同时,取代横向扩展,他们坚持着纵向扩展思路,因为“硬件永远比程序员便宜”。

【编者按】StackOverflow是一个IT技术问答网站,用户可以在网站上提交和回答问题。当下的StackOverflow已拥有400万个用户,4000万个回答,月PV5.6亿,世界排行第54。然而值得关注的是,支撑他们网站的全部服务器只有25台,并且都保持着非常低的资源使用率,这是一场高有效性、负载均衡、缓存、数据库、搜索及高效代码上的较量。近日,High Scalability创始人Todd Hoff根据Marco Cecconi的演讲视频“ The architecture of StackOverflow”以及Nick Craver的博文“ What it takes to run Stack Overflow”总结了StackOverflow的成功原因。


免费订阅“CSDN大数据”微信公众号,实时了解最新的大数据进展!

CSDN大数据,专注大数据资讯、技术和经验的分享和讨论,提供Hadoop、Spark、Imapala、Storm、HBase、MongoDB、Solr、机器学习、智能算法等相关大数据观点,大数据技术,大数据平台,大数据实践,大数据产业资讯等服务。


以下为译文


意料之中,也是意料之外,Stack Overflow仍然重度使用着微软的产品。他们认为既然微软的基础设施可以满足需求,又足够便宜,那么没有什么理由去做根本上的改变。而在需要的地方,他们同样使用了Linux。究其根本,一切都是为了性能。

另一个值得关注的地方是,Stack Overflow仍然使用着纵向扩展策略,没有使用云。他们使用了384GB的内存和2TB的SSD来支撑SQL Servers,如果使用AWS的话,花费可想而知。没有使用云的另一个原因是Stack Overflow认为云会一定程度上的降低性能,同时也会给优化和排查系统问题增加难度。此外,他们的架构也并不需要横向扩展。峰值期间是横向扩展的杀手级应用场景,然而他们有着丰富的系统调整经验去应对。该公司仍然坚持着Jeff Atwood的名言——硬件永远比程序员便宜。

Marco Ceccon曾提到,在谈及系统时,有一件事情必须首先弄明白——需要解决问题的类型。首先,从简单方面着手,StackExchange究竟是用来做什么的——首先是一些主题,然后围绕这些主题建立社区,最后就形成了这个令人敬佩的问答网站。

其次则是规模相关。StackExchange在飞速增长,需要处理大量的数据传输,那么这些都是如何完成的,特别是只使用了25台服务器,下面一起追根揭底:

状态

  • StackExchange拥有110个站点,以每个月3到4个的速度增长。
  • 400万用户
  • 800万问题
  • 4000万答案
  • 世界排名54位
  • 每年增长100%
  • 月PV 5.6亿万
  • 大多数工作日期间峰值为2600到3000请求每秒,作为一个编程相关网站,一般情况下工作日的请求都会高于周末
  • 25台服务器
  • SSD中储存了2TB的SQL数据
  • 每个web server都配置了2个320G的SSD,使用RAID 1
  • 每个ElasticSearch主机都配备了300GB的机械硬盘,同时也使用了SSD
  • Stack Overflow的读写比是40:60
  • DB Server的平均CPU利用率是10%
  • 11个web server,使用IIS
  • 2个负载均衡器,1个活跃,使用HAProxy
  • 4个活跃的数据库节点,使用MS SQL
  • 3台实现了tag engine的应用程序服务器,所有搜索都通过tag
  • 3台服务器通过ElasticSearch做搜索
  • 2台使用了Redis的服务器支撑分布式缓存和消息
  • 2台Networks(Nexus 5596 + Fabric Extenders)
  • 2 Cisco 5525-X ASAs 
  • 2 Cisco 3945 Routers
  • 主要服务Stack Exchange API的2个只读SQL Servers
  • VM用于部署、域控制器、监控、运维数据库等场合

平台

  • ElasticSearch
  • Redis
  • HAProxy
  • MS SQL
  • Opserver
  • TeamCity
  • Jil——Fast .NET JSON Serializer,建立在Sigil之上
  • Dapper——微型的ORM

UI

  • UI拥有一个信息收件箱,用于新徽章获得、用户发送信息、重大事件发生时的信息收取,使用WebSockets实现,并通过Redis支撑。
  • 搜索箱通过 ElasticSearch 实现,使用了一个REST接口。
  • 因为用户提出问题的频率很高,因此很难显示最新问题,每秒都会有新的问题产生,从而这里需要开发一个关注用户行为模式的算法,只给用户显示感兴趣的问题。它使用了基于Tag的复杂查询,这也是开发独立Tag Engine的原因。
  • 服务器端模板用于生成页面。

服务器

  • 25台服务器并没有满载,CPU使用率并不高,单计算SO(Stack Overflow)只需要5台服务器。
  • 数据库服务器资源利用率在10%左右,除下执行备份时。
  • 为什么会这么低?因为数据库服务器足足拥有384GB内存,同时web server的CPU利用率也只有10%-15%。
  • 纵向扩展还没有遇到瓶颈。通常情况下,如此流量使用横向扩展大约需要100到300台服务器。
  • 简单的系统。基于.Net,只用了9个项目,其他系统可能需要100个。之所以使用这么少系统是为了追求极限的编译速度,这点需要从系统开始时就进行规划,每台服务器的编译时间大约是10秒。
  • 11万行代码,对比流量来说非常少。
  • 使用这种极简的方式主要基于几个原因。首先,不需要太多测试,因为Meta.stackoverflow本来就是一个问题和bug讨论社区。其次,Meta.stackoverflow还是一个软件的测试网站,如果用户发现问题的话,往往会提出并给予解决方案。
  • 纽约数据中心使用的是Windows 2012,已经向2012 R2升级(Oregon已经完成了升级),Linux系统使用的是Centos 6.4。

SSD

  • 默认使用的是Intel 330(Web层等)
  • Intel 520用于中间层写入,比如Elastic Search
  • 数据层使用Intel 710和S3700
  • 系统同时使用了RAID 1和RAID 10(任何4+以上的磁盘都使用RAID 10)。不畏惧故障发生,即使生产环境中使用了上千块2.5英寸SSD,还没碰到过一块失败的情景。每个模型都使用了1个以上的备件,多个磁盘发生故障的情景不在考虑之中。
  • ElasticSearch在SSD上表现的异常出色,因为SO writes/re-indexes的操作非常频繁。
  • SSD改变了搜索的使用方式。因为锁的问题,Luncene.net并不能支撑SO的并发负载,因此他们转向了ElasticSearch。在全SSD环境下,并不需要围绕Binary Reader建立锁。

高可用性

  • 异地备份——主数据中心位于纽约,备份数据中心在Oregon。
  • Redis有两个从节点,SQL有2个备份,Tag Engine有3个节点,elastic有3个节点,冗余一切,并在两个数据中心同时存在。
  • Nginx是用于SSL,终止SSL时转换使用HAProxy。
  • 并不是主从所有,一些临时的数据只会放到缓存中
  • 所有HTTP流量发送只占总流量的77%,还存在Oregon数据中心的备份及一些其他的VPN流量。这些流量主要由SQL和Redis备份产生。

数据库

  • MS SQL Server
  • Stack Exchange为每个网站都设置了数据库,因此Stack Overflow有一个、Server Fault有一个,以此类推。
  • 在纽约的主数据中心,每个集群通常都使用1主和1只读备份的配置,同时还会在Oregon数据中心也设置一个备份。如果是运行的是Oregon集群,那么两个在纽约数据中心的备份都会是只读和同步的。
  • 为其他内容准备的数据库。这里还存在一个“网络范围”的数据库,用于储存登陆凭证和聚合数据(大部分是stackexchange.com用户文件或者API)。
  • Careers Stack Overflow、stackexchange.com和Area 51等都拥有自己独立的数据库模式。
  • 模式的变化需要同时提供给所有站点的数据库,它们需要向下兼容,举个例子,如果需要重命名一个列,那么将非常麻烦,这里需要进行多个操作:增加一个新列,添加作用在两个列上的代码,给新列写数据,改变代码让新列有效,移除旧列。
  • 并不需要分片,所有事情通过索引来解决,而且数据体积也没那么大。如果有filtered indexes需求,那么为什么不更高效的进行?常见模式只在DeletionDate = Null上做索引,其他则通过为枚举指定类型。每项votes都设置了1个表,比如一张表给post votes,1张表给comment votes。大部分的页面都可以实时渲染,只为匿名用户缓存,因此,不存在缓存更新,只有重查询。
  • Scores是非规范化的,因此需要经常查询。它只包含IDs和dates,post votes表格当下大约有56454478行,使用索引,大部分的查询都可以在数毫秒内完成。
  • Tag Engine是完全独立的,这就意味着核心功能并不依赖任何外部应用程序。它是一个巨大的内存结构数组结构,专为SO用例优化,并为重负载组合进行预计算。Tag Engine是个简单的windows服务,冗余的运行在多个主机上。CPU使用率基本上保持在2-5%,3个主机专门用于冗余,不负责任何负载。如果所有主机同时发生故障,网络服务器将把Tag Engine加载到内存中持续运行。
  • 关于Dapper无编译器校验查询与传统ORM的对比。使用编译器有很多好处,但在运行时仍然会存在fundamental disconnect问题。同时更重要的是,由于生成nasty SQL,通常情况还需要去寻找原始代码,而Query Hint和parameterization控制等能力的缺乏更让查询优化变得复杂。

编码

  • 流程

  • 大部分程序员都是远程工作,自己选择编码地点
  • 编译非常快
  • 然后运行少量的测试
  • 一旦编译成功,代码即转移至开发交付准备服务器
  • 通过功能开关隐藏新功能
  • 在相同硬件上作为其他站点测试运行
  • 然后转移至Meta.stackoverflow测试,每天有上千个程序员在使用,一个很好的测试环境
  • 如果通过则上线,在更广大的社区进行测试

  • 大量使用静态类和方法,为了更简单及更好的性能
  • 编码过程非常简单,因为复杂的部分被打包到库里,这些库被开源和维护。.Net 项目数量很低,因为使用了社区共享的部分代码。
  • 开发者同时使用2到3个显示器,多个屏幕可以显著提高生产效率。

缓存

  • 缓存一切
  • 5个等级的缓存
  • 1级是网络级缓存,缓存在浏览器、CDN以及代理服务器中。
  • 2级由.Net框架 HttpRuntime.Cache完成,在每台服务器的内存中。
  • 3级Redis,分布式内存键值存储,在多个支撑同一个站点的服务器上共享缓存项。
  • 4级SQL Server Cache,整个数据库,所有数据都被放到内存中。
  • 5级SSD。通常只在SQL Server预热后才生效。
  • 举个例子,每个帮助页面都进行了缓存,访问一个页面的代码非常简单:

  • 使用了静态的方法和类。从OOP角度来看确实很糟,但是非常快并有利于简洁编码。
  • 缓存由Redis和Dapper支撑,一个微型ORM

  • 为了解决垃圾收集问题,模板中1个类只使用1个副本,被建立和保存在缓存中。监测一切,包括GC操。据统计显示,间接层增加GC压力达到了某个程度时会显著的降低性能。
  • CDN Hit 。鉴于查询字符串基于文件内容进行哈希,只在有新建立时才会被再次取出。每天3000万到5000万Hit,带宽大约为300GB到600GB。
  • CDN不是用来应对CPU或I/O负载,而是帮助用户更快的获得答案

部署

  • 每天5次部署,不去建立过大的应用。主要因为

  • 可以直接的监视性能
  • 尽可能最小化建立,可以工作才是重点

  • 产品建立后再通过强大的脚本拷贝到各个网页层,每个服务器的步骤是:

  • 通过POST通知HAProxy下架某台服务器
  • 延迟IIS结束现有请求(大约5秒)
  • 停止网站(通过同一个PSSession结束所有下游)
  • Robocopy文件
  • 开启网站
  • 通过另一个POST做HAProxy Re-enable

  • 几乎所有部署都是通过puppet或DSC,升级通常只是大幅度调整RAID阵列并通过PXE boot安装,这样做非常快速。

协作

  • 团队

  • SRE (System Reliability Engineering):5人
  • Core Dev(Q&A site)6-7人
  • Core Dev Mobile:6人
  • Careers团队专门负责SO Careers产品开发:7人

  • Devops和开发者结合的非常紧密
  • 团队间变化很大
  • 大部分员工远程工作
  • 办公室主要用于销售,Denver和London除外
  • 一切平等,些许偏向纽约工作者,因为面对面有助于工作交流,但是在线工作影响也并不大
  • 对比可以在同一个办公室办公,他们更偏向热爱产品及有才华的工程师,他们可以很好的衡量利弊
  • 许多人因为家庭而选择远程工作,纽约是不错,但是生活并不宽松
  • 办公室设立在曼哈顿,那是个人才的诞生地。数据中心不能太偏,因为经常会涉及升级
  • 打造一个强大团队,偏爱极客。早期的微软就聚集了大量极客,因此他们征服了整个世界
  • Stack Overflow社区也是个招聘的地点,他们在那寻找热爱编码、乐于助人及热爱交流的人才。

编制预算

  • 预算是项目的基础。钱只花在为新项目建立基础设施上,如此低利用率的 web server还是3年前数据中心建立时购入。

测试

  • 快速迭代和遗弃
  • 许多测试都是发布队伍完成的。开发拥有一个同样的SQL服务器,并且运行在相同的Web层,因此性能测试并不会糟糕。
  • 非常少的测试。Stack Overflow并没有进行太多的单元测试,因为他们使用了大量的静态代码,还有一个非常活跃的社区。
  • 基础设施改变。鉴于所有东西都有双份,所以每个旧配置都有备份,并使用了一个快速故障恢复机制。比如,keepalived可以在负载均衡器中快速回退。
  • 对比定期维护,他们更愿意依赖冗余系统。SQL备份用一个专门的服务器进行测试,只为了可以重存储。计划做每两个月一次的全数据中心故障恢复,或者使用完全只读的第二数据中心。
  • 每次新功能发布都做单元测试、集成测试盒UI测试,这就意味着可以预知输入的产品功能测试后就会推送到孵化网站,即meta.stackexchange(原meta.stackoverflow)。

监视/日志

  • 当下正在考虑使用http://logstash.net/做日志管理,目前使用了一个专门的服务将syslog UDP传输到SQL数据库中。网页中为计时添加header,这样就可以通过HAProxy来捕获并且融合到syslog传输中。
  • Opserver和Realog用于显示测量结果。Realog是一个日志展示系统,由Kyle Brandt和Matt Jibson使用Go建立。
  • 日志通过HAProxy负载均衡器借助syslog完成,而不是IIS,因为其功能比IIS更丰富。

关于云

  • 还是老生常谈,硬件永远比开发者和有效率的代码便宜。基于木桶效应,速度肯定受限于某个短板,现有的云服务基本上都存在容量和性能限制。
  • 如果从开始就使用云来建设SO说不定也会达到现在的水准。但毫无疑问的是,如果达到同样的性能,使用云的成本将远远高于自建数据中心。

性能至上

  • StackOverflow是个重度的性能控,主页加载的时间永远控制在50毫秒内,当下的响应时间是28毫秒。
  • 程序员热衷于降低页面加载时间以及提高用户体验。
  • 每个独立的网络提交都予以计时和记录,这种计量可以弄清楚提升性能需要修改的地方。
  • 如此低资源利用率的主要原因就是高效的代码。web server的CPU平均利用率在5%到15%之间,内存使用为15.5 GB,网络传输在20 Mb/s到40 Mb/s。SQL服务器的CPU使用率在5%到10%之间,内存使用是365GB,网络传输为100 Mb/s到200 Mb/s。这可以带来3个好处:给升级留下很大的空间;在严重错误发生时可以保持服务可用;在需要时可以快速回档。

学到的知识

1. 为什么使用MS产品的同时还使用Redis?什么好用用什么,不要做无必要的系统之争,比如C#在Windows机器上运行最好,我们使用IIS;Redis在*nix机器上可以得到充分发挥,我们使用*nix。

2. Overkill即策略。平常的利用率并不能代表什么,当某些特定的事情发生时,比如备份、重建等完全可以将资源使用拉满。

3. 坚固的SSD。所有数据库都建立在SSD之上,这样可以获得0延时。

4. 了解你的读写负载。

5. 高效的代码意味着更少的主机。只有新项目上线时才会因为特殊需求增加硬件,通常情况下是添加内存,但在此之外,高效的代码就意味着0硬件添加。所以经常只讨论两个问题:为存储增加新的SSD;为新项目增加硬件。

6. 不要害怕定制化。SO在Tag上使用复杂查询,因此专门开发了所需的Tag Engine。

7. 只做必须做的事情。之所以不需要测试是因为有一个活跃的社区支撑,比如,开发者不用担心出现“Square Wheel”效应,如果开发者可以制作一个更更轻量级的组件,那就替代吧。

8. 注重硬件知识,比如IL。一些代码使用IL而不是C#。聚焦SQL查询计划。使用web server的内存转储究竟做了些什么。探索,比如为什么一个split会产生2GB的垃圾。

9. 切勿官僚作风。总有一些新的工具是你需要的,比如,一个编辑器,新版本的Visual Studio,降低提升过程中的一切阻力。

10. 垃圾回收驱动编程。SO在减少垃圾回收成本上做了很多努力,跳过类似TDD的实践,避免抽象层,使用静态方法。虽然极端,但是确实打造出非常高效的代码。

11. 高效代码的价值远远超出你想象,它可以让硬件跑的更快,降低资源使用,切记让代码更容易被程序员理解。

原文链接: StackOverflow Update: 560M Pageviews A Month, 25 Servers, And It's All About Performance(编译/仲浩 审校/魏伟)

深入理解Objective-C的Runtime机制 你不知的Docker 创办人兼CTO游走美法的浪漫狂放 《近匠》环信CEO刘俊彦:移动客服的未来化场景 iOS UIView动画实践(三):Transition Animation 【CTO讲堂】无社交,不App!——为App加载强大的通讯社交引擎 【探秘ES6】系列专栏(七):箭头函数 【前端框架】Backbone.js在大型单页面应用中的应用实践 【探秘ES6】系列专栏(六):解构赋值 《近匠》TestBird,专注的手游自动化云测试平台 【探秘ES6】系列专栏(八):JS的第七种基本类型Symbols 专访李林锋:我与Netty那些不得不说的事 手把手教学:巧用Core Data和RubyMotion开发iOS应用 《近匠》琥珀天气,精细化打磨征服Google Play 【CTO讲堂】人工智能到底能为我们带来什么? Linksys再度回归中国市场,主推智能路由 Windows 10:全平台战舰与移动化破冰——微软(中国)操作系统工程院院长谢育涛专访 专访友盟CEO叶谦:深挖海量终端用户数据的价值 七牛资深前端工程师马逸清:前端测试探索实践 实战iOS 9:开发者必须掌握的三种搜索API 腾讯Bugly干货分享:浅谈Swift在实际项目中的应用 【前端人生】ThoughtWorks黄峰达:利用横向扩展方式,快速学习前端新框架 这是前端最好的时代——论前端的“三化”建设 游戏引擎网络开发者的64做与不做(一):客户端方面 六问七牛CDN:打造融合CDN管理服务平台 《近匠》Wilddog野狗,跨平台的实时通信云服务 【CTO讲堂】招人不易留人更难——创业团队要闯哪些关? iOS UIView动画实践(四):过渡与伪3D动画 日程全公布|年度人工智能技术精英聚会 7月26-27相约北京 TypeScript 1.5发布,支持大量ES6新特性 快快快!27个提升效率的iOS开源库推荐 《近匠》Maxense,“云+传感”推动产业变革 怎样终止一个函数? 关于j2ee的几个问题 谁有数值计算方法与c语言工程函数库的代码,急!!! 麻烦有项目开发经验的大虾进来看看,给项目估个价!谢谢! 急!!大问题!!求助!!发扬你们的美德吧! JAVA的配置问题 菊花在水里跳舞!!! 用什么来写啊!!!jdk还是jbuilder TP-LINK的RTL8029(AS)芯片的网卡怎么装? w32dasm怎么把程序中的中文字符串反汇编成指令了呢? 曾用B/S四层结构开发过OA的,请进!! sql语句的问题? 关于QUERY->SQL的赋值 c++学习中的问题,拿来和大家一起讨论。 求助!要写一个MP3的播放程序~~ Project Settings里面的设置怎么设为默认值,让以后新建的每个工程都适用? 怎样读取数码相机的照片,并将它存入sqlserver数据库中(100分) VB6菜单设计器设计的菜单跟到WINDOWSXP下面,会自动变成XP类型的菜单吗? 请问openpicturedialog的用法? 紧急求教:ScktSrvr(Borland Socket Server)设置问题????????? 关于com与asp的疑惑 怎样读取数码相机的照片,并将它存入sqlserver数据库中 JSP里连接DB2的疑问? 为什么dbgrid的网格颜色属性的更改不是每次都可以。 请教名位大虾!~怎么安装.NET?今天刚买的,却不会装,七张光盘的!~ rose 的问题, SELECT 语句中的WITH TIES作用是什么? 西南交大 农历这么转换成公历?UP有分!急用!问题解决马上给分!不够再加。 关于数组的问题!在线等,谢谢了 不从新发送信息,则无法刷新页面!!! 一个旧声卡怎么才能知道它的型号? 我使出浑身解数,还是装不上sql server2000 ,怎么办? 各位师兄,想问一本书(王国荣的)的书具体内容?! 请问该如何处理?? 请教:关于excel2000链接对象.谢谢() CBC6使用手记--鸡肋 在线等待 如何从一个数据表的某字节中只提出来N个字符!!!!(帮我看一下,谢谢) dbgrid 与 adoquery 的记录如何...? 难道没有人懂水晶报表!??? 季老大帮我搞定!!!!!!!!! 请问该如何处理??在线等 谢谢了!!! 谢谢提供需求分析、概要设计、详细设计、等步骤的样本!!! 用HWiNFO32 V1.22检测机器硬件信息,当检测到“IDE/SCSI Drive(s)”时,硬盘灯常亮并死机,请问是什么原因?是硬件的问题吗? HELP ME AGAIN! 我新买的机器,看看是不是被骗了 谢谢提供需求分析、概要设计、详细设计、等步骤的样本!!! 两个笑话,大家也来帖帖 一个算法,如何快速的从一个大字符串数组里面删除一个小的字符串数组的内容 Little Tom is the _______ boy in his class.(weak)望好心人能顺便说明解题原因, ‘Hurry up.I ______________ (make) you some tea and toast.’ ‘OK.I ______________ (come),’I shouted.I ______________ (leave) my house but I forget to take an umbrella.When I ______________ (arrive) at school,I was all wet.What a horrible day! 桃核手串单数好还是双数好 急 发言稿作文400字不要竞选班干部的,竞选升旗手,护旗手的, 毛毛虫上有毒么毛毛虫爬到身上该怎么办 手串单数还是双数 琥珀的分类琥珀的形成,优劣的区分 别人说推了我的作文是什么意思?急Q_Q I ()often ( ) sweet food ( )填什么 the police asked the little boy ____求详细讲解 讲解选项A where did he live B where does he live C where he lived D where he lives 于like better than 可相互转换的词组 I seldom eat sweet food.(同义句) I _____ ______ eat sweet food. K-THREE是什么牌子就是西单华威那个 Is the earth round?The little boy asked.(改为宾语从句)The little boy asked ______ the earth ______ round.请问the earth 后用 is 还是 was? like better than 那like可以换成prefer吗 一条路,已修的比全长的65%少1.44千米,这是没修的占全长的75%,这条路全长是多少千米. 发言稿的作文题材用什么好不要说竟选 这是什么毛毛虫.有毒吗 Indian rose这个品牌有人了解么?听说和Miss sixty是同家公司和设计师Hello~恩我买了条很喜欢的牛仔裤叫Indian rose,花了我差不多100欧元.这个价位不算很便宜但是很奇怪没有听过这牌子,回国内上网 帮忙想一下这篇文章的题目,作为演讲稿的主题~在人生这所学校中,挫折是一门必修课. 这门课增加了我们的勇气;增强了我们的意志;坚定了我们的信念,使我们更坚强、更勇敢、更乐观…… 无端生事,想要引起冲突是什么词KUAI _____(who) school bag is heavier 描写动物叫声的词 例如 狮吼 鸟鸣 越多越好! 六上负荆请罪改写成记叙文第一幕 [幕启.蔺相如正在聚精会神地读书,旁边站者的韩勃气呼呼的,好象受了许多委屈.] 韩 勃 (气愤的)大人,别怪我多事,廉将军一再挡我们的道,太欺负人了,我 一道物理,速度!简洁点就行(公式+过程+答案)如下图所示,R1=20欧,R2=40欧,电源电压保持不变.(1)当开关S1、S2都闭合时,电流表A1的示数是0.6安,小灯泡L恰好正常发光,求电源电压和小灯泡的 琥珀有哪几种,是怎么定价的? 将《负荆请罪》改写成一篇记叙文 将注射器的出气口封住,使注射器内的气体不能跑出,现将活塞向里压,则这时被封气体的质量______,体积_______,气体的密度______(均选填“变大”“变小”或“不变”).简单说下理由吧. 厕所下水道里有老鼠怎么办我家厕所下水道有老鼠出没,吓死人了啊~下水道又不能用水泥堵,请问大家我该怎么办啊.是地漏~厕所里漏水的那个东东 六年级上册第5课负荆请罪第1幕改写成记叙文,尽量少一点 my mum likes to buy things in the shopping mall because she can buy____ she needs there.A something B nothing C anything D some thing 老鼠是不是害虫我有一题,说是举3个害虫的例子,我写了老鼠,组长给我打错,有同学说对,我一同学说,害虫一定要是虫子, 改编记叙文 a perfect indian的歌词?中文的 She often ____stories in her classes.A talk B tells C SAYS D speaks选啥,为什么还有为什么不选其他的 把负荆请罪的第一幕改成记叙文 A Perfect Indian的歌词中文有人能告诉我吗?是那个 《穿过骨头抚摸你》的歌词~记得中文名字就是那个 8知道中文的歌词是什么意思`~ 1.often late she watches watchesTV until very 2.often her he tells stories interesting every连词成句 注视是一个表示看的词语,还能写出三个表示看的词语吗? Mike needs to take lots of things for camping.(改为同义句)Mike()()lots of things for camping? 毛毛虫有毒吗?有没有依据? there were times when i thought i was foolish to leave the comfort of family A perfect Indian,这首歌是谁唱的?不确定歌的名字是否正确,第一句是A Perfect Indian is he…… 作文爱是调味瓶,酸甜苦辣咸 He shook his hesd from time to time when questioned about his family.这个句子怎么回事,从句没有主语 代写文章代写演讲稿.我有一篇演讲稿要写,谁能告诉我那家好 英语翻译 毛毛虫有毒吗?/?/?/ 代写演讲稿怎么收费的?有人听说正三文案策划没有,我朋友叫去找他写,说质量还可以。但是我在网上没有搜索到,有人知道吗? 琥珀要多少年才能形成 they had just had enough time to swim out of danger when the boat again completed a circle.解释两个had 越清楚越好 如图2,E是正方形ABCD中边AB的中点,F在AD边上,且DF=3AF,求证:CE平分∠BCF.昂 我要做作业~ 背上有柔毛或者是刺的毛毛虫都有毒吗?全身黑色有刺的毛虫学名是什么?夏天很常见的那种 以《歌》为题写一篇文章?文体不限从哪些方面写比较好写呢? A red Indian's house is called this (6个字母组成的单词,以w开头 要求得到用英语怎么说 负荆请罪后半部分的改写要好的 改错:My favourite fruit are lemons and mangoes. 英语中 动词后面+the+形容词+名词 红木手串一般是双数还是单数 前三季度城镇新增就业1066万人 全外媒:日夺岛军演剑指中国 参演人数达惦记上回没拿走一袋零钱 小偷当回头客男子结婚日撞上开庭日 法院:先结婚后宁波一家电动车修车老板为赚钱偷车换零德国外长因总理手机遭窃听召见美驻德大日称中国5艘军舰经冲绳宫古水道进入太美国一企业推出平民热气球遨游太空计划日本数十家酒店餐厅涉嫌伪造高级食材被美联储提议加强美国大型银行流动性规定2014年德国机械制造领域预计将长增韩谴责日靖国神社合祀韩战殁者 称反人日本数十家酒店餐厅涉嫌伪造高级食材被澳洲林火因澳部队实弹演习引发 强风致日政府官员称集体自卫权报告出炉时间未日律师反对特定秘密保护法 称侵害国民穆迪:俄石油和中石油合作可正面影响各法国与德国希望年底前就美国监听与美进菲催促尽早完成南海仲裁 妄言中国主权墨西哥北部一糖果厂爆炸20人失踪津巴布韦举行男扮女装选美大赛(组图)办生产许可证最快10天想要省下一大笔钱?宝鸡宝利丰满足您的探访汉中报废车拆解地春风沉醉牛排夜 寻找扒烤高手用嵌入式衣柜装修完再测尺寸小区自来水管道破裂一周 啥时候能修好陕西横山:20多名矿工政府广场前拉横不是逗你玩!看G5任性到没朋友水管破裂像涌泉 自来水白流一周谁来修兰州 天水 汉中高铁有望建设假冒空巢老人子女的朋友 男子两年骗了全新缤智1.5L宝鸡上市 18日下午“以旧换新”,终于等到你 周六周日去“畅行汉中”游勉县清明小长假 68万余人次游商洛我们要自制牛轧糖!不文明开车行为 很危险你知道吗?你与潮人之间只差一双Colorful拘禁殴打欠债人 4男子获刑商州女子赶集抄水路 被冲几百米后获救有根有据买家电 不选贵的只选适合的
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘