Una de las características más esperadas que introdujo la versíon 1.4 de Java fue un nuevo sistema de IO adaptado a los sistemas modernos. Esto permitía adaptar el formato de entrada/salida a las nuevas características de las CPUs -principalmente MultiThread- haciendo que las peticiones fuesen "no bloqueantes" y por lo tanto "sean manejadas por threads". No voy a entrar en mucho detalle sobre cuáles son las diferencias -ya que pienso que es un tema de programación- pero sí que voy a explicar por qué nos aplica en términos de sistemas:
- No permite escalar más y utilizar mejor los threads de las CPUs. De esta forma, tendremos menos cambios de contexto y por lo tanto mejor rendimeinto
- Uso de Socket Asíncronos. De esta forma, seremos capaces de soportar más peticiones concurrentes en nuestros servidores de aplicaciones.
- Podemos usar Resource Control. De esta forma, los límites y uso de recursos están mejor controlados en el sistema.
Configuración de Apache Tomcat 6.x
Para activar el funcionamiento NIO en Tomcat 6, siemplemente editaremos el archivo de configuración <CATALINA_HOME/conf/server.xml> y modificaremos el valor de la propiedad:
protocol="HTTP/1.1"por
protocol="org.apache.coyote.http11.Http11NioProtocol"Por ejemplo, podemos añadir un nuevo "connector" en el puerto 8585 que use el formano NIO de la siguiente forma:
<!-- NIO Connector With Compression -->Conclusiones
<Connector
maxThreads="256"
enableLookups="false"
protocol="org.apache.coyote.http11.Http11NioProtocol"
keepAliveTimeout="5000"
maxKeepAliveRequests="1000"
port="8585"
connectionTimeout="20000"
compression="on"
bufferSize="8192"
redirectPort="8443"
URIEncoding="UTF-8"
/>
Como hemos visto, cambiar al nuevo sistema de IO (NIO) que nos proporciona Java a partir de la versión 1.4.2 es realmente sencillo. En las próximas entregas veremos si -como dicen en Sun- es un sistema revolucionario y proporciona un rendimiento superior en sistemas con mucha carga.
Referencias
No hay comentarios:
Publicar un comentario