大规模视频网站的计费与流量管理
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Gavin Terrill 译者 张龙 发布于 2008年9月2日
EhCache小组的Greg Luck在8月初宣布了针对缓存的SOAP和RESTful APIs。正如文档所述:
Ehcache现在已经有了一个Cache Server,它以两种形式出现:适合大多数Web容器的WAR以及独立的服务器。Cache Server有两种类型的API:面向资源的RESTful以及SOAP。这两种API都支持任何编程语言。
在随后的一个帖子中,Greg简述了部署1TB缓存理论上的方式:
最大的Ehcache单实例在内存中可以缓存20GB。最大的磁盘可以缓存100GB。我们可以将节点整合在一起,这样缓存数据就可以跨越节点,以此获得更大的容量。将缓存20GB的50个节点整合在一起就是1TB了。
第一种、也是最简单的方式就是装配运行着Ehcache Server的几个节点,然后让客户端根据对象的Hashcode来决定使用哪个Server:
String[] cacheservers = new String[]{"cacheserver0.company.com", "cacheserver1.company.com", "cacheserver2.company.com", "cacheserver3.company.com", "cacheserver4.company.com", "cacheserver5.company.com"};
Object key = "123231";
int hash = Math.abs(key.hashCode());
int cacheserverIndex = hash % cacheservers.length;
String cacheserver =cacheservers[cacheserverIndex];
我们使用一个负载均衡器(load balancer)来支持冗余,每个节点运行两个Ehcache Server实例,通过使用现有的分布式缓存方案(RMI或者JGroups)支持节点之间的数据复制。在这种方式下,客户端依旧使用Hashcode来决定使用哪个Server,但是现在我们可以在负载均衡器所分配的虚拟IP后透明地处理失败。
Greg谈到的第三种方式就是转换职责以将请求路由给负载均衡器。
EhCache Server的RESTful版基于Jersey——JSR 311参考实现。Jersey的开发者之一Paul Sandoz谈到了如何使用Jersey的客户端API以访问缓存来创建并得到一个示例XML文档:
// retrieving a node
Node n = r.accept("application/xml").get(DOMSource.class).getNode();
// creating a node
String xmlDocument = "...";
Client c = Client.create();
WebResource r = c.resource(http://localhost:8080/ehcache/rest/sampleCache2/2);
r.type("application/xml").put(xmlDocument);
那么RESTful缓存适合于哪种场景呢?James Webster说已经有越来越多的大公司采取这种架构方式了:
我注意到一些投资银行所采取的架构模式就是一种分布式的内存缓冲,该缓存由RESTful的前端通过HTTP来访问,以得到市场数据(如股票价格、利率曲线,或者诸如表面波动和相互关系之类的引伸价值)和静态数据(如对等细节、结算拖欠)。我们可以“轻松”扩展该分布式缓存以容纳大量数据集,同时前端也允许用其他方式访问数据,只要客户端能访问HTTP就行。
正如James指出的那样,我们想要看看厂商(如Oracle和Gigaspaces)到底要花多久才能在其产品中支持RESTful接口。
查看英文原文:Deploying a 1 Terabyte Cache using EhCache Server
译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011。
2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。
12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011。
篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
没有回复
关注此讨论 回复