订单微服务是整个电商工程最复杂、最核心的微服务,毕竟,没有下单操作,就不算是一个电商系统。同时,我们一定要知道,订单微服务的正常运转是需要依赖另外三个微服务的,所以,这里面不仅要考虑微服务容错,还要考虑分布式事务问题。另外,我们的订单微服务将来可做的事情还是非常多的,我只是给出了最核心的两个接口定义和实现,你可以再此基础之上,拓展出更多的业务。
1 订单微服务里面我们引入了哪些技术、组件、工具?你觉得能怎么做优化呢?
- 为了做微服务容错,我们引入了 Hystrix(结合 OpenFeign)…
- 为了实现分布式事务,我们引入了 Seata(使用无侵入式的 AT 模式)…
2 我们的订单微服务引入了分布式事务(Seata AT),为此,我们做了哪些工作呢?
- 代理数据源,因为 Seata 需要在操作数据的前后存储 image…
- 需要传递 xid,只有这样,才能够实现各个分支事务的感知、注册、提交和回滚…
- 添加注解…
3 对于订单微服务,你还能做哪些业务方面的扩展或优化呢?你会怎么落地实践呢?
- 可以实现取消订单的操作,依次『回滚』下单时的所有操作…
- 订单可以添加状态,例如:未付款、已付款、已发货、已完成等等…