读《后端技术面试38讲》--学习笔记和读后感 (三)

本文是学习《后端技术面试38讲》的笔记,涵盖了分布式应对高并发、缓存减少计算、异步架构解耦、负载均衡策略、数据存储优化、搜索引擎原理、微服务的利弊、性能与高可用性构建、安全性考量、大数据处理和AI、物联网以及区块链技术的概述,揭示了互联网系统面临的挑战和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习笔记和读后感
主要记录阅读《后端技术面试38讲》课程的学习笔记和一些自己的工作和学习体会。
课程所讲的内容是比较系统性的讲了后端技术开发的技术理论,比较适合于有六七年以上开发工作经验的软件开发人员,如已经从事过一些项目的架构设计工作,则能够更系统的理解课程内容;在阅读过程中将自己的工作感悟和既往的技术学习内容,不断地表达出来,则能更充分的提升对软件工程的系统认知和表达能力。

本篇接续上两篇笔记
读《后端技术面试38讲》–学习笔记和读后感 (一)
读《后端技术面试38讲》–学习笔记和读后感 (二)

继续对课程的架构的核心原理部分,做笔记的整理输出并表达自己的理解和看法

21丨分布式架构:如何应对高并发的用户请求

用户增加 导致资源消耗增加: CPU 、内存、网络带宽、磁盘空间
资源耗尽 带来服务器崩溃 、大范围系统崩溃(数据中心的不可用)
高并发带来的压力 产生高并发的解决方案
垂直伸缩和水平伸缩
单个服务器硬件能力提升 、 分布式集群的应用
互联网分布式架构的演化
演化的大粒度路径大家都比较熟悉了 。。

**互联网系统相对传统IT系统的挑战有哪些?
来自Citizen Z 的评论说的很精彩**

除了高并发,还有这些挑战:
1. 数据规模:UGC 和行为数据 
2. 大流量:要考虑大型文件或流数据对带宽的压力 
3. 高峰场景:无计划或有计划的访问量爆发(营销活动、热点事件)、DDoS,要求系统可伸缩 
4. 安全性:暴露在公网,安全通信和隐私保护问题不可避免 
5. 高可用:宕机意味着用户流失,复杂网络环境问题等外部因素也要考虑在内 
6. 快速变化:产品创新以吸引和留存用户,这需要可扩展的系统设计和高效敏捷的团队协作机制

22 | 缓存架构:如何减少不必要的计算?

通读缓存 数据服务自己维护缓存
旁路缓存 应用服务来维护缓存
缓存注意事项 :
缓存的应用场景及优势 需要结合业务系统进行判断
避免数据不一致 过期失效 、失效通知

感想和补充:
空间不足时 缓存清除策略
算法–缓存失效策略及代码示例

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

使用消息队列的异步架构(事件驱动架构)避免系统间的耦合
生产-消费 、发布-订阅
解耦避免同步请求的等待,改善写操作请求的响应时间
伸缩、削峰填谷、隔离失败、降低耦合
特殊场景的异步化处理 需要考虑交互实现 如 订单支付场景 通常需要在支付消费完后通知
rabbitMQ \ kafka \ rocketMQ

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

HTTP 重定向负载均衡 这种方式也不常用,拿来举例 算是能类别注册中心了
DNS 负载均衡 域名可配置多个IP ,补充: 也可以有多个CName 再次分层
反向代理负载均衡 HTTP协议解析 效率有限
IP负载均衡 IP地址转换 请求数据流会很快, 但响应数据流一般较大 ,网卡会成为瓶颈
数据链路层负载均衡
共用虚拟IP地址 旁路负载模式 修改mac地址 响应数据直接返回 不经过负载均衡器
大型互联网基本使用链路层负载均衡
补充负载均衡算法示例:
算法-负载均衡策略及代码示例

25 | 数据存储架构:如何改善系统的数据存储能力?

数据库主从复制 :binlog \ relayLog
数据库分片 分片规则用中间件处理 MYCAT // 待研究分片的实现
关系数据库的混合部署
单库 - - 主从库(链式主从) – 业务分库 – 热点库 进行分片 (可加上主从 )
NoSQL 数据库
分布式下CAP ,网络故障会发生、可用性要保证 , 只能在一致性C上做权衡取舍
一致性程度的不同 最终一致性

感想:
待研究分片的实现 : 哈希取余是可交常见的方式, 但遇到机器故障呢, 是结合数据库的主从 自动替换主节点,不用动态修改分片呢,还是说用了一致性哈希的方式呢 ?
补充:
MySQL-要点总结的笔记

26 | 搜索引擎架构:如何瞬间完成海量数据检索?

倒排索引
看带有附录的图书 就可以很好的理解倒排索引了,可以用关键词在附录中快速找到页码,然后翻到对应页码看对应的内容。
结果排序
网页权重算法 PageRank
站内内容排序 如用 点赞数 、词频TF 、

感想:
快速检索的实现 、排序算法

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

单体架构的困难和挑战 (老生常谈)
编译、部署困难
代码分支管理困难
数据库连接耗尽
新增业务困难
发布困难
微服务框架原理
Dubbo借鉴SOA架构 ,抛弃了不必要的规范 ,使用二进制协议进行服务注册与调用
微服务架构的落地实践
达成统一共识 、做好模块划分、充分的技术调研
关注点: 需求 - 价值 - 原则 - 实践 - 工具

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

性能指标 响应时间、并发数、吞吐量、性能计数器(常见的服务器的性能指标数据)
性能测试
性能测试 - 负载测试 - 压力测试 , 并发数增加
TPS 逐步上升 缓步增加 逐渐下降
响应时间 较快且平稳 略微增加 迅速增加到超时
性能优化 用户体验优化
数据中心优化 几十到上百毫秒的网络延时 远近不同的数据中心
硬件优化 IB网卡
操作系统优化
虚拟机优化
基础组件优化
架构优化
代码优化
优化的步骤 : 测试–分析瓶颈 - 优化 - 验证测试 == 再循环 – 达成目标

29 | 高可用架构:我们为什么感觉不到淘宝应用升级时的停机?

高可用的度量 无故障时间 SLA , 故障分级 (描述 、 权重 、故障时间)
高可用架构
冗余备份 负载均衡 、 数据库的主主复制
失败隔离 异步处理
限流降级 次要的、可以延后做的 腾出资源让位
异地多活 请求的分发, 数据的同步 、数据冲突的解决
测试自动化减少bug、预发布环境的验证、监控自动化提早发现故障 、运维自动化减少故障时间 灰度发布减小错误的影响或者评估

30 | 安全性架构:为什么说用户密码泄漏是程序员的锅?

加密 对称加密 、非对称加密 ,HTTPS 的加密方式 CA 根CA内置在操作系统
HTTP 攻击与防护 :
SQL注入 , 预编译防止 PrepareStatement
XSS 跨站点脚本攻击 通过转义 防止JS在浏览器执行 , 或通过WAF 防止带有恶意脚本的资源提交到服务器

31 | 大数据架构:大数据技术架构的思想和原理是什么?

分布式文件存储HDFS架构
大数据计算MapReduce
大数据仓库Hive机构 用SQL 简化mapreduce开发
快速大数据计算Spark架构 常驻内存
大数据流计算架构 Spark Streaming \ Flink

32 | AI与物联网架构:从智能引擎到物联网平台

大数据平台架构
数据采集、数据处理、数据输出
智能推荐算法
基于用户统计的推荐
基于商品属性的推荐
基于用户的协同过滤推荐
基于商品的协同过滤推荐
物联网大数据架构
万物互联 目标
终端设备数据的采集 关键

33 | 区块链技术架构:区块链到底能做什么?

比特币与区块链原理 无中心、去信任的分布式记账系统
交易
区块链 递增的单链 修改会分叉(断链)
工作量证明
旷工
联盟链与区块链的企业级应用
互联网技术的快速发展是生产力革命,区块链技术是生产关系革命 , 使得低成本、去信任的跨组织合作成为可能
感想:
区块链去中心化的方式 产生了需要大量的成本在系统的一致性同步上,节点越多,花在取得半数认可的通信成本就会越高,联盟链算是折中了下,区块链在需要公信力的场景可能会有较多的用处,但怎样降低成本也是需要考虑的 。

答疑丨互联网需要解决的技术问题是什么?

分布式缓存 一致性哈希 虚拟节点增加均衡性
数据存储架构 逻辑数据分片
分布式架构 泛互联网时代

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值