架构知识:分层

学习三步走:为什么,是什么,怎么做

 

为什么会有需要分层的环境

传统的早期单体架构有如下几种缺点

1、难以分布式部署和扩容

2、一个组件的缺陷导致整个进程崩溃

3、系统升级、Bug修复、故障排查存在风险

4、业务范围扩展后,难以复用原有服务,可能需要重新开发

针对3、4点,而有了分层存在的环境

 

分层本质是什么

分层的本质是对功能的切分和封装


网络通信需要解决的问题有:
1、比特纠错
2、路由选择
3、拥塞控制
4、比特流传输
5、字节流传输
6、物理寻址
7、逻辑寻址
8、丢包问题
9、等等

 

这些问题有很多种解法

TCP/IP 四层体系架构的分层逻辑:
1、连接网线两端的机子:数据链路层
2、连接两台需要通信的机子:网络层
3、连接两个需要通信的进程:传输层
4、使得两个进程互相听得懂:应用层

上面的这个解释,显得非常的简单粗暴
但是这个解释,为需要解决的问题,提供了一个承载的平台
所有功能放在这个思考框架上,就能很快找到合适的承载层次

 

同样的,我们分析一下
OSI七层模型的分层逻辑:
1、网线两端机子物理通信可靠:物理层
2、网线两端机子逻辑通信可靠:数据链路层
3、连接两台需要通信的机子:网络层
4、连接两个需要通信的进程:传输层
5、两个进程有节奏的通信:会话层
6、约定一种通用语言,消除歧义:表示层
7、提供明确特定的服务(如电子邮件服务):应用层

 

可以看到:

TCP/IP 中的数据链路层等同于 OSI中的物理层+数据链路层
明显TCP/IP中的划分不太合理,物理层和数据链路层中的逻辑区分很明显

OSI中的会话层虽然在我们最终的通用五层模型中不出现
只是因为它的内容太少了,不足以划分一层,所以并入了应用层
但是提供的功能还在,例如HTTP中的三次握手和四次挥手

 

 

怎么来对一个系统进行分层

 

按照上面的逻辑,可以按照如下步骤分层系统

1、将系统分为不同的使用场景和层次

2、对每个场景中的逻辑进行区分,将明显不同逻辑部分的分层

3、将过于细小的分层合并

 

网络传输划分尝试

第一次划分:不同应用通信→进程通信→主机通信→相邻主机通信

第二次划分:不同应用通信→进程通信→主机通信→相邻主机通信→物理硬件传输比特

第三次划分:干啥→意图传达→协同→进程通信→主机通信→相邻主机通信→物理硬件传输比特

第四次划分:干啥→进程通信→主机通信→相邻主机通信→物理硬件传输比特

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值