
IT行业正在经历从单一应用程序到基于微服务的体系结构的转变。这种新方法的好处包括:
独立开发和自由选择技术–开发人员可以同时处理不同的微服务,并为他们要解决的问题选择最佳技术。
独立的部署和发布周期–微服务可以按自己的时间表进行单独更新。
粒度扩展–单个微服务可以独立扩展,从而降低了总体成本并提高了可靠性。
简便性–较小的服务更易于理解,从而加快了产品的开发,测试,调试和发布的速度。
故障隔离–微服务的故障不必转化为其他服务的故障。
在此博客文章中,我们将探讨:
如何设计简化的在线商店系统以实现上述好处。
为什么以及如何在基于微服务的体系结构中管理面向公众的API。
如何开始使用Azure API管理和微服务。
示例:使用微服务实现的在线商店
让我们考虑一个简化的在线商店系统。网站的访问者需要能够查看产品的详细信息,下订单,查看下订单。
每当下订单时,系统都需要处理订单明细并发出运输请求。根据用户方案和业务需求,系统必须具有以下属性:
细粒度缩放-查看产品详细信息的频率平均比下订单至少高1000倍。
简便性–明确定义了独立的用户操作,这种分离需要反映在系统的体系结构中。
故障隔离–运输功能的故障不会影响查看产品或下订单。
他们暗示将通过三种微服务来实施该系统:
1、使用公共GET和POST API的订单-负责查看和下订单。
2、具有公共GET API的产品-负责查看产品的详细信息。
3、由事件在内部触发的装运–负责处理和装运订单。
为此,Azure将使用易于实现和管理的Azure功能。它们的事件驱动性质意味着它们将在交互上执行并为其付费。当商店流量不可预测时,此功能将非常有用。在没有流量的情况下,基础架构会缩减为零。在市场营销活动如病毒般传播或在购物假期(例如美国的黑色星期五)期间负载增加的情况下,它还可以提供大量流量。
为了保持缩放粒度,确保简单性并保持发布周期独立,每个微服务都应在单独的Function App中实现。
在单个功能应用程序中实现微服务的流程图
订单和产品微服务是带有HTTP触发器的外部函数。运输微服务由订单微服务间接触发,该订单微服务在Azure Service Bus中创建一条消息。例如,当您订购商品时,网站会发出POST Order API调用来执行订购功能。接下来,您的订单在Azure Service Bus实例中作为消息排队,然后触发运送功能进行处理。
在基于微服务的架构中管理外部API通信的主要理由
所提出的体系结构具有一个基本问题,即处理来自外部的通信的方式。
客户端应用程序耦合到内部微服务。当您希望拆分,合并或重写微服务时,这尤其麻烦。
API不在同一域或IP地址下出现。
通用API规则无法轻松地跨微服务应用。
管理API更改和引入新版本很困难。
尽管Azure Functions代理提供了统一的API平面,但在其他情况下它们还是不足的。应该通过在Azure函数之前使用Azure API管理来解决这些限制,现在可以在无服务器的消费层中使用。
流程图显示Azure API Managemnet到Azure Functions的前沿
API管理从其实现中抽象出API,并将它们托管在相同的域或静态IP地址下。它使您可以将客户端应用程序与内部微服务分离。Azure API管理中的所有API共享一个主机名和一个静态IP地址。您也可以分配自定义域。
使用APIManagement通过在Azure API Management中聚集API来确保API的安全,而不是直接公开您的微服务。这可以帮助您减少潜在攻击的表面积。您可以使用订阅密钥,JWT令牌,客户端证书或自定义标头来验证API请求。流量只能过滤到受信任的IP地址。
使用APIManagement,还可以在API上执行规则。您可以按API或按API操作全局定义传入请求和传出响应的API策略。几乎有50种策略,例如身份验证方法,限制,缓存和转换。通过访问我们的文档“API管理政策”了解更多信息。
API管理简化了不断变化的API。从设计阶段到引入新版本或修订版,您都可以在API的整个生命周期中进行管理。与修订版本相反,版本应包含重大更改,例如删除API操作或更改身份验证。
可以在使用API管理时监视API,在Azure API管理实例中查看使用情况指标,在Azure Application Insights中记录API调用以创建图表,监视实时流量并简化调试。
API管理使向外部开发人员发布API变得容易。Azure API管理提供了一个开发人员门户,该门户是一个自动生成的,完全可自定义的网站,访问者可以在其中发现API,学习如何使用它们,以交互方式试用它们,下载其OpenAPI规范并最终注册以获取API密钥。
如何通过微服务使用API管理
Azure API管理最近已在新的定价层中可用。通过按执行计费,消费层特别适合基于微服务的体系结构和事件驱动的系统。例如,对于我们假设的在线商店而言,这将是一个不错的选择。
对于更高级的系统,API管理的其他层提供了更丰富的功能集。
相关推荐: 看千亿市场下的男颜经济,东南亚男性如何“为颜”剁手
“高质量男性”,“雄竞”等词在中国爆火的同时,东南亚地区的男颜时代也悄然来临。“她”经济的爆发为一波商家带来了无限商机,“他”经济后浪也将带来一片新蓝海。随着生活条件的不断改善,男性的自我价值被不断发掘,消费理念更加悦己。 图片、短视频社交媒体的流行,直播的风…
码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.