前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大厂面试系列(九):MQ与分布式事务

大厂面试系列(九):MQ与分布式事务

作者头像
zhaozhen
发布2021-07-15 10:37:22
7430
发布2021-07-15 10:37:22
举报

MQ和分布式事务

MQ

  • 项目中RabbitMQ实现了at least once,包括mq反馈provider,消息持久化,consumer主动反馈mq.线程池消费防止消息积压等
  • mq 通知时,消费者没消费到怎么办
  • 简单聊聊消息中间件?
  • 你了解那些具体的消息中间件产品?
  • mq的消费端是怎么处理的?整理一下你的消费端的整个处理逻辑流程,然后说说你的ack是在哪里返回的。按照你这样画的话,如果数据库突然宕机,你的消息该怎么确认已经接收?那如果发送端的服务是多台部署呢?你保存消息的时候数据库就一直报唯一性的错误?
  • rocketmq用在什么场景。如果消费者组A下面有两个消费者组A1,A2,问消费者A1和A2能否消费不同的topic ?rocketmq如何保证的事务。
  • kafka,activemq,rabbitmq,rocketmq都有什么优点,缺点啊?
  • 如果让你写一个消息队列,该如何进行架构设计啊?说-下你的思路
  • 用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗 ?MQ系统的数据如何保证不丢失
  • mq 通知时,消费者没消费到怎么办
  • mq的p2p模式
  • mq消息的幂等性如何保证?mq如何保证顺序消费?
  • MQ怎样保证消息的可靠性以及当时如何做消息幂等处理的
  • 如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?如何避免消息重复投递或重复消费?消息基于什么传输?消息如何分发?消息怎么路由?如何确保消息不丢失?使用RabbitMQ有什么好处?rabbitmq的集群。mq的缺点

分布式事务

首先来一个具体的解决方案的示例

代码语言:javascript
复制
       *  1、两阶段提交(2PC) 第一阶段:事务协调器要求每个涉及到事务的数据库预提交(precommit)此操作,并反映是否可以提交. 第二阶段:事务协调器要求每个数据库提交数据。优点:尽量保证了数据的强一致,适合对数据强一致要求很高的关键领域。(其实也不能100%保证强一致) 缺点:实现复杂,牺牲了可用性,对性能影响较大,不适合高并发高性能场景,如果分布式系统跨接口调用,目前 .NET 界还没有实现方案。
       * 2、补偿事务(TCC) 针对每个操作,都要注册一个与其对应的确认和补偿(撤销)。Try、Confirm、Cancel 优点:跟2PC比起来,实现以及流程相对简单了一些,但数据的一致性比2PC也要差一些 缺点:缺点还是比较明显的,在2,3步中都有可能失败。TCC属于应用层的一种补偿方式,所以需要程序员在实现的时候多写很多补偿的代码,在一些场景中,一些业务流程可能用TCC不太好定义及处理。
       * 3、本地消息表(异步确保) 核心思想是将分布式事务拆分成本地事务进行处理,消息生产方,需要额外建一个消息表,并记录消息发送状态。消息表和业务数据要在一个事务里提交,也就是说他们要在一个数据库里面。然后消息会经过MQ发送到消息的消费方。如果消息发送失败,会进行重试发送。优点:一种非常经典的实现,避免了分布式事务,实现了最终一致性。在 .NET中 有现成的解决方案。缺点:消息表会耦合到业务系统中,如果没有封装好的解决方案,会有很多杂活需要处理。
       * 4、MQ事务消息 RocketMQ支持,RabbitMQ 和 Kafka 都不支持,一次发送消息和一次确认消息,生产方需要实现一个check接口(确认消息或者回滚) 优点:实现了最终一致性,不需要依赖本地数据库事务。缺点:实现难度大,主流MQ不支持,没有.NET客户端,RocketMQ事务消息部分代码也未开源。
       * 5、Sagas事务模型 长时间运行的事务,该模型其核心思想就是拆分分布式系统中的长事务为多个短事务,或者叫多个本地事务,然后由 Sagas 工作流引擎负责协调,如果整个流程正常结束,那么就算是业务成功完成,如果在这过程中实现失败,那么Sagas工作流引擎就会以相反的顺序调用补偿操作,重新进行业务回滚。
  • 分布式事务了解吗?有哪些处理方法?
  • 项目中有分布式事务处理吗?有哪些常见的分布式事务处理方式?说一下你们在项目中怎么用的。
  • 分布式情况下如何保证事务。如何设计实现一个分布式事务
  • 分布式事务的各种方案及你的最佳方案
  • 分布式事务是什么
  • 什么是分布式事务?分布式事务如何保证数据一致性?
  • 分布式事务知道吗?你们怎么解决的?TCC?那若出现网络原因,网络连不通怎么办啊
  • 对分布式事务的理解
  • 分布式事务的原理,如何使用分布式事务
  • 多个服务之间调用的数据一致性问题,A服务中调用B服务 、C服务,B成功 C失败怎么解决?其实归根到底就是分布式事务的数据一致性解决方案,失败了数据怎么回滚
  • 分布式事务的实现方式,分布式锁,分布式一致性,redis分布式锁;
  • 分布式事务了解吗?你们项目中都用到了哪些分布式事务?都有哪些优缺点?
  • 简单实现分布式事务
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微瞰技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MQ和分布式事务
    • MQ
      • 分布式事务
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档