58同城跨平台高性能高可用中间层服务架构设计分享.PDF

58同城跨平台高性能高可用中间层服务架构设计分享.PDF

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
58同城跨平台高性能高可用 中间层服务架构设计分享 58 同城 陈春 2012-09-10 关于我 姓名:陈春 58 同城 - 技术中心- 架构部 在58 同城主要负责基础架构,跨平台分布式服务,通用组件,基础支撑框 架的设计与研发相关工作. 有幸参与了58 同城多个重大核心系统的设计与研 发工作 sina微博:@58 陈春 关于这次分享 主要介绍如何塔建一个跨平台,分布式,高性能,高可用的中间层服务, 以及58.com开源的中间层服务框架(容器)--Gaea(盖亚) 目录: 1. 设计异构平台高可用,高性能的中间层服务的挑战 2. 常见的解决方案 3. 58.com的解决方案 4. Gaea 的设计和实现细节 设计一个异构平台中间层服务有哪些挑战? 异构平台 = 如何跨平台? 如何通讯,采用哪种通讯模型? 采用什么协议? 如何序列化(json, xml, binary …)? 每秒上万(几十万)次的请求= 如何保证高吞吐,低延时? 7*24不间服务= 热布署?采用哪种HA方案? 服务有(无)状态,两次请求是否有上下文关系? 服务有(无)事务,如何解决? 是否方便扩展,是否可以通过简单的加机器来解决性能问题? …… 常见的解决方案 .net = WCF, Remoting Windows通信基础(Windows Communication Foundation) 是基于Windows平 台下开发和部署服务的软件开发包 Java = EJB, RMI Enterprise JavaBean sun 的服务器端组件模型,最大的用处是部署分布式应 用程序 WebService – 描述数据的方法:XML – 信息交换的协议:SOAP – 传输协议:HTTP RestFull – HTTP原语封装,回归HTTP本性(get 、post、put、delete ) – 业界开放api新标准 – 面向资源开发 – 公开目录结构式的URI netflix, dubbo, Hessian, JBoss-Remoting, xxxRPC….. 其他的一些解决方案 facebook = Thrift Thrift 最初由Facebook于2007年开发,2008年进入Apache开源项目。跨平台通 信中thrift可以作为二进制的高性能的通讯中间件,支持数据(对象)序列化和多 种类型的RPC服务 google = Protocol buffer PB是一种用于序列化结构化数据的机制,它具有灵活、高效、自动化的特点。 在Google 几乎所有它内部的RPC协议和文件格式都是采用PB 58想做什么? 让一般的程序员能够快速的开发出和优秀程序员一样高效,安全,稳定的跨平 台中间层服务  学习成本要足够的低,只需要看很少的文档或看个简单的demo就能快速上手  开发效率要足够高,能够快速的开发出一个高质量的服务  程序运行速度要足够快,能够轻松应对每秒上万次的QPS,占用机器资源 要尽可能的少  运维要足够的方便,各种指标的监控方便运维和定位问题  健状性要足够的好,需要有很好的HA和负载均衡机制  要能够跨平台,58 同时有java, c++, .net(少量老项目)项目 怎么做? 服务开发者 = 不需要关心通讯细节 不需要关心序列化细节 不需要关心HA 不需要关心如何跨平台 有很完善的监控和性能计数器功能方便快速定位问题 只专注于具体的业务处理 服务调用者 = 就像调用本地方法一样,其他细节均无需关心 • 通讯组件 • 跨平台序列化组件 • 客户端 • 服务容器 Gaea Client(组件) 负载均衡 动态代理

文档评论(0)

Lxq3610 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档