不用修改nginx的高并发合并回源架构

nginx的连接都是一对一的,想改成一对多,比较麻烦,所以曾经看完了Nginx代码想改成一对多,我还是没改成,后来改变了一下思路想到一个更简单的方案,而且不失并发性能,还容易控制,下面先给出下面的图:

简单说下:上面这个图指的是一个服务器上的,Nginx用来承接大并发,然后的一对一的连接,随机发给后边的服务,进程1,进程2.。。。,这个通信别用端口,端口会占用端口资源,我用unix域,然后进程1,进程2....,我看成是第一层进程,他们负责合并本进程的相同流名称的流,这个时候进程1和进程2中还可能存在相同的流名称,然后再根据流名称做hash算法,分配到进程n,这个进程n也可能是多个进程,但是这第二层的进程每个进程中的流都是不同的了,经过第二层的合并,最后一个流名称只产生一个后端的连接出来了,去连源就可以了。

这里解释一下:为什么我不直接在nginx hash不同的流名称到第一层进程呢,这里主要考虑有的流客户端量比较大,一个进程可能不均匀,主要是负载均匀考虑,by 一休摸鱼。

时间: 2024-10-03 22:32:38

不用修改nginx的高并发合并回源架构的相关文章

高性能、高并发网络通信系统的架构设计

1 引言 随着互联网和物联网的高速发展,使用网络的人数和电子设备的数量急剧增长,其也对互联网后台服务程序提出了更高的性能和并发要求.本文的主要目的是阐述如何进行高并发.高性能网络通信系统的架构设计,以及这样的系统的常用技术,但不对其技术细节进行讨论.本篇只起抛砖引玉的之效,如有更好的设计方案和思路,望您共分享之![注:此篇用select来讲解,如想用epoll,设计思路是一致的] 我们首先来看看课本或学习资料上关于处理并发网络编程的三种常用方案,以及对应的大体思路和优缺点,其描述如下所示:  

高并发和大型网站架构相关

高并发和大型网站架构相关: 架构图: 2:通过网站的架构处理高并发业务: 一:分布式部署服务器: 1:控制层.业务层.数据层.个人中心.列表 分布式部署. 2:使用缓存:memcache或则Redis; 3:使用消息队列ActiveMq; 4:使用全文检索(nosql数据库): 5:文件的分布式部署: 6:数据库的分布式部署以及数据库的读写分离(数据库的读写分离可以同步): 7:使用锁的机制: 原文地址:https://www.cnblogs.com/dw3306/p/9384831.html

PHP Nginx MySQL 高并发调优 小试

项目要求实现一个免费抢券的功能,涉及到高并发的问题,研究了几天,记录下来,欢迎工友们扔砖头~~ 整个项目是PHP+Nginx+Mysql的架构,由于PHP是阻塞的单线程模型,不支持多线程,因此也没有Java那么好用的同步机制,我想到的办法就是在数据库级别做相应的同步互斥的控制,Mysql的锁机制我放在了Mysql数据库锁机制这篇博文当中.通过查看Mysql官方文档,我想到了两种解决方案:一.使用LOCK TABLE 或START TRANSACTION 写SQL 语句: 二.使用CREATE P

nginx 实现高并发和高负载

一.Nginx是如何实现高并发的 service nginx start之后,然后输入#ps -ef|grep nginx,会发现Nginx有一个master进程和若干个worker进程,这些worker进程是平等的,都是被master fork过来的.在master里面,先建立需要listen的socket(listenfd),然后再fork出多个worker进程.当用户进入nginx服务的时候,每个worker的listenfd变的可读,并且这些worker会抢一个叫accept_mutex

教你修改Linux下高并发socket最大连接数所受的各种限制

1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开 文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄).可使用ulimit命令查看 系统允许当前用户进程打开的文件数限制: [[email protected] ~]$ ulimit -n 1024 这表示当前用户的每个进程最多允许同时打开1024个文件,这1024个

Nginx多进程高并发、低时延、高可靠机制在缓存代理中的应用

1. 开发背景 现有开源缓存代理中间件有twemproxy.codis等,其中twemproxy为单进程单线程模型,只支持memcache单机版和redis单机版,都不支持集群版功能. 由于twemproxy无法利用多核特性,因此性能低下,短连接QPS大约为3W,长连接QPS大约为13W,同时某些场景时延抖动厉害. 为了适应公有云平台上业务方的高并发需求,因此决定借助于twemproxy来做二次开发,把nginx的高性能.高可靠.高并发机制引入到twemproxy中,通过master+多work

[转]Nginx实现高并发的原理

Nginx 首先要明白,Nginx 采用的是多进程(单线程) & 多路IO复用模型.使用了 I/O 多路复用技术的 Nginx,就成了”并发事件驱动“的服务器. 异步非阻塞(AIO)的详解http://www.ibm.com/developerworks/cn/linux/l-async/ 多进程的工作模式 1.Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程.   2.接收来自外界的信号,向各worker进程发送信号,每个进程都有可能来处理这个连接.  

nginx处理高并发请求强于apache

ginx 不同于 Apache2 的一点就是,Nginx 采用单线程,非阻塞,异步 IO 的工作模型. Apache2 对于每一个请求,都会创建一个新进程或线程,会浪费很多内存和 CPU 时间,而 Nginx 使用操作系统提供的IO多路复用技术(epoll), 在一个线程中处理所有的请求.当一个 IO 操作开始的时候,Nginx 不会等待操作完成就会去处理下一个请求,等到某个 IO 操作完成后,Nginx 再回过头去处理这次 IO 的后续工作. 下面解释,很详细,http://www.zhihu

高并发电子商务平台技术架构

原文出自:http://blog.csdn.net/yangbutao/article/details/12242441 http://stamen.iteye.com/blog/1525924 我自己的大型B2B和B2C站点原来也是用Hibernate,可是后来不得不换成mybatis, 第一是用Hibernate 因为它封装得太高了.非常多东西是隐式进行的.常常引起问题,非常难定位.毕竟凡事有利必有弊: 第二大型站点肯定不是一个数据库.这点Hibernate是非常麻烦的,用Jdbc或Myba