仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 529|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA教程之对“玄色30秒”成绩的料想仓酷云

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-18 11:19:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。在云上,底层的工具你没法触及,碰到奇异成绩时只能靠料想,以是利用云盘算会熬炼你的想像力。

(上图中蓝色是ASP.NET的RequestsQueued,别的一个是HTTP.SYS的ArrivalRate)
今天我们发明了一个主要的线索——“玄色30秒”到来时,最后的体现是哀求呈现列队(RequestsQueued上升),抵达IIS的哀求数目(ArrivalRate)下落。
而成绩奇异的地方就在ArrivalRate下落。假如只是RequestsQueued上升,而ArrivalRate处于一般程度,我们起首会嫌疑使用程序的缘故原由——使用程序在处置哀求时卡在哪一个中央;而RequestsQueued上升陪伴着ArrivalRate下落,申明不但前面出不往(哀求完成不了),并且后面进不来(哀求抵达不了IIS)。使用程序不论出甚么样的成绩,都不成能形成ArrivalRate下落,以是我们今朝找不就任何来由往嫌疑使用程序。
因而,我们针对“后面哀求进不来,前面哀求出不往”睁开了风花雪月的想像,终究找到了一个看上往说得通的料想,上面分享一下。
*先看一下用户的哀求是怎样抵达Web服务器的?
用户扫瞄器->SLB(阿里云负载平衡)->VM(假造机)->Web服务器
*再看Web服务器怎样将呼应发送给用户的?
Web服务器->VM->SLB->用户扫瞄器
【料想】
假定SLB或VM在某种触发前提下,偷偷地断失落了一些TCP毗连,而且不向用户端与服务端发送FIN大概RST报文,除惹事者,谁也不晓得。因而:
1)用户端不晓得TCP毗连被断,还持续用这个TCP毗连发包,了局哀求固然到不了Web服务器,形成ArrivalRate下落。用户端TCP层发包后,等回包(好比ACK包),迟迟等不到,一向比及超时(假定超不时间是30s),才晓得TCP链路挂失落了;然后重修TCP毗连重发哀求,这时候哀求乐成抵达了Web服务器,以后的哀求+之前被断毗连的哀求一同抵达Web服务器,这恰好注释了“玄色30秒”停止阶段ArrivalRate会突增到一个高点。
2)Web服务器端与SLB端(大概SLB端与用户端)的TCP毗连被断,Web服务器不晓得,在处置完哀求后还持续用这个断失落的TCP毗连发送呼应包并等回包,迟迟等不到,形成哀求处置不克不及完成而被聚积,从而进一步形成后续的哀求没有充足的资本可用而列队,因而RequestsQueued上升;一向比及超时(假定超不时间是30s),Web服务器才晓得TCP链路挂失落了,然后保持这些哀求处置,因而有了充足的资本处置行列中的哀求,这恰好注释了“玄色30秒”停止阶段RequestsQueued会突降。
这就是我们今朝找到的独一能注释得通“玄色30秒”成绩体现的一个料想。

其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:
精灵巫婆 该用户已被删除
10#
发表于 2015-3-27 00:34:09 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
海妖 该用户已被删除
9#
发表于 2015-3-19 02:41:13 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-11 17:09:56 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
乐观 该用户已被删除
7#
发表于 2015-3-8 18:18:33 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
只想知道 该用户已被删除
6#
发表于 2015-2-22 20:12:05 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
爱飞 该用户已被删除
5#
发表于 2015-2-7 18:04:33 | 只看该作者
是一种为 Internet发展的计算机语言
透明 该用户已被删除
地板
发表于 2015-2-4 22:55:00 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
再现理想 该用户已被删除
板凳
发表于 2015-2-4 20:41:18 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
沙发
发表于 2015-1-29 20:13:47 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
蒙在股里 该用户已被删除
楼主
发表于 2015-1-20 20:10:45 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 13:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表