《后端技术面试 38 讲》学习笔记 Day 10

简介: 《后端技术面试 38 讲》学习笔记 Day 10

《后端技术面试 38 讲》学习笔记 Day 10

27 | 微服务架构:微服务究竟是灵丹还是毒药?


Dubbo 应该说是借鉴了此前更早的 SOA 架构方案,即面向服务的体系架构。

Dubbo 在借鉴 SOA 架构的基础上进行了优化,抛弃了 SOA 一些不必要的规范约束,使用二进制协议进行服务注册与调用,执行效率和使用的简洁性都得到了极大提升。

Dubbo 架构和 SOA 架构一样,最核心的组件也是 3 个,分别是服务提供者、服务消费者和服务注册中心。

阿里微服务重构成功的另外一个重要因素是,即使在单体时代,war 包内的模块关系也还是比较清晰的。所以在重构微服务的时候,只需要对这些模块进行较小的改动,进行微服务部署就可以了。

微服务本身和业务强相关,如果业务关系没梳理好,模块设计不清晰,使用微服务架构很可能得不偿失,带来各种挫折。

心得体会

  1. 小孩是耍不好大刀的,微服务这把牛刀在庖丁手里才是神器。清晰的了解牛的身体构造,就像工程师对工程业务的理解,只有烂熟于心,下刀才不会砍在骨头上。

工作体验

  1. 在单体工程中,子工程(模块)的划分,一个工程里包的划分。紧贴业务调理,不混论,后续拆分微服务才会顺理成章。另外,有术上的技巧,就是通过接口编程,抽象的隔离,不要进行实现上的依赖,对工程脉络也很有帮助。

28 | 高性能架构:除了代码,你还可以在哪些地方优化性能?

原文摘抄

系统性能指标主要有响应时间、并发数、吞吐量和性能计数器。

性能计数器,指的是服务器或者操作系统性能的一些指标数据,包括系统负载 System Load、对象和线程数、内存使用、CPU 使用、磁盘和网络 I/O 使用等指标,这些指标是系统监控的重要参数,反映系统负载和处理能力的一些关键指标,通常这些指标和性能是强相关的。这些指标很高,成为瓶颈,通常也预示着性能可能会出现问题。

具体说来,整个测试过程又可细分为性能测试、负载测试、压力测试三个阶段。

数据中心优化:大型的互联网应用基本都采用多数据中心方案,在全球各个主要区域都部署自己的数据中心,就近为区域用户提供服务,加快响应速度。

硬件优化

操作系统优化:经过分析发现,在某些版本的 Linux 中,transparent huge page 这个参数是默认打开的,导致系统占用 CPU 过高。

虚拟机优化

基础组件优化

架构优化:缓存、消息队列、集群

代码优化

心得体会

  1. 这是从架构师角度去看的架构优化,也是公司级的架构师。从数据中心一直到代码层次。
  2. 性能优化真的知识面又广又深,工作四五年的我也只能是在某些方向略知皮毛。

工作体验

  1. 先说说听说的,在一个数据中心,服务器是不是在一个机架、传输的是不是万兆网卡都很影响大数据这样的集群跑批的性能。
  2. jvm的参数调整可能是最贴近java工程师的,主要在于调整JVM内存的大小,以及GC算法的调整。工作目前来看,给不要太少的JVM,GC调整为G1垃圾回收器,正常压数个小时的压力测试,也不会出现FGC,已经很不错了。
  3. 然后是各种组件的调参,需要对我们用到的组件、中间件有足够的了解。例如tomcat连接数、线程数;redis的连接数、超时时间、空闲连接数等;feign的连接数,超时时间等配置都会影响性能。
  4. 然后是操作系统的调参,目前生产用的基本上都是redhat,也在其他公司看过centos,像ubuntu还未在生产上遇到过。操作系统的参数很多,没有听过那个参数我们可能根本没有去查看、调整他的思路。例如哪个参数限制socket连接数量,又哪个参数设置tcp自动断开的时间等等,都是需要学习+经验+遭遇才会慢慢习得的。不能急于求成,慢慢来吧。
  5. 另外,想起来以前其他吸引人的标题文章,例如“榨干服务器的每一分性能”,其实这个是一个比较可笑的做法。我们往往在机器的各种资源到达80%就进行轻微的告警,通知系统负责人,而一旦到90%,并保持一段时间,就生成一个严重的告警了。
    服务器长期处于一个高压情况是一个危险的做法,进程存在被操作系统kill掉的风险,或者操作系统本身宕机。
    这个指标指导我们在压测时,性能调优时,比较优秀的做法是将性能约束在75%-80%,可以偶尔超过85%(高峰刚过来的时候)。
目录
相关文章
|
4月前
|
Java 测试技术 微服务
最新技术栈下 Java 面试高频技术点实操指南详解
本指南结合最新Java技术趋势,涵盖微服务(Spring Cloud Alibaba)、响应式编程(Spring WebFlux)、容器化部署(Docker+Kubernetes)、函数式编程、性能优化及测试等核心领域。通过具体实现步骤与示例代码,深入讲解服务注册发现、配置中心、熔断限流、响应式数据库访问、JVM调优等内容。适合备战Java面试,提升实操能力,助力技术进阶。资源链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)
180 25
|
3月前
|
缓存 Java API
Java 面试实操指南与最新技术结合的实战攻略
本指南涵盖Java 17+新特性、Spring Boot 3微服务、响应式编程、容器化部署与数据缓存实操,结合代码案例解析高频面试技术点,助你掌握最新Java技术栈,提升实战能力,轻松应对Java中高级岗位面试。
348 0
|
6月前
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
414 70
|
4月前
|
Cloud Native Java 程序员
【2025 最新版互联网一线大厂 Java 程序员面试 + 学习指南】覆盖全面面试知识点、实用面试技巧及前沿技术实操内容
本内容涵盖互联网大厂主流技术栈的最新实操指南,包括微服务架构(Spring Cloud Alibaba Nacos、OpenFeign、Spring Cloud Gateway)、容器化与Kubernetes、云原生技术(Istio、Prometheus+Grafana)、高性能开发(Reactor响应式编程、CompletableFuture异步编程)及数据持久化(Redis分布式锁、ShardingSphere分库分表)。通过详细代码示例和操作步骤,帮助开发者掌握核心技术,适用于本地环境搭建与模块功能实践。适合Java程序员学习和面试准备,附带资源链接供深入研究。
121 5
|
11月前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
326 1
|
6月前
|
人工智能 自然语言处理 算法
通义灵码助力技术求职:如何成为笔试面试冲刺的“超级助手”
在技术岗位竞争日益激烈的当下,求职季的备战已不仅是知识储备的较量,更是效率与实战能力的比拼。面对海量面试题、复杂算法挑战及快速迭代的技术框架,开发者亟需高效工具辅助突破瓶颈。阿里云推出的智能编码工具通义灵码,凭借其代码生成、优化及智能问答等核心能力,正成为开发者备战求职季的“超级助手”。
|
9月前
|
人工智能 缓存 Ubuntu
AI+树莓派=阿里P8技术专家。模拟面试、学技术真的太香了 | 手把手教学
本课程由阿里P8技术专家分享,介绍如何使用树莓派和阿里云服务构建AI面试助手。通过模拟面试场景,讲解了Java中`==`与`equals`的区别,并演示了从硬件搭建、语音识别、AI Agent配置到代码实现的完整流程。项目利用树莓派作为核心,结合阿里云的实时语音识别、AI Agent和文字转语音服务,实现了一个能够回答面试问题的智能玩偶。课程展示了AI应用的简易构建过程,适合初学者学习和实践。
315 22
|
10月前
|
缓存 负载均衡 算法
深入理解后端服务的负载均衡技术
在现代网络服务架构中,高效的负载均衡策略对于保证应用性能和可靠性至关重要。本文将深入探讨后端服务中的负载均衡技术,包括其重要性、常见算法以及如何实现高效均衡。通过分析不同的负载均衡方法,我们旨在为开发者提供实用的指导,帮助他们优化自己的系统架构。
|
11月前
|
监控 API 微服务
后端技术演进:从单体架构到微服务的转变
随着互联网应用的快速增长和用户需求的不断演化,传统单体架构已难以满足现代软件开发的需求。本文深入探讨了后端技术在面对复杂系统挑战时的演进路径,重点分析了从单体架构向微服务架构转变的过程、原因及优势。通过对比分析,揭示了微服务架构如何提高系统的可扩展性、灵活性和维护效率,同时指出了实施微服务时面临的挑战和最佳实践。
226 7
|
11月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
1266 2