XX直播技术架构很骚,只能画个简单的.
架构概览
image.png高可用、高并发与分布式
客户端负载 —— ACK切换
手机端和网页端做的客户端负载,原理如下:
- 手机端第一次登录的时候,拉取需要访问的域名表,两个表分主表和备表,表中各有10个域名,域名中各自指向南北3个机房;
- 域名表每10分钟就会刷新一次;
- 当域名无法访问,就会利用ping的方式遍历主备表,选取最优的节点访问;
- 同时也能做到北方用户访问北方机房,南方用户访问南方机房。
服务端负载 —— upstream+backup
很简单利用nginx的负载均衡,负载的同时考虑核心节点挂了就启动backup节点,如下配置:
upstream netitcast.com {
server 127.0.0.1:6666 weight=1;
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 backup;
}
location / {
proxy_pass http://netitcast.com;
proxy_redirect default;
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;
}
thrift-rpc + springcloud-rpc
- 微服务提供thrift接口和http接口;
- 事业部内微服务之间使用thrift接口互相调用,但是对外提供http接口,是给其他事业部使用的,比如音乐事业部和硬件事业部。
网友评论