我很好奇AWS服务的设计方式。例如,采用S3之类的服务及其REST API:https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html
此服务的端点有 alot 个,涵盖了“ S3服务”的全部功能。但是,在幕后,肯定是许多微服务的集合,至少这就是我的想法。
有人对此有任何见识吗?您可以使用一种常见的设计模式将我指向顶层服务层,其中封装了对多个微服务的单个调用(如果事实上,这就是它们在做什么)?
谢谢。
答案 0 :(得分:3)
构建此类存储服务的典型模板基于中央请求代理,该代理与其他服务和专用数据库进行交互:
经纪人既为用户提供服务,也为其他一些服务:
进一步研究开源存储服务的某些实现,例如OpenStack Swift模块,可以帮助您基于其他微服务找到用于实现这种服务的通用设计模式。例如,您可以查看本指南的1.2.2节:https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/10/pdf/architecture_guide/Red_Hat_OpenStack_Platform-10-Architecture_Guide-en-US.pdf
S3与Swift非常相似,因为相应的API之间存在一些网关。
下面是带有这种模式的图: