【发布时间】:2019-05-11 00:18:50
【问题描述】:
我在 Nginx 后面有一个 4 Vertx 模拟 API。在对 250 个用户执行 jmeter 负载测试时,1 个或更多 vertx 节点的结果相同。 例如:- 使用 1 个 Vertx 节点(0 秒延迟)- 995 tps 并且使用所有 4 个节点,结果是相同的。如何通过增加后端来提高 tps? p.s 当我放置一个计时器来创建后端延迟时,tps 显着下降 (950--> 180) 。这是因为我的代码中的错误吗?
服务器 - Linux 64,具有 250 个用户/125 个加速的 Jmeter 实例 3.0
//---Vertx mock service ---------------------------
public class App extends AbstractVerticle {
private static Logger LOGGER = Logger.getLogger("InfoLogging");
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
PropertyConfigurator.configure(System.getProperty("user.dir")+"/log4j.properties");
HttpServer httpServer = vertx.createHttpServer();
Router router = Router.router(vertx);
Route ELKPaymentResponse = router
.post("/:param/amount")
.produces("application/json")
.handler(routingContext -> {
routingContext.request().bodyHandler(bodyHandler -> {
HttpServerResponse response = routingContext.response();
// response.setChunked(true);
String JsonResponse ="{
//Mock service here
}";
vertx.setTimer(TimeUnit.SECONDS.toMillis(1), l -> {
JsonObject json = new JsonObject(JsonResponse);
response.putHeader("Content-Type", "application/json; charset=UTF8")
.setStatusCode(200)
.end(Json.encodePrettily(json));
});
});
});
【问题讨论】:
-
上游测试{服务器127.0.0.1:8090;服务器 127.0.0.1:8091; # 服务器 127.0.0.1:8092; # 服务器 127.0.0.1:8093; } 服务器 { 听 8290; server_name 本地主机;位置 / { proxy_pass myproject; } }