Cómo ampliar el límite superior de la capacidad concurrente del número máximo de conexiones en resina

Método 1:
1. Busque el archivo de clase de código de bytes que desea modificar: resin.jar->com/caucho/server/port/Port.class
2. Busque el código fuente de la misma versión que la resina que utiliza (p. ej.: resin- pro -3.1.3)
3. Abra el archivo de código de bytes Port.class y verifique la versión de JDK utilizada. Los bytes 7 a 8 son 0x0031, correspondientes a Java 5 (JDK1.5) // 3.1
Enlace de aprendizaje de referencia: https:// www.cnblogs.com/yougewe/p/9710142.html
//3.2 Otra forma de ver el número de versión: descompile el archivo de clase javap -verbose xxx.class "versión principal" corresponde al número de versión decimal
4. Busque el código " private int _connectionMax = 512;" en el archivo com/caucho/server/port/Port.java y modifique 512 a 10240.
5. Use la versión de JDK correspondiente para compilar com/caucho/server/port/Port.java para obtener el nuevo Port.class
6. Actualice el nuevo Port.class a com/caucho/server/port/Port en resin.jar paquete .class file
//6.1 jar uf resin.jar com/caucho/server/port/Port.class
//6.2 Enlace de aprendizaje de referencia: https://blog.csdn.net/huangbaokang/article/details/99971342
7. Cambia el valor de <thread-max>1024</thread-max> en resin/conf/resin.conf a 10240.
8. Reinicia resin para que surta efecto

Método 2 :
es doloroso obtener un JDK1.5 antiguo y encontrar el código fuente de la resina. También podríamos encontrar el 512 en el archivo de código de bytes y cambiarlo a 10240 (solo hay un 512 en este archivo, por lo que nuestro debe ser factible, si hay demasiados, será más difícil determinar cuál)
1. Descompilar el archivo de clase javap -verbose Port .class 2. Buscar "_connectionMax" para encontrar el siguiente párrafo         30: aload_0         31: sipush 512         34: putfield #13 // Field _connectionMax:I         37: aload_0 3. A través del aprendizaje, sabemos que 3.1 aload_0 corresponde al bytecode 0x2a 3.2 sipush corresponde al bytecode 0x11 3.3 Decimal 512 convertido a hexadecimal es 0x0200 3.4 El bytecode correspondiente a putfield es 0xb5 3.5 #13 El código de bytes correspondiente es 0x000d 3.5 aload_0 El código de bytes correspondiente es 0x2a 4. Busque " 2a 11 02 00 b5 00 0d 2a " en el Port.classarchivo de código de bytes 0200












"Cambiar a " 2800 "
//4.1 2800 es el hexadecimal del número decimal 10240
//4.2 Hay dos resultados de búsqueda de código de bytes que deben modificarse [El código de bytes en la parte Código se repetirá una vez, la razón específica es que yo no se puede entender, por favor enséñeme qué significa el código de bytes en la parte Código de este párrafo, ¡gracias!]
5. Pasos 6 a 8 en el mismo método

参考学习链接:
1. https://www.cnblogs.com/yougewe/p/9710142.html
2. https://zhuanlan.zhihu.com/p/64411980
3. https://blog.csdn.net/ huangbaokang/article/details/99971342
4. http://www.blogjava.net/jelver/articles/183345.html
5. http://2hei.net/resin_http_pression_test.html

Supongo que te gusta

Origin blog.csdn.net/zhongjuelong/article/details/111387193
Recomendado
Clasificación