Skip to content

面试速答(先看这里)

**一句话结论:**选择合适的 分布式系统架构 ,例如 微服务架构 、 SOA架构 等,可以有效地提高系统性能。

60秒标准回答:

设计高性能的分布式系统需要考虑多个因素,简单介绍一些和性能优化、高性能有关的技术方案

选择合适的 分布式系统架构 ,例如 微服务架构 、 SOA架构 等,可以有效地提高系统性能

使用 缓存技术 可以减轻数据库的负载,提高系统性能。而且缓存也分很多,分布式缓存、本地缓存等等,理论上来说离用户越近的缓存效果越好,但是相对来说一致性可能也越差一点

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**设计高性能的分布式系统需要考虑多个因素,简单介绍一些和性能优化、高性能有关的技术方案。
  • **要点2:**使用 缓存技术 可以减轻数据库的负载,提高系统性能。
  • **要点3:**缓存可以提升性能,但是有的时候缓存如果没有做提前预热,也可能会导致一些热点问题和缓存击穿的问题,会导致性能下降,所以需要考虑预热的方案。
  • **要点4:**很多时候,一个系统的性能瓶颈是在数据库层面的,尤其是一些慢sql,会导致应用的整体性能下降,所以,需要做SQL优化才行。
  • **要点5:**压测是一种非常常见的帮我们做性能评估的手段。

**记忆锚点:**但是其实性能也是可用性 → 来说离用户越近的缓存 → 致一些热点问题和缓存 → 一般是用来保障可用性 → 但是相对来说一致性 → 分布式系统架构

关键取舍:

  • 设计高性能的分布式系统需要考虑多个因素,简单介绍一些和性能优化、高性能有关的技术方案。
  • 选择合适的 分布式系统架构 ,例如 微服务架构 、 SOA架构 等,可以有效地提高系统性能。
  • 使用 缓存技术 可以减轻数据库的负载,提高系统性能。

易错提醒:

  • 异步,这个是最容易理解的,通过异步的方案让代码不要同步执行,可以减少等待时间。

加分表达:

  • 缓存可以提升性能,但是有的时候缓存如果没有做提前预热,也可能会导致一些热点问题和缓存击穿的问题,会导致性能下降,所以需要考虑预热的方案。
  • 很多时候,一个系统的性能瓶颈是在数据库层面的,尤其是一些慢sql,会导致应用的整体性能下降,所以,需要做SQL优化才行。

追问准备:

  • 围绕「但是其实性能也是可用性」:底层原理是什么?使用时有哪些边界和常见坑?
  • 围绕「来说离用户越近的缓存」:底层原理是什么?使用时有哪些边界和常见坑?
  • 围绕「致一些热点问题和缓存」:底层原理是什么?使用时有哪些边界和常见坑?
  • 如果线上出现异常,你会如何定位、验证并规避?

典型回答 ​

设计高性能的分布式系统需要考虑多个因素,简单介绍一些和性能优化、高性能有关的技术方案。

1、部署架构

选择合适的分布式系统架构,例如微服务架构、SOA架构等,可以有效地提高系统性能。

📄 ✅分布式和微服务的区别是什么?

打开文档:✅分布式和微服务的区别是什么?

2、缓存

使用缓存技术可以减轻数据库的负载,提高系统性能。而且缓存也分很多,分布式缓存、本地缓存等等,理论上来说离用户越近的缓存效果越好,但是相对来说一致性可能也越差一点。

📄 ✅本地缓存和分布式缓存有什么区别?

打开文档:✅本地缓存和分布式缓存有什么区别?

3、缓存预热

缓存可以提升性能,但是有的时候缓存如果没有做提前预热,也可能会导致一些热点问题和缓存击穿的问题,会导致性能下降,所以需要考虑预热的方案。

📄 ✅如何实现缓存的预热?

打开文档:✅如何实现缓存的预热?

4、异步

异步,这个是最容易理解的,通过异步的方案让代码不要同步执行,可以减少等待时间。不管使用消息队列,还是用线程池,亦或是定时任务,都是比较常见的异步的方案。

5、多线程

这个就很好理解了,多个线程一起干活,要比单个线程执行快的。当然,还可以考虑使用线程池来减少线程的创建和销毁过程的开销。

6、SQL优化

很多时候,一个系统的性能瓶颈是在数据库层面的,尤其是一些慢sql,会导致应用的整体性能下降,所以,需要做SQL优化才行。

📄 ✅如何进行SQL调优?

打开文档:✅如何进行SQL调优?

7、单元化架构

在单元化架构中,分成很多个单元和一个中心。每个单元之间都是相互独立的。一个单元中完整的部署了一整套业务,如电商交易,金融支付,一次用户操作可以在一个单元内部完成,不需要跨单元执行。可以减少网络延迟。

📄 ✅什么是单元化架构?

打开文档:✅什么是单元化架构?

8、压测

压测是一种非常常见的帮我们做性能评估的手段。通过模拟用户请求,帮助我们发现系统的瓶颈以及评估系统的整体水位。

📄 ✅什么是压测,怎么做压测?

打开文档:✅什么是压测,怎么做压测?

9、限流&降级&熔断

这三个东西,一般是用来保障可用性的,但是其实性能也是可用性的一个重要指标,有的时候下游接口很慢,或者垮了,我们如果不做手段的话,会把我们的性能也拖垮的。所以需要考虑这些方案。

📄 ✅限流、降级、熔断有什么区别?

打开文档:✅限流、降级、熔断有什么区别?

10、架构方案

还有很多架构手段,比如分库分表、读写分离、多级缓存、并发消息等等,都是可以提升性能的重要手段。

📄 ✅什么是读写分离?如何实现?

打开文档:✅什么是读写分离?如何实现?

11、网络优化

有的时候,存在一些网络延迟是因为有跨机房,跨地区调用,或者是网络环境不好,这些都是可以优化的,比如做同单元、同机房调用,拉专线等等。

12、扩容

终极方案,扩容,能力不够,机器来凑。

扩展知识 ​

📄 交易主链路提供风控决策要求RT 5ms的技术方案

打开文档:交易主链路提供风控决策要求RT 5ms的技术方案