大规模视频网站的计费与流量管理
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Srini Penchikala 译者 宋玮 发布于 2008年10月10日
Memcached 是一个分布式内存对象缓存系统, 用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于的是一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通讯。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行和崩溃了,所有存放在S上的键/值对都将丢失。
Bela Ban,JBoss的JGroups和Clustering团队的领导,最近写了一个基于JGroups的memcached实现,它允许Java客户端直接访问memcached。该实现完全是用Java编写的,而且拥有少量优于memcached框架的特性 :
启动JGroups memcached实现的主类是org.jgroups.demos.MemcachedServer。它创建了一个L1缓存( 如果配置了)、一个L2缓存(存储所有条目的默认hashmap)、以及一个MemcachedConnector。API非常 简单且包含如下缓存方法:
InfoQ就memcached的JGroups实现背后的动机采访了Bela Ban。他说memcached的JGroups实现使得他们可以试验分布式缓存并看看不同的缓存策略适应JBoss集群的程度如何。他还阐明了这个新的 memcached实现与JBossCache缓存框架的比较:
我们把缓存看作是一个连续统一体:从分布式缓存(数据跨越集群中多个节点,但是没有 冗余)到完全复制数据缓存(每个数据条目整体复制到每个集群节点上)。在分布式和整体复制之间, 我们还有buddy replication,它只把数据复制到一些选定的后备节点上。这可以被比作RAID,RAID 0没有冗余(分 布式),RAID 0+1是全冗余,而RAID 5是部分冗余。
当前,JGroups的PartitionedHashMap提供了分布式缓存,JBossCache提供了全复制和部分复制(使用 Buddy Replication)缓存。其想法是让用户定义他们要放在集群中的K(每个数据项——per data item )值,K=0表示分布式,但是如果一个节点保存有一个或多个条目,节点崩溃则数据就会丢失;K=X(这 里X
memcached的JGroups实现是尝试K=0的第一步,它是纯数据分布式缓存,没有冗余。其最终会被纳入到 JBossCache中。
memcached实现适合放在JBoss应用服务器的哪个模块?
它将成为Clustering子系统的一部分,由JBossCache提供。注意我们的实现是真正给“Java”客户端写的,因此不必使用那些非常低效的memcached协议,而是在上层使用了编组 (marshalling)/解读(unmarshalling)/复制(copying)。
谈到使用memcached的JGroups实现的典型使用场景,Bela说道:
运行在JBoss或Tomcat集群上的服务器端代码(例如servlets),其访问一个DB并需要缓存以提高速度并避免DB瓶颈。其它使用场景也类似,只是访问的不是DB而是文件系统。例如,一个HTML 页面缓存服务器(Squid立刻浮现在脑海里)。
有无计划将来把memcached引入到JBoss应用服务器中。
当然有。数据分区( Data Partitioning)特性将使得用户可以按照自己的需要来配置缓存。这样使得分布式缓存看上去 不像是一个新特性,而是JBossCache的配置而已。更酷的是这是动态的,因此开发者可以决定他们所放 进JBossCache的每个数据项(per data item)要使用哪种冗余特性(none=distribution,full=total replication 或 partial)。
至于该项目新特性的未来方向,Bela罗列了要做的一些事情:
memcached的JGroups实现和其依赖类库可以从其sourceforge站点上下载。下面是运行该程序的命令:
java -jar memcached-jgroups.jar
Bela正在期待着社区的反馈。他说这是一个试验特性,但是将成为JBossCache支持的一个特性,社区意见将会极大影响这一特性的方向。
查看英文原文:JGroups Implementation of Memcached Supports Failover and JMX
译者 宋玮 有多年软件开发经验,长期担任技术管理和项目管理工作,一直关心开源软件的发展动态以及软件过程和敏捷开发的实践探索。
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于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。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
没有回复
关注此讨论 回复