logo
System Design Infrastructure

应用层设计

microservices与service discovery的应用层设计思路


资料来源:可缩放系统构架介绍

将 Web 服务层与应用层(也被称作平台层)分离,可以独立缩放和配置这两层。添加新的 API 只需要添加应用服务器,而不必添加额外的 web 服务器。

单一职责原则提倡小型的,自治的服务共同合作。小团队通过提供小型的服务,可以更激进地计划增长。

应用层中的工作进程也有可以实现异步化

microservices

与此讨论相关的话题是 microservices,可以被描述为一系列可以独立部署的小型的,模块化服务。每个服务运行在一个独立的线程中,通过明确定义的轻量级机制通讯,共同实现业务目标。<a href=https://smartbear.com/learn/api-design/what-are-microservices>1

例如,Pinterest 可能有这些 microservices: 用户资料、关注者、Feed 流、搜索、照片上传等。

service discovery

ConsulEtcdZookeeper 这样的系统可以通过追踪注册名、地址、端口等信息来帮助服务互相发现对方。Health checks 可以帮助确认服务的完整性和是否经常使用一个 HTTP 路径。Consul 和 Etcd 都有一个内建的 key-value 存储 用来存储配置信息和其他的共享信息。

不利之处:应用层

  • 添加由多个松耦合服务组成的应用层,从架构、运营、流程等层面来讲将非常不同(相对于单体系统)。
  • microservices 会增加部署和运营的复杂度。

来源及延伸阅读

相关练习题

应用层设计

暂无相关练习题