阿里架构师介绍消息传递机制

消息传输


  • notify

  • metaQ

    Notify核心机制


  • 集群化

    • 发送方是一个集群

    • 处理方也是一个集群

    • 发送方和处理方没有对应关系,不需要知道消息的先后顺序—-顺序不care场景,需要应用程序做到幂等

  • 保证消息不丢
    • mysql双写

    • 确保都城功才成功

    • 交易日志对账

    • 多重级别
      • File

      • Oracle

      • MySql

      • Mysql+复制

  • 分布式事务(half消息)
    • 等着应用写成功和应用一起提交

    • 这个是保障应用事务和消息的一致性

    • 用的地方不多,与支付宝交易模式类似

    • 消息和事务本身实际是两阶段提交
      • 异常情况是写成功,但反馈的消息是失败,此时需要做补偿

      • 有个观察者,遇到异常时,通过他来进行补偿,,需要仔细看下两阶段事务
        • 观察者判断异常时间是该提交还是回滚

      • 要求随时能回到原状态,应用要记录操作,时间戳,这里要自己做,实现redo和undo

  • 推模式和堆消息

    • 推模式focus
      • 什么时候消息算发送成功
        • 等待接受者回掉,才能从notify中删除

      • 不发送成功应该如何处理
        • 会重复投递

    • 堆积
      • 为什么产生
        • 业务bug导致

        • 消费者太少

      • 堆积后怎么办
        • 有电话催你,问是否可以删除

        • 想办法恢复处理能力

    • 典型应用场景
      • 200个下游系统
        • 保障主流程提交后立刻返回成功

        • 后续的200个下游系统异步完成他们要完成的功能

    • 有topic机制
      • 一个消息发出去,notify负责发给订阅者

      • 同一个topic不保证顺序,消息产生者控制topic生成的顺序

        MetaQ核心机制


  • 拉模式

  • 保证消息不丢:
    • 异步复制文件方式,类似mysql

时间: 2024-10-24 16:19:39

阿里架构师介绍消息传递机制的相关文章

你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和Spring Cloud.各大互联网公司也有自研的微服务框架,但其模式都于这二者相差不大. 微服务主要的优势如下: 1.降低复杂度 将原来偶合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累.每一个微服务专

听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

转自:https://baijiahao.baidu.com/s?id=1600174787011483381&wfr=spider&for=pc 微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和Spring Cloud.各大互联网公司也有自研的微服务框架,但

从普通JAVA程序员到阿里架构师,他用了六年

工作年限:8 年服务公司:4 家(含四大门户中的两家)最近职业:Java 架构师职场关键词:社交平台.高并发系统架构设计.技术团队管理.多款从零到一的产品城市! 六年间,这位职人呆过四大门户中的两家,完成了工程师到架构师的蜕变.经手多款从零到一产品的开发和增长,也经历国内最大社交平台亿级流量和用户的架构设计及优化工作.工作上思路清晰.认真负责,是同事们心目中优秀 Problem Solver. 问:介绍一下你自己? 答:我 2008 年硕士毕业后,前 2 年在一家传统 IT 公司,最近 6 年在

阿里架构师告诉你最新Java架构师学习路线图

1.Java架构师是什么?要想往Java架构师的方向发展首先要知道Java架构师是什么?Java架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物.一个Java架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单.Java架构师在软件开发的整个过程中起着很重要的作用.说的详细一些,架构师就是确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节.扫清主要难点的技术人员.主要着眼于系统的"技术实现

月薪80k阿里架构师漫谈他是如何从一名小码农走到今天这一步。

01 刚当程序员时,我是属于那种勤勤恳恳类型的员工,工作态度用认真来形容不为过,每天我几乎是团队里最早到公司,又最晚下班的一个.而组员张工一般情况下都是准时上下班的,即使项目进度比较紧急,他也很少加班,除非是有特殊情况,他才加班. 要是按勤奋程度和工作时间长短来衡量,我想我比张工积极多了.按理说,我这么积极,工作量应该比张工多才对,其实不然,领导安排给我的工作任务和张工的任务相比,我比他还要少. 张工之前是做java服务端的,后来自学了Android移动开发,再后来又自学了iOS移动开发,那时他

阿里架构师分享:一线程序员该如何面对中年危机?

中年危机是真实存在的,即便有技术傍身,在一些特定阶段及环境下,还是难免对未来产生质疑与焦虑.一线程序员该如何面对中年危机呢?这是绝大多数程序员的困惑,这也是绝大多数职场人的困惑.希望大家能通过此篇找到一些方法. 一.程序员中年危机的焦虑 说到程序员的"中年危机",这四个字承载着太多焦虑,而焦虑的原因主要有以下三点: 1.上有老下有小.左有房贷右有车贷,职业选择经不起任性: 2.自己不断增长的期望和实现之间的差距越来越大: 3.行业从业者更加年轻化,互联网寒冬人才需求缩减,自己却一直停滞

玩转redis持久化,阿里架构师给你来一篇方案介绍

一.基本介绍 本次演示使用的redis版本是3.2.100,操作系统是win10. redis支持两种持久化方案,RDB和AOF,前者是默认打开的,后者需要手动开启.我们通过配置文件可以验证这一点, RDB默认开启 save 900 1 save 300 10 save 60 10000 这三条配置是RDS触发快照的条件,它们的意思分别是: 900秒内如果有一条写入,则产生快照 300秒内如果有1000次写入,则产生快照 60秒内如果有10000次写入,则产生快照 当然,触发rdb快照的条件不止

阿里架构师带你深入浅出jvm

本文跟大家聊聊JVM的内部结构,从组件中的多线程处理,JVM系统线程,局部变量数组等方面进行解析 JVM JVM = 类加载器(classloader) + 执行引擎(execution engine) + 运行时数据区域(runtime data area) 下面这幅图展示了一个典型的JVM(符合JVM Specification Java SE 7 Edition)所具备的关键内部组件. 组件中的多线程处理 多线程处理"或"自由线程处理"指的是一个程序同时执行多个操作线程

记录一次阿里架构师全程手写Spring MVC 原

人见人爱的Spring已然不仅仅只是一个框架了.如今,Spring已然成为了一个生态.但深入了解Spring的却寥寥无几.这里,我带大家一起来看看,我是如何手写Spring的.我将结合对Spring十多年的研究经验,用不到400行代码来描述SpringIOC.DI.MVC的精华设计思想,并保证基本功能完整. 首先,我们先来介绍一下Spring的三个阶段,配置阶段.初始化阶段和运行阶段(如图): 配置阶段:主要是完成application.xml配置和Annotation配置. 初始化阶段:主要是