zoukankan      html  css  js  c++  java
  • Spring Cloud微服务系统下的数据一致性探讨

    我想这个问题需要根据自己的系统具体架构来分别讨论,这边拿一个车联网的系统举例。

    拆除GPS这个功能接口需要分几个步骤实现(不涉及数据更新的步骤略去了):

    ①更改GPS设备状态(设备管理服务)

    ②更改工单状态(工单管理服务)

    假设调用拆除GPS这个接口的时候,由于各种原因②不能工作了。

    架构1:普通的微服务架构

    工单管理服务要调用设备管理服务的功能,用的是spring cloud的自己的restTemplate,这个很简单,加上普通的事务就可以了。

    架构2:引入了消息中间件

    这个时候,服务之间调用加了一层消息中间件(以activemq为例),这也没关系,activemq有消息确认机制ACK,可以指定ACK_MODE为SESSION_TRANSACTED=0进行事务提交

    ,然后再配合原来的数据库事务,也可以实现。并且activemq还有失败重发机制,可以尝试N次重发失败之后再回滚。

    架构3:用到了分库

    那就涉及到多数据源了,这方面spring也可以集成atomiko实现分布式事务。

  • 相关阅读:
    Safari-IoS调试
    前端加密技术
    gulp入门
    xss攻击
    xml 解析
    python 基本语法
    python初识
    字节
    神奇的算式
    linux-虚拟机安装
  • 原文地址:https://www.cnblogs.com/shamo89/p/8098050.html
Copyright © 2011-2022 走看看