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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 《后端技术面试 38 讲》学习笔记 Day 08

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

23 | 异步架构:如何避免互相依赖的系统间耦合?

主要手段就是使用消息队列的异步架构,有时候也被称为事件驱动架构。

消息队列异步架构的主要角色包括消息生产者、消息队列和消息消费者。

根据消息消费方式又分为点对点模式和发布订阅模式两种。

在点对点模式中,多个消息生产者向消息队列发送消息,多个消息消费者消费消息,每个消息只会被一个消息消费者消费。

在发布订阅模式中,开发者可以在消息队列中设置主题,消息生产者的消息按照主题进行发送,多个消息消费者可以订阅同一个主题,每个消费者都可以收到这个主题的消息拷贝,然后按照自己的业务逻辑分别进行处理计算。

好处:改善写操作请求的响应时间、更容易进行伸缩、削峰填谷、隔离失败、降低耦合

心得体会

  1. 异步发送后,生产者直接返回了,提高效率。
  2. 对于失败重试的情况,似乎是消费者更需要关心的一件事,对于生产者默认就是发送成功,一定能被成功消费,只是时间问题,当然遇到极端情况,多次重试还是失败的。不知道这样的理解对吗?

工作体验

  1. 工作中早年接触过IBM MQ、RocketMQ、ActiveMQ,作为一个初级开发者来看的确没有什么大差别,唯一就是IBM MQ部署,创建队列都很麻烦,甚至不能代码创建。
  2. MQ是有多种协议的,也会影响性能。kafka这样的,作为日志发送的场景似乎都是很好的选型,至少多家都是这样的。

24 | 负载均衡架构:如何用10行代码实现一个负载均衡服务?

原文摘抄

HTTP 重定向负载均衡在实践中很少使用。

大型网互联网应用需要两次负载均衡,一次通过 DNS 负载均衡,用户请求访问数据中心负载均衡服务器集群的某台机器,然后这台负载均衡服务器再进行一次负载均衡,将用户请求分发到应用服务器集群的某台服务器上。

反向代理服务器是工作在 HTTP 协议层之上的,所以它代理的也是 HTTP 的请求和响应。作为互联网应用层的一个协议,HTTP 协议相对说来比较重,效率比较低,所以反向代理负载均衡通常用在小规模的互联网系统上,只有几台或者十几台服务器的规模。

IP 负载均衡不需要在 HTTP 协议层工作,可以在操作系统内核直接修改 IP 数据包的地址,因此,效率比应用层的反向代理负载均衡高得多。但是它依然有一个缺陷,不管是请求还是响应的数据包,都要通过负载均衡服务器进行 IP 地址转换,才能够正确地把请求数据分发到应用服务器,或者正确地将响应数据包发送到用户端程序。请求的数据通常比较小,因此负载均衡服务器会成为响应数据的流量瓶颈。

数据链路层负载均衡可以解决响应数据量大而导致的负载均衡服务器输出带宽不足的问题。也就是说,负载均衡服务器并不修改数据包的 IP 地址,而是修改数据链路层里的网卡 mac 地址,在数据链路层实现负载均衡。因为 IP 地址没有修改过,所以这个响应会直接到达用户的浏览器,而不会再经过负载均衡服务器。

Linux 上实现 IP 负载均衡和链路层负载均衡的技术是 LVS,目前 LVS 的功能已经集成到 Linux 中了,通过 Linux 可以直接配置实现这两种负载均衡。

评论区摘抄:

专栏好像没有提到硬件负载均衡 F5 或者 A10,虽然贵,但是性能强大,支持百万以上并发,并且还具备防火墙、防 DDoS 攻击等安全功能。 实现了 IP 负载均衡和链路层负载均衡的 LVS 是 4 层负载均衡,与协议无关,性能是十万级,传说可达 80 万/秒; 应用层负载均衡,Nginx 是 7 层负载均衡,可以支持 HTTP、E-mail 协议,性能大概是 5 万/秒。 大概一般的互联网平台,如果用户的地理分布比较广泛,那么先上 DNS 的地理级别负载均衡(域名商提供,一般免费); 如果流量正的很大,或者土豪,那么就在当地机房上集群级别的硬件负载均衡 F5,在我的印象里面,似乎维基百科也没有使用硬件负载均衡; 进入当地机房以后,可以再使用机器级别的负载均衡 Nginx 将用户请求发送给及群众的某台机器。 也可以采用级联的方式,一级用 F5,二级用 LVS,三级用 Nginx。我觉的一般人用不到这个方案。 参考《从零开始学架构》中有关高性能负载均衡的章节。

  1. 硬件负载均衡:支持百万以上
  2. 软件负载均衡:
    2.1 HTTP重定向:访问HTTP重定向负载均衡服务器获得新的地址后访问
    2.2 DNS负载均衡:访问DNS或者地址后访问
    2.3 反向代理:反向代理有资源则返回,无资源则请求下游服务器。nginx,通过将请求分发来实现。性能是5 万级别
    2.4 LVS:性能是十万级
    2.2.1 IP层:请求到达负载均衡后,负载均衡服务器在操作系统内核修改IP地址
    2.2.2 数据链路层负载均衡:解决响应数据量大而导致的负载均衡服务器输出带宽不足的问题。负载均衡服务器修改mac地址,而服务器和下游应用服务器共享相同的虚拟IP,所以应用服务器处理完之后不用再把response返回负载均衡服务器去修改IP以返回给客户端,而是直接返回给客户端。

心得体会

  1. 越底层的(七层协议)协议进行负载均衡,性能更高,更不容易瓶颈。

工作体验

  1. 首先都是很多层网关进来了,这些网关有负载均衡功能的,软硬件的实现都有。最后配置F5负载均衡,Ngnix负载均衡的都有。可能还是公司并发量并不高吧。
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
1月前
|
监控 中间件 Java
后端技术:构建高效、稳定的服务器端应用
【10月更文挑战第5天】后端技术:构建高效、稳定的服务器端应用
79 0
|
1月前
|
JavaScript 前端开发 中间件
探索后端技术:Node.js与Express框架的完美融合
【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。
|
1月前
|
JavaScript 前端开发 API
探索后端技术:Node.js的优势和实际应用
【10月更文挑战第6天】 在当今数字化时代,后端开发是任何成功软件应用的关键组成部分。本文将深入探讨一种流行的后端技术——Node.js,通过分析其核心优势和实际应用案例,揭示其在现代软件开发中的重要性和潜力。
125 2
|
1月前
|
存储 安全 关系型数据库
后端技术:构建高效稳定的现代Web应用
【10月更文挑战第5天】后端技术:构建高效稳定的现代Web应用
56 1
|
1月前
|
缓存 Java 数据库
后端技术探索:从基础架构到高效开发的实践之路
【10月更文挑战第7天】 在现代软件开发中,后端技术是支撑应用运行的核心。本文将探讨如何从后端的基础架构出发,通过一系列高效的开发实践,提升系统的性能与可靠性。我们将深入分析后端框架的选择、数据库设计、接口开发等关键领域,并提供实用的代码示例和优化策略,帮助开发者构建更稳定、高效的后端系统。通过这篇文章,读者将获得关于后端开发的全面理解和实践指导,从而更好地应对复杂项目需求。
70 0
|
1月前
|
JavaScript API 微服务
探索现代后端开发:关键技术和最佳实践
【10月更文挑战第6天】探索现代后端开发:关键技术和最佳实践
|
1月前
|
存储 安全 关系型数据库
后端技术深度剖析:构建高效稳定的企业级应用
【10月更文挑战第5天】后端技术深度剖析:构建高效稳定的企业级应用
56 0
|
1天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
12 1
|
10天前
|
监控 API 微服务
后端技术演进:从单体架构到微服务的转变
随着互联网应用的快速增长和用户需求的不断演化,传统单体架构已难以满足现代软件开发的需求。本文深入探讨了后端技术在面对复杂系统挑战时的演进路径,重点分析了从单体架构向微服务架构转变的过程、原因及优势。通过对比分析,揭示了微服务架构如何提高系统的可扩展性、灵活性和维护效率,同时指出了实施微服务时面临的挑战和最佳实践。
30 7
|
8天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
25 2

热门文章

最新文章

下一篇
无影云桌面