​ 问题描述: 最近在做项目过程中遇到这样一种场景:方法A依次调用方法B、C、D,其中方法B和D都是本地方法,方法C是远程方法(更具体的讲,方法C的功能是发送MQ消息),该场景要求方法A是满足事务的,即A调用B、C、D要么同时成功,要么同时失败。   问题分析: 该问题的难点在于,对于方法B和D,可以通过本地事务支持回滚,对于方法C,不是一个简单的远程调用,是一个发送MQ消息的方法,本地事务不支持回滚,也无法手动调方法回滚,该如何解决?   几种可能的方案: 方案一:将方法C的执行放到最后,保证其他方法执行成功后再执行方法C,这种方案不需要处理回滚; 方案二:使用分布式事务...

  6jfwa0vkhNMg   2023年11月01日   95   0   0 架构设计

什么是集群 能够对外提供相同服务的多台服务器组成的集合。 为什么要建立集群 1.从可用性角度考虑,如果只有一台机器提供服务,一旦出现故障,那么整个服务不可用。 2.从容量角度考虑,当服务访问量上升,单台机器无法支撑访问量时,必然要扩容。 如何建立集群 当有新的节点要加入集群时,客户端可以任选集群中的一个节点,比如A,跟新节点B通过握手建立连接,然后A会将B加入的信息通过Gossip消息通知给集群中的其他节点,其他节点也通过握手跟新节点建立连接。   这里面有几个问题需要回答: 如何进行握手? 如何进行集群状态同步? 如何保存/寻址键值对? 如何进行扩容? 如何进行故障转移? &n...

  6jfwa0vkhNMg   2023年11月01日   111   0   0 NoSQL
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~