Discuss / Python / 这样部署完成后动态页面部分是单进程的,请问如果服务器有多核,动态页面多进程应该怎样部署呢?

这样部署完成后动态页面部分是单进程的,请问如果服务器有多核,动态页面多进程应该怎样部署呢?

Topic source

英小璇

#1 Created at ... [Delete] [Delete and Lock User]

如题

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

用supervisor启动多个进程,每个进程绑定不同端口,nginx转发到这些多进程服务端口即可,N核就是N个进程

英小璇

#3 Created at ... [Delete] [Delete and Lock User]

看了python3的asyncio我对python2教程里的gunicorn + gevent又糊涂了。

python2的教程是给了gunicorn一个wsgi接口,如果gunicorn不加gevent要实现高并发是不是就得使用“同步模式”启动多个worker+每个worker多线程 才能实现高并发?

如果gunicorn加上gevent,使用“gevent模式”就只需要启动几个工作进程,每个进程内接收多个http请求,使用多个协程支持并发?

使用gevent monkey patch方式,实际上多个协程是共享全局变量的。使用 全局变量和ThreadLocal 的时候是不是要注意?不然不同协程如果改动全局变量的值程序就不对了。

不知道我理解的对不对?

廖雪峰

#4 Created at ... [Delete] [Delete and Lock User]

除了一个application是全局变量就没有全局变量了

gevent的patch会把ThreadLocal绑定到eventlet上,放心使用


  • 1

Reply