横向伸缩 在简单的Java应用中运用得好的实践在云的环境里将不会顺利如故。结果许多开发人员都被迫要对熟悉的实践进行重新思考,如数据调用、存储等。精通高性能交易型Java的程序员早就发现这个障碍了。 “如果你使用数据库来存储应用相关数据、临时数据或与用户会话相关的数据,在云环境中将无法实现伸缩性”,Terracotta公司负责营销的副总裁Jeff Hartley如是说。
Terracotta是一家高可用Java基础设施软件制造商。 在去年的JavaOne会议上该公司说它正在跟VMware合作,共同降低云计算环境下的Java应用的复杂性。 “一般来说,数据库在‘横向’(也即只需通过追……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
横向伸缩
在简单的Java应用中运用得好的实践在云的环境里将不会顺利如故。结果许多开发人员都被迫要对熟悉的实践进行重新思考,如数据调用、存储等。精通高性能交易型Java的程序员早就发现这个障碍了。
“如果你使用数据库来存储应用相关数据、临时数据或与用户会话相关的数据,在云环境中将无法实现伸缩性”,Terracotta公司负责营销的副总裁Jeff Hartley如是说。Terracotta是一家高可用Java基础设施软件制造商。
在去年的JavaOne会议上该公司说它正在跟VMware合作,共同降低云计算环境下的Java应用的复杂性。
“一般来说,数据库在‘横向’(也即只需通过追加类似机器即可处理工作)伸缩方面做得不是很好”,Hartley说。他指出,它们可以纵向伸缩,不过只能通过“购买更大的硬件”才能做到。
Hartley说数据库里面的东西会约束云的可伸缩性。“对于数据库来说,你不能够像Teracotta能做的一些事情那样仅仅追加另一台机器就行了”,他说。
在高速、分布式的系统中,将用户会话信息放到数据库以外是更好的选择,就这一点而言Terracotta软件能提供帮助。你可以将会话数据存放到分布式的内存中去,而不是数据库的内存,且“其横向伸缩相当的简单”,据Hartley说。
对于某些类型的Java和SOA应用来说,分布式缓存以及高可用性应用集群已经变成真正的最佳实践,这是James Staten的说法。James Staten是Forrester研究公司的一位首席分析师。
“它们是我们见到的进入云领域的应用中非常典型的特征”,他说。
“基于云的实现的一个关键问题是应用组件之间的时延,Giga-Spaces和其他一些公司对此有涉猎”。
在数据缓存提供商的小规模军团里面,其中一个大玩家是Oracle公司。在收购了Coherence缓存软件生产线制造商Tangosol公司之后,这家数据库公司开始往数据缓存领域掘金。
Cameron Purdy是Tangosol的创始人,现为Oracle负责研发的副总裁,他对自己所描述的“分布式缓存空间”及其与云的关系做出了解释。当电子商务在这个十年的早期成为热门应用的时候,会话管理立刻成为问题。Coherence通过缓存和故障切换解决了这一问题。
Coherence提供会话管理等其他功能。该技术可用于对诸如目录信息之类使用率高的数据进行缓存。通过将元素从持久层存储中卸载下来,用户可改善可所伸缩性并减少排队。
Oracle最新版的Coherence于2009年7月中旬发布,在会话处理方面该版本进行了更进一步的完善。
“我们提供了一些新的选项开关,包括针对每一个高并发系统提供一个no-locking开关,在许多服务器上实现应用的负载均衡”,Purdy说。
在其最新版本中,Oracle的Coherence软件提供了对基于内存的数据网格的万亿级计算(teras-cale)支持。
保护代理可自动侦测并校正服务中断。
优化数据资源
尽管私有网络运用分布式缓存已有一段时间,将这一模型迁移至云环境当中仍存在若干的安全风险。
“它是针对私有网络设计的,因此如果你向单个IP发送一条消息的话,网络中侦听此IP的所有人都将接收到这条消息”,Emil Ong说。Ong是Caucho技术公司的技术总宣传师,也是一位首席开发员。
“我们试图让它可以做到这一点,使得开发人员在一台机器一次性写好代码后无需改变就能移植到云环境上”,Ong说。
在云环境里,每当开始一个新的应用实例的时候,开发人员常常不得不编写复杂的定制脚本以便推出应用。
“我们通过赋予其部署机制来解决这一问题”,Ong说。
为了创建针对分布式资源进行完全优化的应用,Ong说做到一丝不苟是必须的。
“在有着多个角色通力协作、共同使用特定资源的地方无疑会出现最困难的计算问题”。
2009年6月的时候,Caucho技术公司发布其新版的Resin 4.0应用服务器,该版本具有分布式缓存的特性。Caucho习惯上把速度作为主要考虑因素,Ong说。分布式缓存使得它提升了云环境下的Java服务器的性能。它允许复杂的计算流程的结果存放起来供未来使用以便减少重复。——J.V.
本文是系类文章《再造还是塑型》系列文章的第四部分,在随后的内容中我们会介绍分布式缓存、优化数据资源和改变云中的数据结构等内容。请继续关注,如果您有任何疑问,欢迎给我发邮件zhangpeiying@techtarget.com.cn或者关注TT SOA新浪微博实时提交相关问题和看法。
相关推荐
-
大家有没有遇到这样的问题啊 我的java应用在EC2上运行 java获取系统时间插入数据库的时候,总是显示时间是null的?
-
如何在bluemix上部署基于tomcat的java应用
-
京东云实践:浅谈Redis主从复制
Redis是一个开源的,遵守BSD许可协议的key/value缓存系统,并由其高效的响应速度以及丰富的数据结构而闻名。
-
再造还是塑型:分布式缓存
速度越来越快的处理器,价格越来越低廉的刀片计算机,这些都为云时代的来临打下了基础。它们还让开发人员从此与某些性能和可伸缩性问题绝缘。