架构初探——谁动了我的蛋糕|青训营笔记

网友投稿 694 2022-11-27

架构初探——谁动了我的蛋糕|青训营笔记

架构初探——谁动了我的蛋糕|青训营笔记

架构演进

单机架构

问题:​​C10K problem​​(如何处理10k个客户端的连接,单机瓶颈),运维需要停服

基于C10K问题,从纯网络编程技术的角度处理单机高并发访问的问题的方案经历了(阻塞IO、​​select​​​(IO多路复用)、​​poll​​​、​​epoll​​​的演进),这里给出知乎的系列章讲述​​epoll​​​的大致原理:​​zhuanlan.zhihu.com/p/64746509​​

关于​​sokcet​​编程,在大致了解流程之后,推荐阅读 《Linux-UNIX系统编程手册》 下册中讲​​socket通信​​的部分(意外的适合小白阅读)、 《TCP/IP网络编程》 这本书也可以大致浏览,比起大黑书来说,更适合入门网络编程。

单体架构 & 垂直应用架构

单体架构将单机架构做了水平扩容,部署在多台机器上;垂直扩容则在单体架构的基础上,先将其按照业务拆分,以业务为单位,部署在多台机器上(先垂直拆,再水平扩)。

SOA(Service Oriented Architecture)& 微服务

将进程按照的不同功能单元抽象为服务,进一步拆分,定义服务之间的通信标准

问题:数据一致性、服务之间通信、容灾、运维成本高

企业级后端架构剖析

云计算

基础

虚拟化(Docker)编排(k8s)

云服务

IaaS - 云基础设施,对底层硬件资源池的抽象

PaaS - 基于资源池抽象,对上层提供的弹性资源平台

SaaS - 基于弹性资源平台构建的云服务

FaaS - 更轻量级的函数服务。好比 LeetCode 等 OJ,刷题时只需要实现函数,不需要关注输入输出

云原生

弹性资源(可扩容缩容)

弹性计算资源调度:

在线计算—互联网后端服务离线计算—大数据分析

弹性存储资源:

经典

对象存储(视频、图片、CDN技术)大数据存储(日志、数据挖掘)

关系型数据库元数据(数据量不大,但是应用场景很多)NoSQL(KV存储​​Redis​​​、文档存储​​Mongo​​)

微服务架构

业务功能单元解耦统一的通信标准HTTP通信协议往往选择​​​JSON​​,其可读性更好,方便调试,所以下图中服务的接入都是从HTTP请求发起,来源可能是各种客户端,而经过Gateway之后则使用​​rpc通信​​,因为其序列化协议往往有着更好的压缩率,如​​pb​​​、​​thrift​​。并且rpc中间件往往集成了丰富的服务治理能力:熔断、降级、超时等

DevOps(更快驱动软件开发生命周期轮转)

敏捷开发CI/CD(可以了解一下​​jenkis​​)

服务网格

微服务之间通讯的中间层一个高性能四层网络代理(​​解释四层代理和七层代理​​)

被称为微服务架构2.0,这里放一篇文章作为了解:​​juejin-/post/701661…​​

企业级后端架构的挑战

基础设施

物理资源有限资源利用率

用户层面

微服务之间网络通信开销大网络抖动导致运维成本高异构环境下,不同实例资源水位不均,如何合理分配资源

一些解决方案

离/在线资源并池(在线业务分时潮汐特性)微服务亲和性部署(调用关系紧密的服务部署在一台机器上,使用​​IPC​​​代替​​RPC​​)流量治理(微服务中间件&服务网格的流量治理)屏蔽异构环境的算力差距(CPU水位负载均衡)

小结

笔记内容较为提纲挈领,课程帮助我们开阔了后端架构的视野,但这部分的知识也着实需要结合实践去消化,目前于我来说难度较大,确实只能说是初探架构。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈MySQL日志文件|手撕MySQL系列
下一篇:高并发下restTemplate的错误分析方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~