nginx clojure module v0.2.0-Let MySQL JDBC Driver & Apache HttpClient Fly With Epoll/Kqueue on Nginx
nginx-forum at nginx.us
Sat Apr 26 04:11:11 UTC 2014
nginx-clojure v0.2.0 includes new features:
(1) non-blocking socket based on coroutine and compatible with largely
existing java library such as apache http client, mysql jdbc drivers
(2) asynchronous callback API of socket for some advanced usage
(3) run initialization clojure code when nginx worker starting
(4) provide a build-in tool to make setting of coroutine based socket
(5) support Linux 32bit x86 now
(6) publish [binary release compiled with lastes stable nginx
1.6.0](https://sourceforge.net/projects/nginx-clojure/files/) about Linux
x64, Linux i586, Win32 & MacOS X.
If the http service should do some slow I/O operations such as access
external http service, database, etc. nginx worker will be blocked by those
operations and the new user request even static file request will be
blocked. It really sucks！ Before v0.2.0 the only choice is using thread pool
but now we have three choice Now:
(1) Coroutine based Socket -- Let MySQL JDBC Driver & Apache HttpClient Fly
With Epoll/Kqueue on Nginx
(a) Java Socket API Compatible and work well with largely existing java
library such as apache http client, mysql jdbc drivers etc.
(b) non-blocking, cheap, fast and let one java main thread be able to
handle thousands of connections.
(c) Your old code **_need not be changed_** and those plain and old java
socket based code such as Apache Http Client, MySQL mysql jdbc drivers etc.
will be on the fly with epoll/kqueue on Linux/BSD!
(d) You must do some steps to get the right class waving configuration
file and set it in the nginx conf file.
(2) Asynchronous Socket
More details here: https://github.com/nginx-clojure/nginx-clojure
(3) Thread Pool
More details here : https://github.com/nginx-clojure/nginx-clojure
More details please visit nginx-clojure github site :
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,249650,249650#msg-249650
More information about the nginx