`
sekiyika
  • 浏览: 11621 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

4月9号 - 我记录的QCon

阅读更多

 

托同事的福,参加了一下QCon北京的会议,9号的会议总共分为两个阶段,上午共有三讲,且都在大宴会厅,下午的讲座是分专题的,大家可以选择感兴趣的专题去听.

 

上午的三讲是:

1. 2011年的企业级Java和超越:从JavaEE6到Cloud Computing 讲师:Juergen Hoeller

2. 百度离线集群整合之道 讲师:吴波

3. 基于云计算架构构建Netflix 讲师:Adrian Cockcroft

下午共有四个专题,并且每个专题都有4场演讲,且是同时进行,大家可以选择性的去听

1. 设计优良的架构

2. 更有效地做测试

3. Web性能与扩展

4. 移动开发

 

上午三个都听了,其实只听了两个,第一个和第三个,貌似把最有价值的反响最大的一个:baidu离线集群整合之道给漏掉了。。。因为在听第一个的时候,突然来了个电话说线上紧急问题,那个吓的我哪还听的下去啊。。。

下午听了四场讲座,总体来说还不错,不过貌似和我的主方向不太相关啊。。。不过,人家的思想还是很好的,也许我们前端开发能用上也说不定呢对吧~

 

下面来讲讲我在今天的收获吧,其实是硬性的做了笔记和相关的记忆而已。。。并没有很好的吸收

 

一、上午

 

1. 2011年的企业级Java和超越:从JavaEE6到Cloud Computing 讲师:Juergen Hoeller

总体感觉,这个老外讲的都是些名词。。。其实没讲啥,可能在他下午的一场演讲:基于Spring3.1的现代组件设计中讲了很多实质性的东西,不过我没去听。

主要就是在给Spring打广告,实质性的东西没讲,没啥好多讲的。。。进入下一个

 

2. 百度离线集群整合之道 讲师:吴波

 

看现场反应来看,貌似讲的不错,问问题的人也很多,不愧是咱baidu的高工啊。。。可惜刚听了几分钟,RD、FE、项目负责人纷纷打来电话说线上紧急问题,咋回事。。。然后就悲剧的解决问题去了,也只能电话里解决了,没电脑带在身上,还好还有同事帮忙解决了,否则,怕是整个上午就听不了了,可能连免费的午餐都没了,这个讲座就这样过去了。。。

 

3. 基于云计算架构构建Netflix 讲师:Adrian Cockcroft

 

这个老外啊。。。真是的,上来讲了将近一小时,基本上在给Netflix和Amazon做广告,其中尤其是Amazon,唉。。。贴上一段经过我翻译的原话:我们去用Cloud,因为我们没有时间去构建Cloud,Amazon的Cloud是最大的。。。貌似是这个,唉,估计他所要讲的精华也在下午的一场讲座吧,下午散会了去了他的会场一下,感觉反响还行嘛,很多人围着他不知道是看热闹和还是问问题

 

二、下午

 

下午听的四场讲座,共跨越3个主题,唯一一个啥都没去的就是那个移动开发。。。分别来讲一讲吧

 

1. 面向开发的MySQL性能优化 讲师:杨海潮 @jackbillow

 

感觉讲的东西挺细的,很多关于优化MySQL的细节,下面听我娓娓重复来

a. schema的设计

schema是项目设计阶段最早的一步,也是对DB的性能优化最优的阶段

b. 数据库字段类型的选择

有很多人在设计的时候忽视了这个,举个例子就是Datestamp和Timestamp字段类型,Datestamp字段8个字节,能表示很多种时间类型,Timestamp只有4个字节,虽然没有Datestamp那样的全面,但是对于我们的项目来说足够了,这是一个原则问题:以最小的代价,来实现尽量多的功能

c. 拆分小数据段和大数据段到不同的table中

在响应了小数据段的数据后,再相应大数据段的请求,相应的会提升“性能”

d. 索引的设计

索引并不是设计的越多越好,要适度,索引在提升读操作的性能的时候,会相应的降低写操作的性能

e. 存储引擎的选择

InnoDB => 锁的粒度较小,行锁,加锁性能损耗较大,但不会像表锁那样阻塞很多的数据库操作的请求

f. 降低对数据库的访问次数

数据库的任何操作的消耗都是很大的,能减少访问次数就减少访问次数,可以在SQL语句中做到这些,也可以在程序中

g. 减少CPU的计算量

h. 并行

 

2. 淘宝前台优化实践 讲师:蒋江伟

 

整个演讲都是围绕着如何提高QPS而进行的,这就是这个的这次演讲的重点内容吧。

QPS主要由三个因素影响,分别是

a. Thread

b. React time

c. Bottleneck resource

其中关于线程数量的内容,他讲的比较多,也对线程数量的选择做了一些分析,并列出了一些公式(公式不记得了),计算计算机核心数量和线程数的关系,怎么能达到最优化。像淘宝那样高并发的网络环境中,线程数量为多少能达到最优就显得很重要了。

他主要从三个方面讲了如何提升QPS,分别是

a. 优化模板

b. 优化大数据的处理

c. 优化JVM的参数

那我们一个一个来讲吧。

 

a. 优化模板

1) char to byte

他举了个例子,在servlet中,字节用"response.getWriter.print("chars");"比先把字符串转换成字节数字,然后再输出,QPS能提升很多,即所谓的char2byte

2) 解释执行编程编译执行

解释执行是解释器直接解释源代码然后执行,而编译执行是像Java那样把源代码编译为中间代码,然后再经过一边解释执行,但速度会比直接将源代码解释执行来的快,以此来提升QPS,所以还是JSP性能要比velocity好

3) 减小模板的大小

巴拉巴拉巴拉巴拉巴拉巴拉。。。

b. 优化大数据的处理

1) byte to char

2) 序列化方式的选择

使用Java的serialization还是别的,对性能会有一定的影响

c) 优化JVM参数

在讲这个的时候,他举了很多例子,主要是通过调整JVM的Young区的大小,但是并不是所有的场景下调整Young区得大小都能达到提升QPS的效果。。。

而且他还特别强调了,要编写对Gabage Collector友好的代码,手动将一个变量的引用设为null,在一定程度上会加速GC的速率

注:其实不是那么懂。。。虽然懂一些,关于为什么要byte to char和char to byte有点点不是那么明白

 

3. 艺龙旅行网架构案例分享 讲师:贾志峰

 

主要分享了一下艺龙旅行网的架构和设计,讲了一下这种电子商务类型的网站架构时该注意的很多问题,还讲了一些架构师在做设计的时候应该重视的问题,既要很好的实现功能性需求,还要考虑到很多非功能性需求,如:可扩展性等等。。。后面还讲了一下艺龙旅行网架构上的解耦的方案,主要由两个:配置解耦,流程解耦

 

4. 探索式测试体验之旅 讲师:Erik Petersen

 

试探性的去听了一下,还行吧,在开始的时候主要和我们强调了一下做测试要用脑,use your eye with your brain,bug往往存在于细节里面,不过他好像比其他人会调动会场气氛一些,听了一半,发现已经到6点了,抓起书包,去楼下吃饭去了,去晚了还得等很久。。。

 

今天主要就听了这些,这些专题,除了移动开发,都比较偏向于设计和架构,收获还是有一些的吧,不是那么大而已。。。听到的并且记得的东西都已经写在上面了,欢迎大家拍砖,毕竟不是自己的方向,不是那么的了解。

 

期待10号的~


1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics