Nginx-Clojure Module Release 0.1.0--Let Nginx embrace Clojure & Java
nginx-forum at nginx.us
Wed Jan 15 08:45:13 UTC 2014
> Sorry, but are you saying that your suggested usage for concurrency is
> multiprocessing ?
> Multiprocessing is completely alien in the jvm (the vm is not even
> fork-friendly) and that would mean the nginx worker completly give
> to the jvm and this is something bad as the jvm is a blocking vm.
> The jvm world is thread-centric (and trust me, i needed to deal with
> dozens of different threading implementations for uWSGI and the jvm is
> best one) so i am quite doubtful saying "multiprocess by default"
> would be
> a successfull approach (well the amount of memory per-app will be
> Roberto De Ioris
> nginx mailing list
> nginx at nginx.org
One Nginx worker , typically single thread, can handle thousands of request
by non-blocking events. So we need less Nginx workers than the threads in a
typical java server.
Java thread is not lightweight and uses more memory than general thread.
I don't think JVM is blocking vm. In my eye JVM just a executor of java
class. By JNI we can any no-blocking things just as a general Nginx modula
written by c.
With the default mode in Nginx-Clojure 0.1.0 there 's one jvm instance embed
per Nginx worker. The will be some no-blocking api provided by the next
version of Nginx-Clojure.
With Nginx-Clojure 0.1.0 you can also use one JVM instance with a thread
pool if you like, just set nginx worker processes = 1 and set jvm_workers =
the number of java threads you will use.
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,246437,246469#msg-246469
More information about the nginx