当前位置: 首页 > 科技观察

新浪微博温情:基于微服务的微博直播交互架构设计经验分享

时间:2023-03-18 13:06:07 科技观察

【.com原稿】2017年12月01-02日,由深圳中洲万豪酒店主办的WOTD全球软件开发技术峰会隆重举行。本次峰会以软件开发为主题,数十位专家嘉宾将带来众多精彩纷呈的技术内容分享环节。届时,新浪微博研发中心平台高级系统研发工程师文青将在微服务与容器技术专场以“基于Docker的微博直播互动微服务架构”为主题进行精彩演讲。届时,他将与嘉宾分享如何利用当前的技术热点“微服务”,设计出稳定的微服务架构,支持百万在线微博直播互动。诚邀您莅临大会,与我们一起分享科技带来的快乐。  会前,记者采访了文青,分享了他在微服务架构应用、微博直播互动微服务架构设计等方面的经验。  【讲师简介】微博-研发中心平台高级系统研发工程师文青  文青,微博研发中心平台高级系统研发工程师,从事微博视频及通信相关系统的研发。目前负责微博直播消息交互系统的研发。个人推荐高可用、弹性伸缩、低耦合的微服务架构设计。技术上擅长消息通信,在应对系统流量暴增、高并发等方面有丰富的实战经验。  我们为什么需要微服务架构?  微服务(MicroServices)架构是互联网行业的一个技术热点。为什么我们需要微服务架构?它能解决什么问题?  对此,文青认为,微服务架构可以解决两大问题:  一方面,在系统功能比较单一的情况下,采用单一的方式开发和部署是没有问题的,但随着业务需求的增加,复杂度增加,任何一个小的需求变更都需要打包、上线、测试、部署,这让开发团队难以进行敏捷开发,每次增加新特性和修复bug都会变得非常耗时。应用越复杂,依赖的资源越多,启动速度越慢,难以实现快速扩展。  另一方面,随着维护同一个应用的开发者越来越多,任何一个人的严重bug,比如内存泄露,都会导致整个服务不可用。  微服务架构可以解决这些问题,于是微服务架构应运而生。  微服务架构的优点和缺点  事物的存在有两个方面,微服务架构也是一样,有优点也有缺点。温情表示,微服务架构的优缺点是显而易见的。  的优点在于:***,通过服务划分的方式,解决了复杂性问题。第二,每个微服务都是独立开发的,不同的开发团队可以用不同的语言和技术来实现。第三,每个微服务独立部署和扩展,减少服务之间的依赖。同时,不同类型的服务是不同的,有的是基于内存的,有的是基于CPU的,可以根据服务类型选择不同类型的服务器。  缺点在于:***,相互依赖的服务之间的通信问题可能会因为网络等因素增加新的开销。第二,微服务拆分后,服务规模增大,运维难度加大。第三,任何一个请求都可能在依赖的服务中出错,增加了排错的难度。  温馨建议,虽然微服务架构优势明显,但企业还是需要根据实际情况考虑是否应用微服务。尤其是在企业系统复杂度不高,业务不复杂的场景下,还是尽量使用单体开发比较好。也不要为了“微服务”而强行微服务。微服务不仅对开发人员提出了新的要求,更需要更强大的运维团队的支持。在系统复杂度不高的场景下,微服务的引入可能会成倍增加维护成本。同时也可能造成需求难以快速响应、线上问题难以快速定位等问题。  微博直播互动微服务架构设计需要注意的细节对架构设计需要注意的细节等问题进行深入分析解读。  微博实时消息交互系统是一个比较复杂的系统,在设计上有很多特殊的要求。首先,在微服务的过程中,研发团队会更加注重核心服务和非核心服务的划分,这样当服务遇到瓶颈时,可以保证核心业务不会被受降级影响。其次,对容易出现瓶颈的服务进行划分,减少对其他服务的依赖,使服务更加轻量化,从而实现服务的快速扩展。第三,微博服务经常面临流量暴增的问题,微博直播互动系统也面临这个问题,而且暴增的特征更加明显。当流量激增时,仅靠人工方式无法实现服务的快速扩容,需要实现服务的自动弹性伸缩。  微服务架构设计主要分为三个步骤:微服务的划分、微服务之间的通信、微服务的部署。在整个设计过程中,这三个环节需要注意的细节很多。  对于微服务的划分,需要注意服务划分的粒度,一开始不要太细粒度。而是根据业务的发展和需求,适时拆分复杂度高的业务,对功能相同的业务进行归类划分。例如,对于直播互动的系统,服务的难点在于与用户保持长期联系,持续推送消息。在一个10万人同时在线的房间里,每秒有10个人评论,推送的消息量为100万条/s。因此,推送服务也是最容易出现瓶颈,需要快速扩容的服务。那么,在划分微服务的时候,需要尽可能把推送服务做轻量级,减少对其他服务的依赖,加快扩展速度。  对于微服务之间的通信,我们需要注意服务依赖的问题。比如:一个服务A,它所依赖的服务B平均需要1s来同步,这就会导致服务A的平均响应时间至少为1s。  部署微服务,需要注意两点:第一,在快速扩容时,依赖的资源和服务需要一起扩容,包括负载均衡,缓存,甚至DB,否则服务仍然会遇到瓶颈。二是服务升级时,取决于服务之间的在线问题。  WOT峰会演讲内容提前  本次峰会,暖暖将为大家带来微博直播互动微服务架构设计主题演讲。  采访时,他向记者介绍,本次演讲将围绕如何解决微服务过程中的微服务粒度划分、微服务通信、微服务部署等问题展开。在架构设计上,如何利用Docker技术解决混合云平台引入的环境差异问题,从而实现更快的服务部署和扩展。针对直播明显的波峰波谷,以及微博流量激增的特点,直播互动服务利用混合云的弹性伸缩能力,构建了一套自动化的弹性伸缩服务,不仅解决了波峰问题响应,还实现了成本降低。***改变。【原创稿件,合作网站转载请注明原作者和出处为.com】