负载均能能够提供一种廉价、有效、透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。在EasyDSS视频平台里,我们主要是通过配置stream功能模块来实现负载均衡的需求。
为了能够更好的实现EasyDSS的转码模块分布式部署,我们需要一个独立的负载均衡和服务发现机制;负载均衡则需要采用grpc自带的balance模块进行,而服务发现用的是etcd进行。
在github中发现了一个使用该架构的开发实例:https://github.com/liyue201/grpc-lb.git,但在编译对应的demo时发现,grpc的balancer模块回报多个找不到结构体的问题;
查阅资料后发现grpc balance对应的grpc版本为1.26.0;在此以上的版本没有这个结构;
因此,此处把grpc版本降低到1.26或以下即可,比较简单的办法就是直接修改go.mod文件:
更改相应配置后编译成功。
EasyDSS实现RTMP负载均衡的方法我们之前有告知过大家,如果大家感兴趣,可以关注我们,此外我们还分享了EasyDSS的集群思路,大家如果想了解可以翻阅一下我们之前的博文,我们也会不定期更新关于EasyDSS的开发过程,欢迎大家关注。