米聊服务器技术选型与架构.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
米聊服务器技术选型与架构ppt课件

自我介绍 瞿晋萍 2010/7月份加入小米至今 从2010年10月到现在一直开发米聊 米聊服务器端架构师 米聊消息系统技术带头人 之前在Microsoft3年,开发Bing搜索引擎和windows phone 7云服务客户端 之前在Lucent和Nortel开发电信软件 米聊服务器的技术选型与架构设计 我们生活在一个怎样的年代? 人多,钱傻,速来 怎样办? 天下武功,唯快不败 工程技术速度的考量 -要保证可持续的快 快速推出新功能, 试错,验证后快速迭代改进 快速扩张研发队伍, 模式初步验证后,加大资源投入 架构快速水平扩张 当业务方向对,推广运营到位,互联网海量业务规模 3大纪律,8项注意 如何保证可持续的快 技术选型的3大纪律 大厂都在用 自己搞得掂 项目输得起 注意1:分治,SOA 业务分而治之 技术上: 服务命名naming/自动发现registerdiscovery/治理(负载均衡,柔性服务) 各个服务封装功能和数据,把接口以ip+port暴露出来 工程考虑:作为研发和部署的单位,加人方便、独立研发演进、降低复杂度、 米聊的技术实现: Zookeeper,命名树 各个服务注册成命名节点 客户端先去zookeeper查找,再调用 注意2:服务/数据访问通过接口 服务接口要求 紧致(compact) 多版本支持(multi-version) 同步与异步 数据访问: DAL+DAO 工程考虑:屏蔽变化和复杂性,便于共享,使用和升级 我们的选择 同步用thrift (服务使用HsHa) 异步用rabbitmq rabbitmq不就是分布式的actor吗 非阻塞,并发性好 事件驱动,容错性好 Traffic shaping, 容峰值流量好 数据库访问层DAL(data source) 注意3:接口/数据要支持多版本化,可扩展 外部和内部所有接口 http api Rpc Data XMPP连接协议 工程考量:灵活扩展又保持前后向兼容 我们的实现 http api: url版本化 Rpc/data: thrift Xmpp:增加了版本号 注意4:数据说话 Measure 测量统计:业务和服务质量 业务(KPI) 服务质量(吞吐量throughput和时延latency) 我们的实现: 数据采集与统计(scribe log+hadoop+hive) Counter各个服务之间统计 Metrics (Codahale) 注意5: 用哈希partition 所有东西 为海量用户提供服务的唯一途径 工程考量:机制越早建立越好。因为业务爆发很快。另外开发一开始就有scale的概念,不会做比如join 我们的实现: 数据库:一开始就按uid分表分库,做垂直和水平分割,用DAL屏蔽 服务用uid range分割 Memcached等用一致性hash 注意6: 服务无状态 服务要设计成无状态,可以被”kill -9” 工程考量: 可以在线升级 可以提供多个实例作为冗余,提高可用性和负载均衡 我们的实现: 服务内部无状态,通过cache或者数据库共享状态 客户端通过zookeeper发现服务的多个实例,负载均衡,并且实现出错fallback机制 注意7: 架构上要支持灰度升级 快速开发过程中,要有 工程考量: 快速开发,错误难免,避免全站影响 可做业务比较,尤其让内部员工dogfood最新功能 可打不同程度的流量和做dark launch 我们的实现: 前端快速接入,不含/少含业务逻辑 业务通过前端后,根据ip/白名单/参数里uid/cookie得到相应的服务partition uid白名单定义preview partition给内部员工服务 基于uid range定义一系列的partition做灰度,诸层次的升级 注意8: 一开始就要考虑安全机制 用户身份认证/授权/数据泄露/防篡改 工程考量: 避免见光死 QA 我们正在招聘

文档评论(0)

xyz118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档