Linux是直播APP系统源码常用的系统,其为了实现隔离技术一般会采用namespace技术,简单来说它给直播APP系统源码加了限制,可以让用户看到指定的内容,但并不影响主机对这些进程的把控。
一、namespace技术
它是Linux操作系统默认提供的API,包括 PID Namespace、Mount Namespace、IPC Namespace、Network Namespace等等。
以 PID Namespace 为例,它的功能是可以让我们在创建进程的时候,告诉Linux系统,直播APP系统源码要创建的进程需要一个新的独立进程空间,也就是说,这个进程只看得到这个新进程空间里的东西,看不到外面宿主机环境里的东西,也看不到其它进程。
Network Namespace 的技术原理也类似,让这个进程只能看到当前Namespace空间里的网络设备,看不到宿主机真实情况。Namespace 技术其实就是修改了应用进程的视觉范围,但应用进程的本质却没有变化。
二、namespace技术的不足
1、多容器模式下仍然是由一个主机操作,这和CDN有些相似,当直播APP系统源码某个节点出现故障时,可能会连带整条传输线路无法运行,直到有节点接替该节点的工作为止。
2、linux内核中存在资源和对象不能被namespace化,如果直播APP系统源码中的长须使用系统调用修改了时间,则整个主机的时间都会被随之修改,这显然不符合用户的预期,增加了平台的维护时间。
3、增加了危险性,生产环境中,没有人敢把运行在物理机上的Linux容器直接暴露到公网上。
4、限制容器,任何一个节点都有可能把主机的资源消耗光,这反而不利于平台主机对资源的管理。
三、cgrougs技术
其功能就是限制直播APP系统源码进程组所使用的最大资源(这些资源可以是 CPU、内存、磁盘等等)。针对上述的问题,为了防止容器(进程)之间互相抢资源,甚至某个容器把宿主机资源全部用完导致其它容器也宕掉的情况发生。因此,必须采用 Cgroup 技术对容器的资源进行限制。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任
领取专属 10元无门槛券
私享最新 技术干货