庖丁解牛“微服务”

时间:2022-10-24 18:02:08

        庖丁解牛“微服务”

        上图是一个视频直播网站的直播间页面的架构,直播间页面的功能点很多,本文只列举其中的音视频、观众列表、弹幕、礼物几个功能点来说,观众发弹幕时需要根据关键字屏蔽,送礼物时要检查帐户的余额。

        大型互联网架构都是设计成微服务的架构,每个微服务独立进程,独立部署,腾讯里流行着一句话:“大系统小做”,以庖丁解牛的办法,把大系统分解成各小系统,小系统之间以接口方式调用,这句话也深深体现了“微服务”设计的精髓。  

        把“牛”切成七块:

        1.      web应用进程

        2.      音视频服务进程

        3.      观众列表进程

        4.      弹幕进程

        5.      视频进程

        6.      关键字进程

        7.      帐户进程

        进程之间接口调用,自订私有协议,调用方把编码请求参数,接送方解码参数,编码计算结果返回,当然也可以用protobuf、thrift等开源协议。

        下面来谈谈微服务架构的优缺点。

        优点:

        进程独立开发,每个进程的开发与升级不影响到其他进程。

        进程独立部署,可针对每个进程的负载情况进行扩容与缩减。

        开发语言独立,进程可由任何一种语言实现。

 

        缺点:

        开发成本,增加开发联调成本。

        系统性能,进程在同一机房的话,进程间调用增加几毫秒的时长,可以忽略不计,如果不在同一机房会受网络波动影响,时长和可靠性得不到保证。

 

        “微服务”设计是一种海量服务下的分布式架构,进程间的独立保证了在可以平行扩容应对不断增加的请求量,如果对于一些小系统,考虑到开发成本,可以不需要以“微服务”方式。