米聊服务器技术选型与架构.pptx
自我介绍
l瞿晋萍
l2010/7月份加入小米至今
○从2010年10月到现在一直开发米聊
○米聊服务器端架构师
○米聊消息系统技术带头人
l之前在Microsoft3年,开发Bing搜索引擎和windowsphone7云服务客户端
l之前在Lucent和Nortel开发电信软件
米聊服务器的技术选型与架构设计
人多,钱傻,速来
我们生活在一个怎样的
年代?
怎样办?
天下武功,唯快不败
快速推出新功能,
2014
试错,验证后快速迭代改进
快速扩张研发队伍,
2015
模式初步验证后,加大资源投入
架构快速水平扩张
2016
当业务方向对,推广运营到位,互联网海量业务规模
工程技术速度的考量
要保证可持续的快
3大纪律,8项
注意
如何保证可持续的快
技术选型的3大纪律
010203
大厂都在用自己搞得掂项目输得起
注意1:分治,SOA
•业务分而治之
•技术上:
–服务命名naming/自动发现registerdiscovery/治理(负
载均衡,柔性服务)
–各个服务封装功能和数据,把接口以ip+port暴露出来
•工程考虑:作为研发和部署的单位,加人方便、独
立研发演进、降低复杂度、
•米聊的技术实现:
–Zookeeper,命名树
–各个服务注册成命名节点
–客户端先去zookeeper查找,再调用
注意2:服务/数据访问通过接口
•服务接口要求
–紧致(compact)
–多版本支持(multi-version)
–同步与异步
•数据访问:
–DAL+DAO
•工程考虑:屏蔽变化和复杂性,便于共享,使用和升级
•我们的选择
–同步用thrift(服务使用HsHa)
–异步用rabbitmq
•rabbitmq不就是分布式的actor吗
•非阻塞,并发性好
•事件驱动,容错性好
•Trafficshaping,容峰值流量好
–数据库访问层DAL(datasource)
注意3:接口/数据要支持多版本化,可扩展
外部和内部所有接我们的实现
口
○httpapi:
n工程考量:灵