查看文章
 
2010 又一个Qcon restful saloon 归来
2010-04-25 23:56

       时间真快,2010 又一个qcon归来,又是参加最末一天的会议(上午部分)。不过这次qcon,面对面沟通占了挺大比重。到好几个展台聊了不少。在ThoughtWorks 展台聊了有关scrum敏捷开发及mingle的使用,可惜稍微聊深点,ThoughtWorks mm说mingle不适合小团队使用(是吗?怎么也比excel好吧),自己也不是专业的,有兴趣可以和他们公司的人联系。和淘宝搞技术的哥们聊了聊,感觉淘宝,阿里的技术交流主要也处在face2face,真人会议上,但怎么说人家也有个 ued.taobao.com/blog 及ued.alipay.com。中国肯开源交流的目前也只大多集中在UI/UE领域,赫赫。也交流了开源框架与自主开发框架之间的选择,看来大家的想法都查不多:不重复发明轮子。有必要自己开发框架,也都考虑放在google code上,尝试走开源社区的路子,避免自主开发的框架越走越窄,最后渐渐式微。还有,也交流了一下企业内部技术社区平台建设的问题,淘宝的哥们说淘宝内部是有这样类似内部sns平台的,叫什么淘宝X。名字忘记了。

       言归正传,上午主要听了“性能和可扩展性 再度归来:内存数据网格”演讲。主讲人萧百龄,应该不是大陆人,好像是台湾人,原bea首席SOA顾问 技术总监 。现任oracle大中华区产品战略部首席解决方案架构师,名头很响,讲得也很精彩,刚听的有点入戏,忽然碰见原来公司的同事了,
聊了聊,听课质量明显下降,赫赫。

        这个演讲主要介绍了Oracle Coherence(就是原来的tangosol开发的):一个高可靠及高扩展性的内存级的集群数据网格:Memory Data Grid。

       结合演讲,也查阅了些网上的相关资料,简单总结如下:
       Coherence的主要用途是共享一个应用的对象(主要是java对象,比如Web应用的一个会话java对象)和
数据(比如数据库数据,通过OR-MAPPING后成为Java对象)。这么说来,Coherence应该算是一个数据应用中间件,或者说内存数据库缓冲平台(Terracotta也有类似的实现)。一个系统要实现高可扩展的架构,其实最常见的瓶颈/短板就是数据(源)的扩展了,也就是说很少系统是多数据库节点的。那怎么办呢?
Coherence就是基于此,提供了应用层的数据共享缓冲中间件,任何一个时候如果应用能够从这个数据缓冲里满足要求,则不会将请求发给数据源,从而极大地增强一般的瓶颈(数据)的扩展性。也就是说,数据库down了,一段时间内,基于Coherence,系统都能正常运行。

       也可以说Coherence是防止过度依赖数据库的一种方案。试想,不管是jdbc或orm,都要把面向对象的数据转成关系型的数据。而利用Coherence,可以把原本就是对象的数据存在于内存中,也就省去了orm的过程。保留了对象的所有关系和属性。当然Coherence+hibernate也是种选择,赫赫。

       有人会问,tomcat等应用服务器不已经提供了集群支持了吗?Coherence既有原来各种应用服务器集群所具有的各种技术特点,而且又增加了原来各种应用服务器集群技术所没有的各种特性,比如transaction,event驱动的架构。

       Oracle Coherence的类似解决方案就是memocached了,当然由于Oracle Coherence是晚于memocached的,自然理论上就比memocached先进一些。一点很大的不同是memcached每个节点是独立的,各个节点间并不通讯,也就是说如果有一个instance crash,memcached需要在客户端去除掉这一节点,但Coherence不同节点组成cluster,数据可以互相备份,如果有节点crash那么利用备份的数据,cluster可以重新分配数据的存储,分配数据的备份,更加可靠,不存在SPOF。

         Coherence不同节点之间是通过p2p协议来完成通讯的,这样,带宽要求比较高。。


          Coherence实现了分布锁,能够满足对数据完整性需求,强啊。


          Coherence有一种top叫near包含有local cache,不用每次都请求数据,可以节省网络开销。

          Coherence支持数据的分区处理,一般应用服务器的集群都有只能缓冲共享2G java对象的缺点,
而Coherence这种设计让Coherence能够处理非常多的数据,只需要通过增加节点的数量,就可以处理更多的数据。


        萧百龄也提到,内存数据网格方案的jvm实现最大的问题可能是jvm gc的问题。的确,实际开发项目中gc也时不时地搞怪一下。萧说,Coherence利用了bea JRockit jvm,实现了后台进程的gc,gc能力更加强大,不会影响应用。

      oracle 吞了bea,sun,oracle本身的企业级解决方案很强大,但 商用意味着不主流,oracle 的coherence 也是这样的,没办法,在中国90%的企业都是靠免费开源的产品压低成本的。。。   如果要在集群环境下使用cache,开源的可以采用ehcache,JBoss tree Cache,

      还有,不过并不是所有集群都适合用Oracle Coherence。没听错的话,节点数(其实是jvm数)在4,5个以上的Coherence的性能优势才会发挥出来。(双节点的HA系统恐怕。。。)


Coherence官方介绍:

http://www.oracle.com/technology/global/cn/products/coherence/coherencedatagrid/coherence_solutions.html

有时间可以参考一下。


       萧百龄还提到奥巴马削减了nasa的经费,导致nasa这样的机构都开始青睐 Amazon EC2云计算平台啦,赫赫。但比较搞的是,nasa怎么也是国家级航空航天局嘛,还是觉得Amazon EC2平台的性能稳定性等SPEC不放心,谈判要求Amazon出示EC2平台的各项完整的指标(甚至硬件参数),Amazon就是不同意。结果谈了半年都未果。虽然已有实验性的平台基于EC2,但总的说来,美帝的云计算实施方案也还不是完全落地与普及。当然,话又说回来了,也提到另外一个例子。很多美国公司要做大规模集群方案,那n多节点的性能测试咋搞呢?很简单,短期租赁Amazon EC2,构建符合标准足够多的虚拟节点,再测试就可以了,比自个儿搭建环境既快又省钱,还真不赖啊。。

       本届qcon来看,貌似敏捷开发在国内好像已经成为主流了,但说实话跟标榜敏捷开发的展台人员聊,感觉还是停留在老外布道的初级阶段。

        还有另外一个令人欣喜的趋势:国内互联网公司也开始开源啦,好事情啊!包括淘宝的tfs,人人网 Nuclear (NoSQL),Rose(web开发框架)。看来公司内部开放只读权限的背景也是有这样的外部压力啊,哈哈!

       还有一个事情,下次开类似的交流会,应该带上笔记本,wifi写微博,你会发现微博惊人的及时性,好比全场人在手机短信群聊,,那传播速度快赶上同声传译了都。。。

       十分看好微博实时搜索,及时性太强了,网易的有道搜索已经支持微博搜索了http://www.youdao.com/lt?q=qcon&ue=utf8&keyfrom=web.time,百度干什么去了??

       总之,这次qcon参加的有点匆忙,觉得这样的会议听技术演讲是一方面,场外面对面的交流是一方面,偶遇旧同事聊天,甚至像有人买老外作者的书并合影,其实也是技术交流的一部分。。。。

做一个有品的iter,enjoying our restful saloon~


类别:默认分类||添加到搜藏 |分享到i贴吧|浏览(702)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu