直播软件开发在高峰期期间遇到大量的用户请求很常见,为了保证平台的运行,往往要依靠负载均衡的帮助,不过这种情况说的简单,实际应用中是如何实现的呢?
一、任务服务器的任务分配
任务服务器应该能够监控这些应用服务器的状态,在实现应用服务器的时候应该让应用服务器暴露部分接口,这样让直播软件开发可以使用私有协议,也可以使用http协议,也就是说到的应用服务器http server,任务服务器去查询这些应用服务器的状态、负载等情况,然后将新收到的用户请求分给负载最低的服务器。
二、应用服务器主动像任务服务器获取任务
为了保证应用服务器性能得到充分发挥,那么在服务器处理完任务后主动去索要新的任务是很有必要的,主动获取在直播软件开发的实际应用中存在一定的困难。
当任务服务器负载均衡后,系统能处理更多的并发请求,但任务服务器有可能出现故障,这时就需要服务器具备一定的故障转移能力,如果直播软件开发请求足够多的话,甚至需要多台服务器备用,任务服务器之间通过心跳检测来判断是否平台处于可运行状态。
三、服务器性能误区
1、数据拷贝,对直播软件开发来说,应该尽可能的减少数据的拷贝,尤其是内存的拷贝,这主要是缓存机制在使用,从内存中拷贝数据到应用层,会消耗服务器过多的资源在拷贝任务上,而不是用来响应用户请求。
2、使用环境切换,主要指线程的切换,服务器是否该用多线程、多核服务器,这不仅关系到直播软件开发投入的费用多少,还会影响到服务器性能发挥,可以说,多核、多线程并不一定能提高性能,即使是单核服务器,就算是采用多线程,面对直播软件开发众多任务时,增加线程间的切换开销反而还没多核服务器处理请求的开销大。
3、内存分配,通过增加内存池,减少向操作系统申请内存。
4、锁竞争,资源锁是为了保证直播软件开发资源的使用,对服务器来说应该避免锁的使用,以及资源之间的竞争。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任
联系客服