微服务体系结构是Facebook、Netflix和优步等跨国企业发布的分布式应用系统的基础。精细化隔离服务,然后将它们聚合起来协同工作,这使得分布式系统比单体式系统更易于管理。但是对于嵌入式系统而言,情况就有点不同了。
不像在数据中心内和跨数据中心运行的面向微服务的体系结构(MOA),嵌入式系统往往在硬件和用例方面是专用的——比如运行在工业装配厂中操作的一群机器人工人或控制自动驾驶汽车。
面向微服务的体系结构可以运用于这些类型的环境,但是需要特别注意出现问题时,您不能仅仅启动另一个容器来替换失效的容器。要做的工作不止这些。
为嵌入式系统编写面向微服务的体系结构需要一种不同的设计和实施方法。
面向微服务的体系结构简介
在深入讨论将MOA运用于嵌入式系统的细节之前,不妨先大致了解这种体系结构的基本要素。
面向微服务的体系结构旨在将应用程序的行为分解为一群独立存在但一致行动的离散服务。MOA的工作方式是将离散服务分发到众多远程位置。
通常,这些服务使用一种众所周知的传输协议(比如TCP、UDP或HTTP)发送和接收数据。某种类型的组织、前端客户端机制(比如在桌面或移动设备上运行的网页或原生代码)将各种服务聚集在一起,形成整个应用程序的统一表示。然而如前所述,组成MOA的每个服务都是远程托管的。
应用程序的前端调用远程路由/控制器服务。路由/控制器服务知道组成应用程序的微服务的位置,并根据作为调用代码一部分的某种标识符将调用转发到适当的服务。微服务处理调用,并将结果发回给路由