前言:
现在的主要工作是给出公司的SOA解决方案,在通讯层选用netty的NIO框架,通讯协议使用Google最新的SPDY协议草案2,苦于没有中文版本的SPDY,对英文的理解实在有些偏差,在架构组几个人各自看了英文版本的SPDY后,互相讨论,现在通讯层快完工,在此总结一下SPDY协议,也为SPDY做些贡献。对于我这样不是专业的翻译人员来说,翻译的工作量是巨大的,希望各位看官能别着急,能留个言就是对我最大的支持,欢迎转载,但请保留原文链接,我会随着以后的翻译不断斟酌每个词的使用,不断更新已有的翻译,多谢。
SPDY 协议 – 草案 2
草案
目录
1 概述
1.1 文章总览
1.2 基本定义
2 帧层
2.1 连接
2.2 帧
2.2.1 协议版本
2.3 控制帧
2.4 数据帧
2.5 流
2.5.1 创建一个流
2.5.2 数据交互
2.5.3 半关闭
2.5.4 关闭
2.6 数据流程
2.7 控制帧
2.7.1 SYN_STREAM
2.7.2 SYN_REPLY
2.7.3 RST_STREAM
2.7.4 HELLO
2.7.5 NOOP
2.7.6 PING
2.7.7 GOAWAY
2.7.8 HEADERS
2.7.9 WINDOW_UPDATE
3 以SPDY协议实现HTTP
3.1 响应
3.2 服务器推送
3.2.1 服务端实现
3.2.2 客户端实现
3.3 部署
3.3.1 服务器通过AlternateProtocol协议头来推荐使用SPDY协议
3.3.2 依托于SPDY会话的HTTP请求
4 与SPDY草案1不兼容的地方
5 计划中的工作/实验
6 贡献者
翻译:Lookis(lookisliu@gmail.com,http://lookis.me)
更新时间:2010-03-19
文章来源:
http://lookis.me/?p=50
posted @
2010-03-24 10:18 Lookis 阅读(465) |
评论 (2) |
编辑 收藏
由于时间关系,这一次的培训计划有变,把JVM调试单独出来做为一节课,另外新加入课程,预计都是下周给新人们上课
文章来源:
http://lookis.me/?p=38
posted @
2010-03-24 10:18 Lookis 阅读(175) |
评论 (0) |
编辑 收藏
内容稍微变化了一点,主要讲解JVM中GC相关的部分
PPT:JVM_GC.pdf
示例源码:src_jvm_gc.rar
讲稿:
==========
GC
1.什么是GC:
1)释放不再使用的内存对象以回收内存空间
2)压缩内存碎片
2.为什么要让JVM做GC,而不是程序员来做?
1)把开发人员从管理内存中解放出来,提高生产率
2)安全角度考虑,不会由于失误/故意错误释放内存带来潜在的安全问题
3)弊端:额外地占用CPU,且对于程序员来说”难于”控制
引用计数收集器:
start:当创建对象,并且指向该对象的引用被分配给一个变量,这个对象的引用计数被置为1
其他变量被赋值为对这个对象引用时,i++
一个对象引用超过生存期或者被设置成一个新值时,i–
计数为0的对象就可以被收集
当收集的时候,该对象所引用的对象计数i–
优点:速度快,交织在程序运行之中
缺点:无法检测出循环引用
跟踪收集器:
从根结点开始跟踪,对所有跟踪到的对象以某种方式(和实现有关)打上标记,跟踪结束时,就可以对没打上标记的对象实现收集
优点:可以回收循环引用
缺点:回收的时候长时间独占CPU
问题:什么是根结点
根结点:
和实现有关:总的来说有以下几个方面:
1.局部变量,操作数栈(参数)
2.常量池中对象:字符串,类名,接口名…
3.JNI调用,没有被释放的
压缩收集器:
把标记为活动的对象从原来的区域越过空闲区移动到堆的另一端
问题:更新移动的对象要更新所有的指针(以用于清理)
解决:有些JVM实现做了一层 间接对象引用层 (不完美,每次取对象都要多一个步骤)
拷贝收集器:
有两个内存区域
把标记为活动的对象从原来的区域拷贝到另一个区域
同一时间只有一个区域在使用
优点:在使用的时候才更新指针
缺点:内存使用率降低
finalize
时机:对象被回收时
流程:收集器第一遍扫描出不再被引用的对象
调用他们的finalize方法,此时程序员可以实现finalize方法做清理工作,可以复活这个对象
收集器第二遍扫描,只扫描不再被引用的对象,对没复活的对象做清理
jdk1.2以前:可触及,可复活,不可触及
可触及:从根结点开始跟踪可以触及到
可复活:从根结点跟踪不可触及,但在自己或者别人的finalize方法里重新使该对象可触及
不可触及:finalize方法后也不可触及
jdk1.2以后:软引用,弱引用,影子引用
软引用:做cache
弱引用,做映射:初始化实例时默认配置,配置修改时可以通知,如果实例已经不再使用,就不通知
影子引用:处理收集时的后续操作,类比finalize,初始化时要增加一个ReferenceQueue队列参数
==========
文章来源:
http://lookis.me/?p=32
posted @
2010-03-24 10:18 Lookis 阅读(186) |
评论 (0) |
编辑 收藏
最近公司来了些新人,都是本科生,要为他们准备讲解一下JVM的东西,计划主题有三:JVMGC原理与内存参数的调整,CPU方面的调试,内存方面的调试,想来新人主要还是有这三块内容需要了解。
文章来源:
http://lookis.me/?p=20
posted @
2010-03-15 17:16 Lookis 阅读(149) |
评论 (0) |
编辑 收藏
前两天心情不好,邻居由于家里来人了,要把住的屋子收回…没办法,又要找新的房子了,唉,要能有自己的房子多好..来网上搭一间小楼吧,于是这个blog就诞生了。
空间:ramhost.us里最最便宜的一档,3美刀/月,双核CPU,128MB内存,硬盘空间2G,流量50G。这个空间我盯它好久了,本来想是在Google.com离开中国的时候去买来当VPN来翻墙用的,谁知道Google又不出去了……没办法,不等他了。
域名:godaddy.com里选来选去,发现lookis.com已经被买走好些年了..到期还有很久,.info的域名挺便宜,不过实在不好看不好记,概然这个地方是给我自己的博客,那就选个.me好了,来介绍介绍自己,也记录一下自己工作之后的成长,以后也可以子孙后代留下个好听的域名
搭建过程一波三折啊,本以为搭个WordPress很简单,实际上也是很简单,说白了就是装个mysql,装个php,装个nginx,把wp的代码拷到对应的html目录下就可以开启了,可是我这空间是128MB的空间…一进空间就看已经被占用了5MB,装完了mysql后就迅速被用到了100MB……上个php+nginx,万幸没占用多大,最后一上WP,后台立刻报错……怎么办?
开始各种精简,首先把mysql用最小占用来安装,用掉90MB,wp的最大内存空间改到16MB,服务器起……不来……
开始删服务器原来自带的服务,最后就留下了sshd,还是起不来……郁闷……
突然发现可以用pdo_sqlite来当DB…反正我的流量也不大,就用sqlite好了,php的插件也不装了,省点是点,瞬间就腾出了90MB内存,看来也不用向ramhost升级空间了,世界多美好。配置好了pdo_sqlite一起……还是起不来……说配置里没有pdo_sqlite,我就郁闷,查了好半天配置都正确啊……最后发现是少了pdo_sqlite.so库……以前没接触过php,从pacman的源里怎么都找不到sqlite,后来是从我的ubuntu里用新立得发现pdo_sqlite是在php-sqlite里的,瞬间装上,全部搞定,服务一切正常,于是就有了这个Blog。
回到家,唉,又郁闷了,还是要找房啊……
文章来源:
http://lookis.me/?p=10
posted @
2010-03-15 17:16 Lookis 阅读(206) |
评论 (0) |
编辑 收藏