深圳幻海软件技术有限公司 欢迎您!

  • 每次都碰到面试官问我如何保证Kafka不丢失消息,快哭了

    一、背景引入这篇文章,我们来聊聊在线上生产环境使用消息中间件技术的时候,从前到后的全链路到底如何保证数据不能丢失。这个问题,在互联网公司面试的时候高频出现,而且也是非常现实的生产环境问题。如果你的简历中写了自己熟悉MQ技术(RabbitMQ、RocketMQ、Kafka),而且在项目里有使用的经验,

  • MQ保证读写消息不丢失,这个你都不会就等着被开除吧...

    一、背景引入这篇文章,我们来聊聊在线上生产环境使用消息中间件技术的时候,从前到后的全链路到底如何保证数据不能丢失。这个问题,在互联网公司面试的时候高频出现,而且也是非常现实的生产环境问题。如果你的简历中写了自己熟悉MQ技术(RabbitMQ、RocketMQ、Kafka),而且在项目里有使用的经验,

  • 别冒冒失失在项目里用MQ,里面很多坑都不知道肯定不行!

    一前情回顾上篇文章​​《做了几年开发,你知道自己的系统为什么要用消息中间件吗?》​​,给大家讲了讲消息中间件引入系统架构的作用,主要是解决哪些问题的。其比较常见的实践场景是:复杂系统的解耦复杂链路的异步调用瞬时高峰的削峰处理二、正式开始这篇文章给大家讲讲,如果你在系统架构里引入了消息中间件之后,会有

  • 阿里面试官就是厉害,居然问我分布式事务怎么实现高可用?

    一、写在前面​上一篇文章咱们聊了聊TCC分布式事务,对于常见的微服务系统,大部分接口调用是同步的,也就是一个服务直接调用另外一个服务的接口。这个时候,用TCC分布式事务方案来保证各个接口的调用,要么一起成功,要么一起回滚,是比较合适的。但是在实际系统的开发过程中,可能服务间的调用是异步的。也就是说,

  • 一次教会你如何解决RabbitMQ消息丢失问题

    一、前情提示上篇文章:《​一篇全面而且透彻的RabbitMQ性能优化指南​!》,我们分析了RabbitMQ开启手动ack机制保证消费端数据不丢失的时候,prefetch机制对消费者的吞吐量以及内存消耗的影响。通过分析,我们知道了prefetch过大容易导致内存溢出,prefetch过小又会导致消费吞

  • 用了MQ消息中间件后,我开始后悔了

    一、前情回顾上篇文章《​​为什么要使用MQ消息中间件?这几个问题必须拿下!​​》,给大家讲了讲消息中间件引入系统架构的作用,主要是解决哪些问题的。其比较常见的实践场景是:复杂系统的解耦复杂链路的异步调用瞬时高峰的削峰处理二、正式开始这篇文章给大家讲讲,如果你在系统架构里引入了消息中间件之后,会有哪些

  • RabbitMQ是如何收发消息的?

    一、前情回顾针对那种工作年限比较长的资深的同学,可能会开始就候选人所在公司使用的消息中间件,深入里面的技术细节,比如让你聊聊RocketMQ的架构原理和核心源码。但是另外一种面试风格,会先从你们的项目和业务入手进行考察,比如像下面这样:消息中间件在你们生产项目里具体是哪个业务场景下落地的?这个业务场

  • 用RocketMQ实现可靠消息最终一致性方案,yyds

    写在前面对于常见的微服务系统,大部分接口调用是同步的,也就是一个服务直接调用另外一个服务的接口。这个时候,用TCC分布式事务方案来保证各个接口的调用,要么一起成功,要么一起回滚,是比较合适的。但是在实际系统的开发过程中,可能服务间的调用是异步的。也就是说,一个服务发送一个消息给MQ,即消息中间件,比

  • 为什么要使用MQ消息中间件?这几个问题必须拿下

    引言这篇文章开始,我们把消息中间件这块高频的面试题给大家说一下,也会涵盖一些MQ中间件常见的技术问题。假如面试官看你简历里写了MQ中间件的使用经验,很可能会有如下问题:你们公司生产环境用的是什么消息中间件?为什么要在系统里引入消息中间件?引入消息中间件之后会有什么好处以及坏处?好,我们一个个的来分析

  • 一次线上事故,我顿悟了异步的精髓

    在高并发的场景下,异步是一个极其重要的优化方向。前段时间,生产环境发生一次事故,笔者认为事故的场景非常具备典型性 。写这篇文章,笔者想和大家深入探讨该场景的架构优化方案。希望大家读完之后,可以对异步有更深刻的理解。1.业务场景老师登录教研平台,会看到课程列表,点击课程后,课程会以视频的形式

  • 记Kafka消费的一次生产故障处理过程

    大家好,欢迎来到Tlog4J课堂,我是Jensen。记录今天发生的一次生产故障以及故障处理全过程。问题背景需求背景是这样的:产品要求订单过售后期后,资金平台需要对这些订单进行结算,并把虚拟资产入账到下单客户的虚拟账户。因为我们是按业务领域拆分多个微服务的,为了解耦订单与资金平台,我们选择了MQ异步消

  • 消息服务:MQ使用场景与选型对比

    在前面的文章中,我们实现了用户微服务、商品微服务和订单微服务之间的远程调用,并且实现了服务调用的负载均衡。也基于阿里开源的Sentinel实现了服务的限流与容错,并详细介绍了Sentinel的核心技术与配置规则。简单介绍了服务网关,并对SpringCloudGateway的核心架构进行了简要说明,也

  • 为什么说,MQ,是互联网架构的解耦神器?

    什么是耦合?耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。感官上,怎么发现系统中的耦合?作为技术人,每每在心中骂上下游,骂兄弟部门,“这个东西跟我有什么关系?为什么需要我来配合做这个事情?”。明明不应该联动,却要

  • 程序员经典面试题,消息队列怎么用,才能保证万无一失

     据不完全统计,工业级别的代码,几乎有三分之二都是在处理异常情况。跟很多面试官聊过,在面试中如何考察一个应试者的思维是否周全,比较好的方法就是考察他是否能够思考周全,想到所有异常情况的处理方案。相信大家都使用过消息MQ,他可以很好地进行系统解耦,减低变成的复杂度,又可以进行削峰,增加系统在

  • 六边形架构和分层架构的区别

    作为一个后端程序员,MVC三层架构的模式相信大家都不会陌生,三层分别从上而下排布,只能由上层调用下层。一般越往下层越通用,越上层越细节。随着某些核心业务的访问量发展,通常我们需要去进行优化的措施,比如加缓存,加MQ,换数据源缓存可选redis,memcacheMQ可选kafka,rocketmq,r

  • Java中牛逼哄哄的消息队列到底有什么用?

     最近小千会听到很多学员说,在面试大型互联网公司的时候,很可能会被问到消息队列的问题:在何种场景下使用了消息中间件?为什么要在系统里引入消息中间件?如何实现幂等?链式调用是我们在写程序时候的一般流程,为了完成一个整体功能,会将其拆分成多个函数(或子模块),比如模块A调用模块B,模块B调用模

  • 高速飞机上换引擎,MQ如何实现平滑迁移?

     前几天,杨紫琼同学在知识星球提问,说公司要切换MQ,从一个旧的服务商升级为新的服务商,问有没有什么好方案。这个需求估计还挺普遍的,这里分享一些经验。一、MQ架构简述如上图,使用MQ异步通信,一般分为三层:消息发送方:使用MQ客户端生成消息。复制MQ-client::SendMsg(top

  • 扪心自问,你真的熟练掌握MQ了吗?

    大家平时也有用到一些消息中间件(MQ),但是对其理解可能仅停留在会使用API能实现生产消息、消费消息就完事了。图片来自pexels对MQ更加深入的问题,可能很多人没怎么思考过。比如,你跳槽面试时,如果面试官看到你简历上写了熟练掌握消息中间件。那么很可能给你发起如下4个面试连环炮:为什么要使用MQ?使

  • 90%的Java程序员,都扛不住这波消息中间件的面试四连炮!

    本文经授权转自公众号:石杉的架构笔记概述大家平时也有用到一些消息中间件(MQ),但是对其理解可能仅停留在会使用API能实现生产消息、消费消息就完事了。对MQ更加深入的问题,可能很多人没怎么思考过。比如,你跳槽面试时,如果面试官看到你简历上写了,熟练掌握消息中间件,那么很可能给你发起如下4个面试连环炮

  • 面试大杀器:为什么一定要用MQ中间件?

     这篇文章我们会把消息中间件这块高频的面试问题来给大家说一下,也会涵盖一些MQ中间件常见的技术问题。假如说面试官看你简历里写了MQ中间件的使用经验,很可能会有如下的问题:你们公司生产环境用的是什么消息中间件?为什么要在系统架构中引入消息中间件?引入消息中间件之后会有什么好处以及坏处?好,下

推荐阅读