《后端技术面试 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%(高峰刚过来的时候)。
目录
相关文章
|
12天前
|
缓存 前端开发 中间件
[go 面试] 前端请求到后端API的中间件流程解析
[go 面试] 前端请求到后端API的中间件流程解析
|
28天前
|
Kubernetes 持续交付 开发者
探索后端技术的未来:微服务架构与容器化部署的融合
在数字化时代的浪潮中,后端技术正经历着前所未有的变革。本文将深入探讨微服务架构和容器化部署如何共同推动后端技术的发展,提升应用的性能、可扩展性和可靠性。通过分析现代软件开发的需求,我们将揭示这两种技术如何互补,以及它们在未来后端开发中的潜力和挑战。
|
6天前
|
消息中间件 缓存 NoSQL
再也不怕面试官问零拷贝技术
该文章主要讨论了零拷贝技术的相关概念、传统IO读写操作的过程以及零拷贝技术的两种实现方法。
再也不怕面试官问零拷贝技术
|
11天前
|
JavaScript 前端开发 程序员
后端程序员的前端必备-jQuery核心学习笔记
后端程序员的前端必备-jQuery核心学习笔记
37 13
|
14天前
|
Linux 数据安全/隐私保护 Perl
解锁Linux高手秘籍:文件操作+命令解析大揭秘,面试场上让你光芒万丈,技术实力惊艳四座!
【8月更文挑战第5天】Linux作为服务器与嵌入式系统的基石,其文件管理和命令行操作是技术人员必备技能。本文从文件操作和基础命令两大方面,深入浅出地解析Linux核心要义,助你在面试中脱颖而出。首先探索文件系统的树状结构及操作,包括使用`ls -la`浏览文件详情、`touch`创建文件、`rm -r`慎删目录、`cp`与`mv`复制移动文件、以及利用`find`搜索文件。接着掌握命令行技巧,如用`cat`、`more`和`less`查看文件内容;借助`grep`、`sed`与`awk`处理文本;运用`ps`、`top`和`kill`管理进程;并通过`chmod`和`chown`管理文件权限。
53 8
|
14天前
|
监控 Linux 数据安全/隐私保护
Linux大神养成记:掌握这些逆天命令与快捷方式,面试秒变MVP,让你的技术实力燃爆全场!
【8月更文挑战第5天】Linux作为开源领域的核心,熟悉其基本命令对系统管理员和技术人员至关重要。本文精选了面试中常考的Linux命令,覆盖文件管理、文本处理、进程监控及权限调整等关键领域,并介绍了提高效率的快捷方式。通过掌握如`ls -l`、`grep "error"`、`top`、`chmod 755`等实用命令,以及Tab自动补全、历史命令浏览等功能,不仅能显著提升日常工作效能,还能在求职面试时展现出扎实的技术功底。
36 4
|
16天前
|
Kubernetes 监控 开发者
探索后端开发的新境界:微服务架构与容器化技术
在数字化时代的浪潮中,后端开发不断演进,涌现出创新的架构与技术。本文深入探讨了微服务架构和容器化技术如何重塑后端开发,提升系统的可维护性、可扩展性和部署效率。通过实际案例分析,我们揭示了这些技术背后的原理,并提供了实施的最佳实践和面临的挑战,为后端开发者提供一条清晰的技术升级路径。
41 3
|
26天前
|
存储 搜索推荐 数据库
面试题MySQL问题之个性化推荐广告系统中ETL技术与Aerospike的结合使用如何解决
面试题MySQL问题之个性化推荐广告系统中ETL技术与Aerospike的结合使用如何解决
30 2
|
28天前
|
Kubernetes 搜索推荐 开发者
探索后端开发的未来之路:微服务架构与容器化技术
随着云计算技术的不断成熟和普及,后端开发领域正经历着前所未有的变革。本文将深入探讨微服务架构和容器化技术如何重塑后端开发的面貌,提升系统的可扩展性、灵活性和可靠性。通过分析现代后端系统面临的挑战,我们将展示微服务和容器化如何提供解决方案,并预测这些技术如何塑造后端开发的未来发展。
46 3

热门文章

最新文章