Section 5: 应用程式工作流程 (26:34 - 30:07)

订单流程 (26:34 - 29:58)

现在让我们详细了解一下整个应用程式的订单流程是如何运作的。

  1. 用户发起订单 (User Places an Order): 用户通过 API 网关发送订单请求,包含客户 ID、商品列表(包括商品 ID、数量、价格等)。
  2. 订单微服务处理请求 (Order Microservice Processes Request):
    • 订单微服务首先联系客户微服务,验证客户 ID 是否存在且有效。例如,我们需要确认客户是否被禁用或阻止。
    • 如果客户验证成功,订单微服务会联系产品微服务,确认订单中的商品是否存在,并且库存数量是否足够。
    • 如果商品存在且库存充足,订单微服务会将订单信息保存到数据库中。
  3. 异步发送订单确认 (Asynchronous Order Confirmation):
    • 订单微服务将订单确认消息异步发送到 Kafka 消息队列。
  4. 发起支付流程 (Initiate Payment Process):
    • 订单微服务向支付微服务发送请求,开始处理订单的支付。
  5. 处理支付确认 (Process Payment Confirmation):
    • 支付微服务处理支付请求,并将支付结果(成功或失败)保存到数据库中。
    • 支付微服务将支付确认消息异步发送到 Kafka 消息队列。
  6. 通知服务处理消息 (Notification Service Handles Messages):
    • 通知微服务监听 Kafka 队列,接收订单确认和支付确认消息。
    • 通知微服务根据消息内容,向客户发送相应的邮件通知。客户将收到两封邮件:订单确认邮件和支付确认邮件。

分布式追踪 (29:58 - 30:07)

在整个流程中,我们将使用 Zipkin 进行分布式追踪,以便跟踪请求在各个微服务之间的调用链。