nginx的连接都是一对一的,想改成一对多,比较麻烦,所以曾经看完了Nginx代码想改成一对多,我还是没改成,后来改变了一下思路想到一个更简单的方案,而且不失并发性能,还容易控制,下面先给出下面的图:
简单说下:上面这个图指的是一个服务器上的,Nginx用来承接大并发,然后的一对一的连接,随机发给后边的服务,进程1,进程2.。。。,这个通信别用端口,端口会占用端口资源,我用unix域,然后进程1,进程2....,我看成是第一层进程,他们负责合并本进程的相同流名称的流,这个时候进程1和进程2中还可能存在相同的流名称,然后再根据流名称做hash算法,分配到进程n,这个进程n也可能是多个进程,但是这第二层的进程每个进程中的流都是不同的了,经过第二层的合并,最后一个流名称只产生一个后端的连接出来了,去连源就可以了。
这里解释一下:为什么我不直接在nginx hash不同的流名称到第一层进程呢,这里主要考虑有的流客户端量比较大,一个进程可能不均匀,主要是负载均匀考虑,by 一休摸鱼。
时间: 2024-10-03 22:32:38