Enviar pesquisa
Carregar
米聊服务器技术选型与架构
•
Transferir como PPTX, PDF
•
23 gostaram
•
2,168 visualizações
J
Jinping Qu
Seguir
ADC 2012
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 19
Baixar agora
Recomendados
互联网服务的研发 米聊服务器技术选型与架构设计
互联网服务的研发 米聊服务器技术选型与架构设计
sdslnmd
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
Indrajit Poddar
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
Alessandro Arrichiello
CV_Shilidong
CV_Shilidong
?? ?
Introducing Ubuntu SDK
Introducing Ubuntu SDK
Shuduo Sang
台湾趴趴走
台湾趴趴走
Limbo Wong
Fast flux domain detection
Fast flux domain detection
Ni Zhiqiang
Dpdk Validation - Liu, Yong
Dpdk Validation - Liu, Yong
harryvanhaaren
Recomendados
互联网服务的研发 米聊服务器技术选型与架构设计
互联网服务的研发 米聊服务器技术选型与架构设计
sdslnmd
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
Indrajit Poddar
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
Alessandro Arrichiello
CV_Shilidong
CV_Shilidong
?? ?
Introducing Ubuntu SDK
Introducing Ubuntu SDK
Shuduo Sang
台湾趴趴走
台湾趴趴走
Limbo Wong
Fast flux domain detection
Fast flux domain detection
Ni Zhiqiang
Dpdk Validation - Liu, Yong
Dpdk Validation - Liu, Yong
harryvanhaaren
CV-YacineRhalmi
CV-YacineRhalmi
Yacine Rhalmi
詹剑锋:Big databench—benchmarking big data systems
詹剑锋:Big databench—benchmarking big data systems
hdhappy001
Xiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resume
Xiaoli Ma
dpdp
dpdp
Hui (Eric) Liu
Hung DO-DUY - Spikenet
Hung DO-DUY - Spikenet
Les Interconnectés
Paradigm Shifts
Paradigm Shifts
Linchuan Wang
冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展
hdhappy001
Stanford splash spring 2016 basic programming
Stanford splash spring 2016 basic programming
Yu-Sheng (Yosen) Chen
Research Park: Year in Review 2014
Research Park: Year in Review 2014
UIResearchPark
Lichang Wang_CV
Lichang Wang_CV
lichang wang
Kafka文件系统设计
Kafka文件系统设计
志涛 李
前端规范(初稿)
前端规范(初稿)
EnLei-Cai
CVLinkedIn
CVLinkedIn
Jun Ma
Zejia_CV_final
Zejia_CV_final
ZJ Zheng
Cv 12112015
Cv 12112015
Zheng Mengdi
Wei_Zhao_Resume
Wei_Zhao_Resume
Wei Zhao
Resume_Yilun Chong_EN
Resume_Yilun Chong_EN
Yilun Chong
台中市創業平台建置計畫
台中市創業平台建置計畫
Chris 克里斯
腾讯组织架构及其战略
腾讯组织架构及其战略
microgg
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications
Xiaohui Chen
浩腾电商 · 家具业电子商务解决方案
浩腾电商 · 家具业电子商务解决方案
justanson
創人物Vol.3 - 陳謙 - 實習分享
創人物Vol.3 - 陳謙 - 實習分享
交點
Mais conteúdo relacionado
Destaque
CV-YacineRhalmi
CV-YacineRhalmi
Yacine Rhalmi
詹剑锋:Big databench—benchmarking big data systems
詹剑锋:Big databench—benchmarking big data systems
hdhappy001
Xiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resume
Xiaoli Ma
dpdp
dpdp
Hui (Eric) Liu
Hung DO-DUY - Spikenet
Hung DO-DUY - Spikenet
Les Interconnectés
Paradigm Shifts
Paradigm Shifts
Linchuan Wang
冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展
hdhappy001
Stanford splash spring 2016 basic programming
Stanford splash spring 2016 basic programming
Yu-Sheng (Yosen) Chen
Research Park: Year in Review 2014
Research Park: Year in Review 2014
UIResearchPark
Lichang Wang_CV
Lichang Wang_CV
lichang wang
Kafka文件系统设计
Kafka文件系统设计
志涛 李
前端规范(初稿)
前端规范(初稿)
EnLei-Cai
CVLinkedIn
CVLinkedIn
Jun Ma
Zejia_CV_final
Zejia_CV_final
ZJ Zheng
Cv 12112015
Cv 12112015
Zheng Mengdi
Wei_Zhao_Resume
Wei_Zhao_Resume
Wei Zhao
Resume_Yilun Chong_EN
Resume_Yilun Chong_EN
Yilun Chong
Destaque
(17)
CV-YacineRhalmi
CV-YacineRhalmi
詹剑锋:Big databench—benchmarking big data systems
詹剑锋:Big databench—benchmarking big data systems
Xiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resume
dpdp
dpdp
Hung DO-DUY - Spikenet
Hung DO-DUY - Spikenet
Paradigm Shifts
Paradigm Shifts
冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展
Stanford splash spring 2016 basic programming
Stanford splash spring 2016 basic programming
Research Park: Year in Review 2014
Research Park: Year in Review 2014
Lichang Wang_CV
Lichang Wang_CV
Kafka文件系统设计
Kafka文件系统设计
前端规范(初稿)
前端规范(初稿)
CVLinkedIn
CVLinkedIn
Zejia_CV_final
Zejia_CV_final
Cv 12112015
Cv 12112015
Wei_Zhao_Resume
Wei_Zhao_Resume
Resume_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
Xiaohui Chen
浩腾电商 · 家具业电子商务解决方案
浩腾电商 · 家具业电子商务解决方案
justanson
創人物Vol.3 - 陳謙 - 實習分享
創人物Vol.3 - 陳謙 - 實習分享
交點
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
Chris Huang
互联网海量运维 20130807
互联网海量运维 20130807
drewz lin
04 陈良忠ibm cloud forum ibm experience 0611
04 陈良忠ibm cloud forum ibm experience 0611
ikewu83
大型Sns网站数据库设计
大型Sns网站数据库设计
Tony Deng
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統
LaravelConfTaiwan
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
Yi-Wei Lai
卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期
shikelou
yarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introduction
Leon Liu
项目管理敏捷方法
项目管理敏捷方法
Weijun Zhong
滙聚資訊科技業務簡介v1.1
滙聚資訊科技業務簡介v1.1
Integrate Information Technology
20150206 aic machine learning
20150206 aic machine learning
Meng-Ru (Raymond) Tsai
CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式
handbook
国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇
Steven Cheng
網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇
p_yang
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用
Michael Chi
Semelhante a 米聊服务器技术选型与架构
(20)
台中市創業平台建置計畫
台中市創業平台建置計畫
腾讯组织架构及其战略
腾讯组织架构及其战略
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications
三拾众筹技术实践分享:持续交付开发流程支撑创新业务 | ci/cd practices for cloud native applications
浩腾电商 · 家具业电子商务解决方案
浩腾电商 · 家具业电子商务解决方案
創人物Vol.3 - 陳謙 - 實習分享
創人物Vol.3 - 陳謙 - 實習分享
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
互联网海量运维 20130807
互联网海量运维 20130807
04 陈良忠ibm cloud forum ibm experience 0611
04 陈良忠ibm cloud forum ibm experience 0611
大型Sns网站数据库设计
大型Sns网站数据库设计
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統
[LaravelConf Taiwan 2019] 在中國三年,從 0 開始自建完整電商餐飲系統
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期
yarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introduction
项目管理敏捷方法
项目管理敏捷方法
滙聚資訊科技業務簡介v1.1
滙聚資訊科技業務簡介v1.1
20150206 aic machine learning
20150206 aic machine learning
CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式
国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇
網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用
微軟技術暨生態大會 - AI304 - 讓人工智慧為企業所用
米聊服务器技术选型与架构
1.
2.
自我介绍 • 瞿晋萍 • 2010/7月份加入小米至今
– 从2010年10月到现在一直开发米聊 – 米聊服务器端架构师 – 米聊消息系统技术带头人 • 之前在Microsoft3年,开发Bing搜索引擎和 windows phone 7云服务客户端 • 之前在Lucent和Nortel开发电信软件
3.
米聊服务器的技术选型与架构设计
4.
我们生活在一个怎样的年代? 人多,钱傻,速来
5.
怎样办? 天下武功,唯快不败
6.
工程技术速度的考量
-要保证可持续的快 • 快速推出新功能, 试错,验证后快速迭代改进 • 快速扩张研发队伍, 模式初步验证后,加大资源投入 • 架构快速水平扩张 当业务方向对,推广运营到位,互联网海 量业务规模
7.
如何保证可持续的快 3大纪律,8项注意
8.
技术选型的3大纪律 大厂都在用 自己搞得掂
项目输得起
9.
注意1:分治,SOA • 业务分而治之 • 技术上:
– 服务命名naming/自动发现register&discovery/治理(负 载均衡,柔性服务) – 各个服务封装功能和数据,把接口以ip+port暴露出来 • 工程考虑:作为研发和部署的单位,加人方便、独 立研发演进、降低复杂度、 • 米聊的技术实现: – Zookeeper,命名树 – 各个服务注册成命名节点 – 客户端先去zookeeper查找,再调用
10.
注意2:服务/数据访问通过接口 • 服务接口要求 –
紧致(compact) – 多版本支持(multi-version) – 同步与异步 • 数据访问: – DAL+DAO • 工程考虑:屏蔽变化和复杂性,便于共享,使用和升级 • 我们的选择 – 同步用thrift (服务使用HsHa) – 异步用rabbitmq • rabbitmq不就是分布式的actor吗 • 非阻塞,并发性好 • 事件驱动,容错性好 • Traffic shaping, 容峰值流量好 – 数据库访问层DAL(data source)
11.
注意3:接口/数据要支持多版本化, 可扩展 • 外部和内部所有接口 –
http api – Rpc – Data – XMPP连接协议 • 工程考量:灵活扩展又保持前后向兼容 • 我们的实现 – http api: url版本化 – Rpc/data: thrift – Xmpp:增加了版本号
12.
注意4:数据说话 • Measure 测量统计:业务和服务质量
– 业务(KPI) – 服务质量(吞吐量throughput和时延latency) • 我们的实现: – 数据采集与统计(scribe log+hadoop+hive) – Counter各个服务之间统计 – Metrics (Codahale)
13.
注意5: 用哈希partition 所有东西 •
为海量用户提供服务的唯一途径 • 工程考量:机制越早建立越好。因为业务 爆发很快。另外开发一开始就有scale的概 念,不会做比如join • 我们的实现: – 数据库:一开始就按uid分表分库,做垂直和水 平分割,用DAL屏蔽 – 服务用uid range分割 – Memcached等用一致性hash
14.
注意6: 服务无状态 • 服务要设计成无状态,可以被”kill
-9” • 工程考量: – 可以在线升级 – 可以提供多个实例作为冗余,提高可用性和负载均 衡 • 我们的实现: – 服务内部无状态,通过cache或者数据库共享状态 – 客户端通过zookeeper发现服务的多个实例,负载 均衡,并且实现出错fallback机制
15.
注意7: 架构上要支持灰度升级 • 快速开发过程中,要有 •
工程考量: – 快速开发,错误难免,避免全站影响 – 可做业务比较,尤其让内部员工dogfood最新功能 – 可打不同程度的流量和做dark launch • 我们的实现: – 前端快速接入,不含/少含业务逻辑 – 业务通过前端后,根据ip/白名单/参数里uid/cookie得到 相应的服务partition – uid白名单定义preview partition给内部员工服务 – 基于uid range定义一系列的partition做灰度,诸层次的 升级
16.
注意8: 一开始就要考虑安全机制 • 用户身份认证/授权/数据泄露/防篡改 •
工程考量: – 避免见光死
17.
Q&A
18.
我们正在招聘
Baixar agora