Restful API和事件驱动的微服务

Restful API和事件驱动的微服务,rest,microservices,Rest,Microservices,在事件驱动的微服务系统中,微服务也是restful API是常规做法还是最佳做法 在事件驱动的微服务中,它通常被描述为一些正在引发的事件和一些其他微服务响应这些事件并执行一些操作。在本例中,似乎没有RESTfulAPI中的“资源”概念。如果系统是使用RESTfulAPI构建的,那么这个系统可以被称为微服务系统吗 在事件驱动的微服务环境中,restful的概念仍然适用吗?当我开始学习更多关于事件驱动微的知识时,我发现自己在这两个方面有点混淆,不确定我是否掌握了正确的概念。在事件驱动体系结构中,微服

在事件驱动的微服务系统中,微服务也是restful API是常规做法还是最佳做法

在事件驱动的微服务中,它通常被描述为一些正在引发的事件和一些其他微服务响应这些事件并执行一些操作。在本例中,似乎没有RESTfulAPI中的“资源”概念。如果系统是使用RESTfulAPI构建的,那么这个系统可以被称为微服务系统吗


在事件驱动的微服务环境中,restful的概念仍然适用吗?当我开始学习更多关于事件驱动微的知识时,我发现自己在这两个方面有点混淆,不确定我是否掌握了正确的概念。

在事件驱动体系结构中,微服务不是通过REST API进行通信,而是通过消息传递框架(RabbitMQ、Kafka等)进行通信。正如您正确指出的,微服务会对在其收听的特定主题/频道上接收到的消息作出反应

如果微服务关闭,消息将在消息总线中累积,并由同一微服务(当它恢复时)或另一微服务处理

如果他们要通过RESTAPI进行通信,并且微服务关闭,那么您需要使用指数退避策略重试请求,并处理许多其他事情。这篇文章很好地解释了这种差异

微服务系统可以完全由REST微服务构建。它只是没有遵循事件驱动的方法,更像是一个同步(请求/响应)模型。微服务系统的设计应该与应用程序的需求直接相关


通常使用混合方法:您通过RESTAPI与某些微服务通信(例如使用自动验证/自动化微服务),因为您需要它们尽快做出响应。与其他应用程序相比,您可以通过事件进行通信,通常是在发生触发和遗忘事件时,例如日志记录、度量,可能是存储。

事件驱动和Restful API是两个不同的概念。Restful API主要用于同步通信,事件驱动是异步通信模式。微服务可以是事件驱动的,也可以支持Restful API,但两者都提供不同的服务