Simple caching proxy server based on Java with zero dependencies
- Support the HTTP 1.1
- Based on Java Sockets
- Thread pool of handlers
- Non-blocking thread-safe cache queue
- Java 15
Tested with OpenJDK 15
- Gradle 6.3
JMeter test config file: MaltaProxy_JMeter_performance_test.jmx
CSV test data with the request body samples ( ~ 47 bytes per request ) for performance test measurement in JMeter or whatever tool you would use. The format is 1 JSON row per 1 request, 10k rows overall.
Run JMeter test in command line with specifying the log file with results:
jmeter -t MaltaProxy_JMeter_performance_test.jmx -n -l jMeterDetailedResults.csv
To update settings or run JMeter in GUI run jmeter
in command line, open the MaltaProxy_JMeter_performance_test.jmx, change the options and save it.
Due to the performance of Java Sockets, the avg result I got was the ~ 400 requests / sec
Utilization of heap memory was under 25Mb all the time of test (Using the ZGC)
./gradlew build
Simple run:
java -jar /project_root/build/libs/MaltaProxy-0.9.jar SERVER_PORT=8081 THREADS=4
With ZGC and echo to the log file:
java -XX:+UseZGC -Xms128m -Xmx256m -XX:+UseLargePages -XX:ConcGCThreads=4 -jar /project_root/build/libs/MaltaProxy-0.9.jar SERVER_PORT=8081 THREADS=4 > /log_directory/detailed.log 2>&1
If you need any kind of support don't hesitate to let me know 😉
Created by Alex Antukhov