一个分层架构设计的服务分层应用通常包含很多个逻辑层(Logical Layer)和物理层(Physical Tier)。分层架构这个名字里的架构架构层(Tier),特指“物理层”(Tier),服务分层每个物理层是架构架构由很多台机器构成,可以是服务分层部署在局域网下一个子网的虚拟机或裸金属机器。
分层是架构架构一种职责分离和依赖管理的方式:每层都有自己特定的职能;高层的服务可以调用低层的服务,但是服务分层反过来不行。
物理层运行在不同的架构架构机器上,一层可以直接调用另一层,服务分层或者通过消息队列进行通信。架构架构尽管每个逻辑层都可以被部署在独立的服务分层物理层,但不是架构架构必须的。为了节省资源,服务分层一个物理层可以部署多个逻辑层。通过物理层的隔离,架构的扩展性和容错性会更强,负面作用是会导致额外的网络通信延迟。
传统的三层应用(物理层)分别包含展示层、中间层、数据库层。中间层是可选的,较为复杂的应用通常会超过三层。上面的架构图中就包含了两个中间层,分别实现了不同的功能。
一个分层架构的应用,从逻辑层的视角来看,可以分为两类:
封闭架构严格限制了逻辑层之间的依赖关系,架构更为清晰。缺点是一些中间层只可能只对请求进行转发,导致不必要的网络交互。
分层架构常见于IaaS系统,这类系统中每个物理层都运行在一组独立的物理机上。不过IaaS系统也不必采用纯粹的分层架构,毕竟架构中的某些部分使用现成的服务优势更大,比如缓存系统、消息队列和数据存储服务。
在以下场景中可以考虑分层架构:
传统公司里本地部署(自家机房)的系统通常采用分层架构,各家云服务商也提供了裸金属服务器供传统企业上云。
这里我们给出一个在虚拟机上推荐的分层架构:
每个物理层均包含至少两台虚拟机,以避免单点故障;通过负载均衡,把请求分发到不同的虚拟机上;如果要支持横向扩容,我们可以在一个物理层配置更多虚拟机。
每个物理层都有自己的子网,所以这些虚拟机的内网IP在一个网段里。这样的优势是配置网络安全规则很方便,路由表也很容易配置。
网络层和业务逻辑层是无状态的。任何一个虚拟机都可以处理到达该层的请求。数据层是多备份的数据库系统。比如主从版本的MySQL、TiDB,或者云上Dynamodb等。
每个物理层都有自己的 inbound 和 outbound 网络安全规则,比如数据层可以设置只允许业务逻辑层的虚拟机IP进行访问;
(责任编辑:娱乐)
10月份安徽省居民消费价格同比上涨1.7% 涨幅比上月扩大1.0个百分点
中国石油率先完成碳市场交易履约任务 碳排放配额累计成交量1.94亿吨
四川自贡:智慧医疗为全民健康插上科技的“翅膀” 让群众就医“少跑腿”
2022年全球人工智能软件市场规模将达625亿美元 相比2021年增长21.3%
四川省自贡市市场准入行政审批首创“预服务”制度 降低市场主体运行成本
四川省阿坝州抓好生态环境问题整改全覆盖核查 推动问题整改水平质的提升