我正在尝试确定与航班预订有关的微服务的总体组件交互和REST API交互。
用户选择一个飞行座位并向微服务API提供详细信息(例如:
bookFlightTickets(FlightBookingRequest request) {
...}
可以说,这项服务需要暂时保留预订X分钟,直到用户完成付款系统为止。
从广义上讲,所需的微服务将是:
1)FlightSystem微服务(返回航班/座位的详细信息) 2)付款微服务 3)航班预订微服务
bookFlightTickets API的外观如何?由于它需要暂时保留保留,因此它将是异步微服务吗?
对整体流程有何建议?谢谢
答案 0 :(得分:1)
首先,我建议您看一下.NET Microservices: Architecture for Containerized .NET Applications,尽管它是由Microsoft编写的,但它具有许多常规的微服务设计方法以及许多其他书籍的有用链接。
根据您的解释,航班预订微服务应会收到预订并保留一段时间,以便用户可以付款。
我对微服务有机化的想法。
POST
个预订端点(例如/api/v1.0/reserve
)您可以将数据库分为以下几部分(每个微服务都有自己的数据库是个好主意)
服务可以establish async link(如AMQP)相互通信。 FlightSystem将要求使用AMQP的航班预订微服务提供临时保留的座位,以正确显示已占用的座位。如果付款成功,付款服务将告知Flight booking microservice永久保留座位。依此类推。