spring-boot - Springboot 微服务响应慢
问题描述
我的项目是在 Springboot 中使用 eureka、zuul、ribbon 开发的,它部署在 GCP kubernetes 集群上。如果我尝试通过邮递员休息电话它工作正常但需要很长时间(1s-2s)才能得到响应。我试图对服务器进行负载测试。下面显示了该负载测试的结果。但是考虑到这个请求没有连接到数据库,它只是命中并返回硬编码值。
Running 30s test @ https://xxx.coo:443/api/v1/lo/test/test1
100 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.23s 162.00ms 1.42s 45.45%
Req/Sec 0.00 0.00 0.00 100.00%
333 requests in 30.07s, 168.96KB read
Socket errors: connect 0, read 0, write 0, timeout 300
Non-2xx or 3xx responses: 200
Requests/sec: 11.08
Transfer/sec: 5.62KB
为什么请求/秒这么低?我应该如何配置服务器以处理更多负载?
这是我的配置。考虑发现服务器、zuul api 和其他客户端服务器作为不同的 springboot 项目运行。
发现服务器 application.properties 文件
spring:
application:
name: eureka-server
server:
port: 8070
eureka:
environment: production
client:
register-with-eureka: false
fetch-registry: false
server:
waitTimeInMsWhenSyncEmpty: 0
service-url:
defaultZone : ${DIS_SERVER}
Zuul 网关 application.properties 文件
zuul:
prefix: /api/v1
routes:
g1-server:
path: /g1/**
serviceId: G1-SERVER
g2-server:
path: /g2/**
serviceId: G2-SERVER
spring:
application:
name: zuul-server
server:
port: 5000
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone : ${DIS_SERVER}
spring:
cloud:
inetutils:
ignored-interfaces:
- eth0
- eth1
- eth2
- eth3
- lo
- veth.*
ribbon:
ConnectTimeout: 200000
ReadTimeout: 200000
我已经使用 restTemplate 来调用其他微服务。以下代码显示了我如何使用 restTemplate 调用其他微服务。
String g1Url = "http://g1-server/ud/{id}";
String g1Response = restTemplate.getForObject(g1Url, String.class, id);
解决方案
推荐阅读
- ios - 如何使纵向模式的视频适合方形单元格?
- r - 使用 lag 和 group_by 时的列长度错误
- android - git issue Android studio - 致命:不是 git 存储库(或任何父目录):.git
- mysql - 在 MySQL 中声明变量语法无效?
- php - 创建 Session 对象时传递两个用户定义的键值对作为参数。我想在 checkout.session.completed 事件中收到它
- javascript - 根据复选框显示和隐藏行
- xml - 如何在 XSLT2 中使用字母和数字按自然顺序对组进行排序?
- node.js - 仅在第一次加载 Angular 网页时使用 Safari 接收 401 状态
- python - 创建 aws 子网标签
- r - 加速 R 的并行 SQL 查询?