今天看啥  ›  专栏  ›  高可用架构

怎么在业务团队写好发消息的代码?

高可用架构  · 公众号  · 架构  · 2024-07-05 07:35
遇到的问题做技术的同学,尤其是业务开发同学都是经常和消息打交道的,大家也都喜欢研究像MetaQ这种消息中间件的一些实现代码。作为一曾经的业务开发同学(目前在负责稳定性),深知要在业务团队写好发消息的代码,也绝非易事。曾经我是交易订单团队的一名开发,我遇到了下面的一个问题:try { transactionTemplate.start(); // 位置1 orderManager.createOrder(order); // 位置2 messageProducer.send(buildOrderCreatedMsg(order)); // 发送订单创建成功的消息。 transactionTemplate.commit(); // 位置3} catch (Exception e) { transactionTemplate.rollback();}我需要发送订单创建成功的消息,目前我是在位置2上面发送的消息,不过我在纠结,我为什么不是在位置1或者位置3上发送消息呢?谁才是完美的答案如果这段代码在运行过程中没有任何意外的行为,DB操作总是很快成功,那么看起来在位置 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照