首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确制作高负载Java应用程序?

问如何正确制作高负载Java应用程序?
EN

Stack Overflow用户
提问于 2020-03-18 07:56:07
回答 1查看 316关注 0票数 0

我正在做web项目,我使用了spring,mysql,hibernate和docker。设计一个关系型数据库是没有问题的,它是可行的。

如何验证数据库的设计是正确的?

如何预见项目的高负荷?

我知道gatling负载测试的事。我只有一个生产环境。如何通过这样的测试来管理生产环境?

hibernate是怎么回事,是不是有些数据库超载了?

你能给我一些关于高负载生产方法的书的建议吗?

EN

回答 1

Stack Overflow用户

发布于 2020-03-18 09:13:21

1.我们无法预见项目的高负载。我们可以监控我们的系统并根据历史负载预测未来的负载。

metrics data

  • Prometheus: Spring Boot Actuator:生成metrics metrics

  • Grafana:以收集应用程序的,以可视化您的度量数据。

为了防止系统因高负载或DDOS而崩溃,您可以使用Guava RateLimiter。

2.对于数据库,您需要监控慢查询,以了解您的DB设计是否正确。如果查询速度很慢,可以使用explain关键字检查查询是否正确使用了索引。

启用对general_log表的查询日志记录:

代码语言:javascript
复制
mysql> SET GLOBAL general_log = 'ON';
mysql> SET global log_output = 'table';

然后查询表中的慢查询:

代码语言:javascript
复制
SELECT * FROM mysql.general_log ORDER BY event_time DESC LIMIT 10

3.要让你的应用程序高负载,有两个选择:

  • 大多数时候,瓶颈是在数据库中,你可以将你的数据库分成多个数据库,例如用户相关的表将在一个单独的数据库中,订单相关的表将在另一个数据库中(https://microservices.io/patterns/data/database-per-service.html).
  • For一个非常高负载的系统,你应该使用 Kubernetes Engine或Amazon EKS在云上架构你的系统。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60731790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档