秒杀系统之系统优化

简介: 秒杀系统之系统优化

3 系统优化

对于一个软件系统,提高性能可以有很多种手段,如提升硬件水平、调优JVM 性能,这里主要关注代码层面的性能优化——

  • 减少序列化:减少 Java 中的序列化操作可以很好的提升系统性能。序列化大部分是在 RPC 阶段发生,因此应该尽量减少 RPC调用,一种可行的方案是将多个关联性较强的应用进行 “合并部署”,从而减少不同应用之间的 RPC 调用(微服务设计规范)
  • 直接输出流数据:只要涉及字符串的I/O操作,无论是磁盘 I/O 还是网络 I/O,都比较耗费 CPU资源,因为字符需要转换成字节,而这个转换又必须查表编码。所以对于常用数据,比如静态字符串,推荐提前编码成字节并缓存,具体到代码层面就是通过 OutputStream() 类函数从而减少数据的编码转换;另外,热点方法toString()不要直接调用ReflectionToString实现,推荐直接硬编码,并且只打印DO的基础要素和核心要素
  • 裁剪日志异常堆栈:无论是外部系统异常还是应用本身异常,都会有堆栈打出,超大流量下,频繁的输出完整堆栈,只会加剧系统当前负载。可以通过日志配置文件控制异常堆栈输出的深度
  • 去组件框架:极致优化要求下,可以去掉一些组件框架,比如去掉传统的 MVC 框架,直接使用 Servlet 处理请求。这样可以绕过一大堆复杂且用处不大的处理逻辑,节省毫秒级的时间,当然,需要合理评估你对框架的依赖程度


总结一下


性能优化需要一个基准值,所以系统还需要做好应用基线,比如性能基线(何时性能突然下降)、成本基线(去年大促用了多少机器)、链路基线(核心流程发生了哪些变化),通过基线持续关注系统性能,促使系统在代码层面持续提升编码质量、业务层面及时下掉不合理调用、架构层面不断优化改进。

相关文章
|
2月前
|
人工智能 IDE 编译器
如何用给各种IDE配置R语言环境
R语言虽无Python式虚拟环境,但通过Conda管理或多项目隔离方案(如自定义.libPaths或使用renv工具),可实现包依赖独立、版本锁定与环境复现,支持跨平台迁移与协作,真正做到“一次配置,永久可用”。推荐renv+RStudio组合,高效管理项目环境。
|
6月前
|
存储 人工智能 云计算
挑战杯专属支持资源|阿里云-AI大模型算力及实验资源丨云工开物
阿里云发起的“云工开物”高校支持计划,助力AI时代人才培养与科研创新。为“挑战杯”参赛选手提供专属算力资源、AI模型平台及学习训练资源,包括300元免费算力券、百炼大模型服务、PAI-ArtLab设计平台等,帮助学生快速掌握AI技能并构建优秀作品,推动产学研融合发展。访问链接领取资源:https://university.aliyun.com/action/tiaozhanbei。
|
2月前
|
机器学习/深度学习 自然语言处理 监控
13_命名实体识别:精准提取文本中的关键信息
在当今信息爆炸的时代,人们每天需要处理海量文本数据。如何从这些非结构化文本中高效地提取关键信息,成为了自然语言处理(NLP)领域的核心挑战之一。命名实体识别(Named Entity Recognition,简称NER)技术正是解决这一问题的关键技术,它能够自动识别并分类文本中的人名、地名、组织机构名、时间、日期、金额等具有特定含义的实体。
|
Java 测试技术 API
拼多多 API 接口申请通过后如何进行测试?
拼多多 API 接口申请通过后,需按以下步骤测试:1. 仔细研读接口文档;2. 搭建测试环境,准备开发工具和模拟请求工具;3. 编写测试代码或使用测试工具;4. 设计测试用例,包括正常、异常和边界情况;5. 验证测试结果,检查返回值和错误处理;6. 记录和分析测试结果,确保 API 的稳定性和性能。
|
11月前
|
JSON 数据挖掘 API
京东app商品详情API接口系列(京东 API)
本文介绍了使用 Python 调用京东商品详情 API 的方法。前期需安装 `requests` 库处理 HTTP 请求,导入 `json` 库解析 JSON 数据。接口通过商品 ID 获取详细信息,如价格、图片、评价等。示例代码展示了如何构建请求并处理响应数据。应用场景包括电商开发、市场调研和数据分析等,帮助提升用户体验、优化推荐系统及制定市场策略。
|
Kubernetes 容器 Perl
k8s部署seata 报错 没有提供足够的身份验证信息 [ http-nio-7091-exec-2] [ty.JwtAuthenticationEntryPoint] [ commence] [] : Responding with unauthorized error. Message - Full authentication is required to access this resource
Kubernetes pod 在16:12时出现两次错误,错误信息显示需要完整认证才能访问资源。尽管有此错误,但页面可正常访问。附有yaml配置文件的图片。
967 2
|
JavaScript 前端开发 API
深入探索挖掘vue3 生命周期
【10月更文挑战第10天】
272 0
|
机器学习/深度学习 人工智能 算法
【深度学习】python之人工智能应用篇——图像生成技术(二)
图像生成是计算机视觉和计算机图形学领域的一个重要研究方向,它指的是通过计算机算法和技术生成或合成图像的过程。随着深度学习、生成模型等技术的发展,图像生成领域取得了显著的进步,并在多个应用场景中发挥着重要作用。
628 9
|
机器学习/深度学习
YOLOv8改进 | 检测头篇 | CLLAHead分布焦点检测头(全网独创首发)
YOLOv8改进 | 检测头篇 | CLLAHead分布焦点检测头(全网独创首发)
402 0
|
存储 机器学习/深度学习 人工智能
香橙派——雕琢智能时代的瑰宝为AI而生(一)
香橙派——雕琢智能时代的瑰宝为AI而生(一)
483 0