SlideShare uma empresa Scribd logo
1 de 19
自我介绍
• 瞿晋萍
• 2010/7月份加入小米至今
 – 从2010年10月到现在一直开发米聊
 – 米聊服务器端架构师
 – 米聊消息系统技术带头人
• 之前在Microsoft3年,开发Bing搜索引擎和
  windows phone 7云服务客户端
• 之前在Lucent和Nortel开发电信软件
米聊服务器的技术选型与架构设计
我们生活在一个怎样的年代?



 人多,钱傻,速来
怎样办?



天下武功,唯快不败
工程技术速度的考量
            -要保证可持续的快

• 快速推出新功能,
  试错,验证后快速迭代改进
• 快速扩张研发队伍,
  模式初步验证后,加大资源投入
• 架构快速水平扩张
  当业务方向对,推广运营到位,互联网海
  量业务规模
如何保证可持续的快


3大纪律,8项注意
技术选型的3大纪律

 大厂都在用
 自己搞得掂
 项目输得起
注意1:分治,SOA
• 业务分而治之
• 技术上:
 – 服务命名naming/自动发现register&discovery/治理(负
   载均衡,柔性服务)
 – 各个服务封装功能和数据,把接口以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: 一开始就要考虑安全机制
• 用户身份认证/授权/数据泄露/防篡改
• 工程考量:
 – 避免见光死
Q&A
我们正在招聘
米聊服务器技术选型与架构

Mais conteúdo relacionado

Destaque

詹剑锋:Big databench—benchmarking big data systems
詹剑锋:Big databench—benchmarking big data systems詹剑锋:Big databench—benchmarking big data systems
詹剑锋:Big databench—benchmarking big data systemshdhappy001
 
Xiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resumeXiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resumeXiaoli Ma
 
冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展hdhappy001
 
Stanford splash spring 2016 basic programming
Stanford splash spring 2016 basic programmingStanford splash spring 2016 basic programming
Stanford splash spring 2016 basic programmingYu-Sheng (Yosen) Chen
 
Research Park: Year in Review 2014
Research Park: Year in Review 2014Research Park: Year in Review 2014
Research Park: Year in Review 2014UIResearchPark
 
Kafka文件系统设计
Kafka文件系统设计Kafka文件系统设计
Kafka文件系统设计志涛 李
 
前端规范(初稿)
前端规范(初稿)前端规范(初稿)
前端规范(初稿)EnLei-Cai
 
CVLinkedIn
CVLinkedInCVLinkedIn
CVLinkedInJun Ma
 
Zejia_CV_final
Zejia_CV_finalZejia_CV_final
Zejia_CV_finalZJ Zheng
 
Wei_Zhao_Resume
Wei_Zhao_ResumeWei_Zhao_Resume
Wei_Zhao_ResumeWei Zhao
 
Resume_Yilun Chong_EN
Resume_Yilun Chong_ENResume_Yilun Chong_EN
Resume_Yilun Chong_ENYilun Chong
 

Destaque (17)

CV-YacineRhalmi
CV-YacineRhalmiCV-YacineRhalmi
CV-YacineRhalmi
 
詹剑锋:Big databench—benchmarking big data systems
詹剑锋:Big databench—benchmarking big data systems詹剑锋:Big databench—benchmarking big data systems
詹剑锋:Big databench—benchmarking big data systems
 
Xiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resumeXiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resume
 
dpdp
dpdpdpdp
dpdp
 
Hung DO-DUY - Spikenet
Hung DO-DUY - Spikenet Hung DO-DUY - Spikenet
Hung DO-DUY - Spikenet
 
Paradigm Shifts
Paradigm ShiftsParadigm Shifts
Paradigm Shifts
 
冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展
 
Stanford splash spring 2016 basic programming
Stanford splash spring 2016 basic programmingStanford splash spring 2016 basic programming
Stanford splash spring 2016 basic programming
 
Research Park: Year in Review 2014
Research Park: Year in Review 2014Research Park: Year in Review 2014
Research Park: Year in Review 2014
 
Lichang Wang_CV
Lichang Wang_CVLichang Wang_CV
Lichang Wang_CV
 
Kafka文件系统设计
Kafka文件系统设计Kafka文件系统设计
Kafka文件系统设计
 
前端规范(初稿)
前端规范(初稿)前端规范(初稿)
前端规范(初稿)
 
CVLinkedIn
CVLinkedInCVLinkedIn
CVLinkedIn
 
Zejia_CV_final
Zejia_CV_finalZejia_CV_final
Zejia_CV_final
 
Cv 12112015
Cv 12112015Cv 12112015
Cv 12112015
 
Wei_Zhao_Resume
Wei_Zhao_ResumeWei_Zhao_Resume
Wei_Zhao_Resume
 
Resume_Yilun Chong_EN
Resume_Yilun Chong_ENResume_Yilun Chong_EN
Resume_Yilun Chong_EN
 

Semelhante a 米聊服务器技术选型与架构

台中市創業平台建置計畫
台中市創業平台建置計畫台中市創業平台建置計畫
台中市創業平台建置計畫Chris 克里斯
 
腾讯组织架构及其战略
腾讯组织架构及其战略腾讯组织架构及其战略
腾讯组织架构及其战略microgg
 
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applicationsXiaohui Chen
 
浩腾电商 · 家具业电子商务解决方案
浩腾电商 · 家具业电子商务解决方案浩腾电商 · 家具业电子商务解决方案
浩腾电商 · 家具业电子商务解决方案justanson
 
創人物Vol.3 - 陳謙 - 實習分享
創人物Vol.3 - 陳謙 - 實習分享創人物Vol.3 - 陳謙 - 實習分享
創人物Vol.3 - 陳謙 - 實習分享交點
 
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)Chris Huang
 
互联网海量运维 20130807
互联网海量运维 20130807互联网海量运维 20130807
互联网海量运维 20130807drewz lin
 
04 陈良忠ibm cloud forum ibm experience 0611
04 陈良忠ibm cloud forum  ibm experience 061104 陈良忠ibm cloud forum  ibm experience 0611
04 陈良忠ibm cloud forum ibm experience 0611ikewu83
 
大型Sns网站数据库设计
大型Sns网站数据库设计大型Sns网站数据库设计
大型Sns网站数据库设计Tony Deng
 
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統LaravelConfTaiwan
 
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線Yi-Wei Lai
 
卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期shikelou
 
yarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introductionyarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introductionLeon Liu
 
项目管理敏捷方法
项目管理敏捷方法项目管理敏捷方法
项目管理敏捷方法Weijun Zhong
 
CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式handbook
 
国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇Steven Cheng
 
網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇p_yang
 
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用Michael Chi
 

Semelhante a 米聊服务器技术选型与架构 (20)

台中市創業平台建置計畫
台中市創業平台建置計畫台中市創業平台建置計畫
台中市創業平台建置計畫
 
腾讯组织架构及其战略
腾讯组织架构及其战略腾讯组织架构及其战略
腾讯组织架构及其战略
 
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications
 
浩腾电商 · 家具业电子商务解决方案
浩腾电商 · 家具业电子商务解决方案浩腾电商 · 家具业电子商务解决方案
浩腾电商 · 家具业电子商务解决方案
 
創人物Vol.3 - 陳謙 - 實習分享
創人物Vol.3 - 陳謙 - 實習分享創人物Vol.3 - 陳謙 - 實習分享
創人物Vol.3 - 陳謙 - 實習分享
 
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
 
互联网海量运维 20130807
互联网海量运维 20130807互联网海量运维 20130807
互联网海量运维 20130807
 
04 陈良忠ibm cloud forum ibm experience 0611
04 陈良忠ibm cloud forum  ibm experience 061104 陈良忠ibm cloud forum  ibm experience 0611
04 陈良忠ibm cloud forum ibm experience 0611
 
大型Sns网站数据库设计
大型Sns网站数据库设计大型Sns网站数据库设计
大型Sns网站数据库设计
 
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統
 
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
 
卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期
 
yarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introductionyarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introduction
 
项目管理敏捷方法
项目管理敏捷方法项目管理敏捷方法
项目管理敏捷方法
 
滙聚資訊科技業務簡介v1.1
滙聚資訊科技業務簡介v1.1滙聚資訊科技業務簡介v1.1
滙聚資訊科技業務簡介v1.1
 
20150206 aic machine learning
20150206 aic machine learning20150206 aic machine learning
20150206 aic machine learning
 
CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式
 
国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇
 
網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇
 
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用
 

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