Hautement HTTP simultanés avec Netty et NIO

Je suis en train de travailler à travers les exemple Netty HTTP code Client afin de faire une requête http à l'intérieur d'un concurrent, fileté de l'environnement.

Cependant, mon système se casse complètement (avec un tas d'exceptions) à assez faible débit.

Dans près de pseudo-code:

ClientBootstrap bootstrap = new ClientBootstrap(new NioClientSocketChannelFactory()) 
bootstrap.setPipelineFactory(new HttpClientPipelineFactory());

ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));
Channel channel = future.awaitUninterruptibly().getChannel();

HttpRequest request = new DefaultHttpRequest();
channel.write(request);

Dans l'exemple, pour faire une demande, je créer un ClientBootstrap, et à partir de là (à travers quelques cerceaux) un Canal d'écrire HTTPRequest.

Tout cela fonctionne et il est bon.

Cependant, dans le même temps une situation, à chaque demande de passer par la même épreuve? Je pense que c'est ce qui est en train de briser des choses pour moi en ce moment. Devrais-je être à la réutilisation de la connexion ou de structuration de mon client d'une manière entièrement différente?

Aussi: je suis en train de faire cela en Clojure, si cela fait toute la différence.

peut-être que vous devez utiliser github.com/ztellman/aleph ?
avez-vous une expérience avec aleph? J'ai essayé une autre async clojure client http, mais il ne fonctionne pas sur les niveaux de débit j'ai besoin de la soutenir.

OriginalL'auteur Toby Hede | 2011-03-28