关于事件驱动架构的几篇文章建议使用事件代理(例如,通过主题实现的Kafka )来集成后端服务,此外,还推荐为这些后端服务集成RESTful接口(这里是Guido的一个示例:使用Apache构建事件驱动(Micro)服务,2019年,第19页)。

RESTful接口提供对、GUI、和外部服务的访问。这些GUI和外部服务通过一个RESTful API网关访问服务。因此,每个后端服务都有两种接口类型: RESTful接口和通道接口(事件代理)。
我的问题是:通过事件代理提供RESTful API和/并行来集成后端服务的优点是什么?这个问题的原因是事件代理可以提供相同的功能(同步请求响应)。
发布于 2022-05-20 23:09:53
没错,事件代理可以提供同样的功能: API网关的目的之一是执行“协议转换”。
在您的“前线”微服务中使用RESTful API的优势在很大程度上取决于您的特定情况。有趣的是,没有什么可以阻止您通过事件代理提供RESTful API (休息显式协议不可知论)。但是,如果RESTful的意思是通过HTTP,那么使用该协议可能会有好处。例如,如果您打算让“其他”客户端使用您的微服务,那么(尽管有事件驱动架构的兴起) HTTP在客观上仍然是现存的最普遍的协议。
这是非常主观的,但是“请求-响应”是基于事件的框架的事后考虑。如果您想遵循该模型,最好使用为其设计的框架和技术。
正如您所提到的,您当然可以并行地提供一个RESTful API。如果这是适当的,真的取决于您的用例。
我的两分钱:使用任何最简单的体系结构,在API网关背后对您最有意义。因此,如果您所采用的方法不起作用,您可以在几乎没有影响的情况下进行更改。
https://stackoverflow.com/questions/72299824
复制相似问题