php微服务事务一致性,数据库 – 数据库与微服务器的一致性

This is super-nice and elegant but in practice it becomes a bit tricky

在实践中意味着,您需要设计您的微服务器,以便遵守规则时,满足必要的业务一致性:

that services cannot directly connect to a DB “owned” by another service.

换句话说 – 不要对自己的责任作出任何假设,并根据需要改变边界,直到找到一种方式来完成这项工作。

现在,你的问题:

What are the best patterns to keep things consistent and live a happy life?

对于不需要立即一致性的事物,并且更新忠诚度点似乎落在该类别中,您可以使用可靠的pub / sub模式从一个微服务器发送事件以供其他人处理。可靠的一点是,您需要对事件处理的东西进行好的重试,回滚和幂等(或事务性)。

如果您在.NET上运行,一些支持这种可靠性的基础架构示例包括NServiceBus和MassTransit.全面披露 – 我是NServiceBus的创始人。

更新:关于关于忠诚度积分的关注的以下意见:“如果余额更新被延迟处理,客户可能实际上可以订购比点数更多的项目”。

许多人为了强烈的一致性而奋斗着这些要求。事实是,通常可以通过引入额外的规则来处理这些情况,例如用户最终得到负面忠诚度点通知他们。如果T在没有将忠诚点排除在外的情况下通知用户,他们将根据某些转换率向他们收费。当客户使用积分购买商品时,客户可以看到此政策。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值