我们正在尝试将我们的整体核心拆分为微服务,并使用消息系统(例如Kafka)添加一些相互连接的新核心。
下一步是通过Api网关为移动应用和微服务之间的通信创建API端点。
开发API网关向/从微服务传输数据的好方法是什么?
感谢您的建议和一些想法
答案 0 :(得分:0)
我想说,第二种选择在许多情况下听起来更合理。
事件驱动的解决方案主要适用于以下几个流程的情况,因此创建实体可以通过Rest端点进行,而该实体的流程可以通过事件进行异步。
为说明起见,付款流程可能如下所示:
1-)API GW->付款休息控制器->付款服务-创建付款 支付服务创建一个支付实体,然后发布“ payment.created”事件。 2-)队列->付款流控制器->服务-更新付款 Payment Stream控制器使用“ payment.created”事件,然后检查余额,并将付款实体更新为Confirmed。更新实体后,它可以发送“ payment.confirmed”事件。 ...
另一方面,我的意思是第一种选择,因为您需要了解所有交换或队列,因此很难维护一个高度分离的系统。
但是,我认为在某些情况下结合两种解决方案可能会更好。例如,您的API被高流量的客户端公开,并且API的任务非常明确。在那种情况下,使用MQ作为此API的缓冲区将是完美的。
答案 1 :(得分:-1)
这取决于您正在采用的架构。 如果我理解了这个问题,你已经拥有了kafka消息服务器的代理。 我认为你可以使用架构发布/订阅同步消息。
如果在后端架构中支持SLA的旧系统,在这种情况下,您可以使用集成所需的其余端点。
这是在架构中使用API网关模式的好处。
非常感谢。