600.000 gleichzeitige Verbindungen mit Clojure und HTTP Kit

Eric Herrmann

Niemand braucht Node.js und die JVM kann alles: Das wird von Leuten wie Feng Shen immer wieder bewiesen. Der junge Pekinger baute mit seinem Clojure-basierten Webserver HTTP Kit und einer Java Virtual Machine der Version 1.7.0_04 auf seinem Privat-PC 600.000 gleichzeitige WebSocket-Verbindungen auf.

Dazu hat er jetzt einen Benchmark veröffentlicht, der sich dank der Veröffentlichung auf GitHub überall (unter Berücksichtigung der Testbedingungen) reproduzieren lassen soll.

Teile des Servers sind in Java geschrieben. Der Autor schreibt dazu in Ycombinator, dass er insbesondere von Javas New I/O überzeugt war:

Java part: 1. Java NIO’s performance is amazing: event driven r/w bytes 2. maintain state machine when parsing HTTP from bytes buffer need many local variables, I get used to do it in a C style code.

Clojure: I like this language. It’s brilliant. So I write a fast http server/client for it. Clojure is also write in JAVA, great interoperation

HTTP Kit soll dabei durch einen kleinen Footprint brillieren, und will gar keine Konkurrenz etwa zu Netty bieten. Durch seinen minimalistischen Funktionsumfang und die starke Beschränkung auf HTTP-bezogene Anwendungen könnte man dies auch gar nicht erwägen. Es konzentriert sich vielmehr auf massenweise gleichzeitige Websocket-Verbindungen, die asynchron miteinander kommunizieren.

Den Code hat Feng Shen auf GitHub veröffentlicht, wo er Fehlerberichte entgegennimmt und HTTP Kit unter Apache Lizenz v2 verbreitet. Dokumentation und weitere Infos gibt es auf der Projekt-Homepage.

Geschrieben von
Eric Herrmann
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.