`
陈睿mikechen
  • 浏览: 6216 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

阿里P8架构师谈:消息中间件介绍、典型使用场景、以及使用原则

阅读更多

大型分布式架构里一定会涉及到消息中间件,今天先谈谈消息中间件。

常用的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。

一、kafka
1、不完全符合jms规范,注重吞吐量,类似udp 和 tcp

2、一般做大数据吞吐的管道 我们现在的用途就是负责在各个idc之间通信

3、量大对数据不是百分之百保证的,会有数据丢失,不是百分百送达(amq和rmq等有重发机制,而kafka没有);在吞吐量有提升 ,在这方面就得有牺牲, 所以kafka适合大数据量流转, 比如日志数据 比如用作统计的数据。

二、activeMQ
ActiveMQ居于两者之间,类似于ZemoMQ,它可以部署于代理模式和P2P模式。类似于RabbitMQ,它易于实现高级场景,而且只需付出低消耗。它被誉为消息中间件的“瑞士军刀”。

三:RocketMQ(阿里官方指定消息中间件)
RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。

消息中间件使用的典型场景优四个

1.典型的异步处理

2.应用解耦

3.流量削锋

4.消息通讯四个场景

比如:今日头条的私信就是一个典型的消息通讯场景,因为消息通讯的数据不需要即使立即同步回来,不算是核心数据,可以延时通过异步的消息发送,这样可以降低系统的负荷。

所以,我们在架构设计的时候,有一个原则就是:消息原则上都是异步消息发送,除非涉及到交易的情况才考虑数据即使同步,否则能异步的都采用异步消息设计。

再比如:流量削锋的典型场景就有阿里的双11秒杀、团购抢购活动等。

应用场景:秒杀活动,一般会因为流量过大,导致流量暴增,应用挂掉。为解决这个问题,一般需要在应用前端加入消息队列。

a、可以控制活动的人数

b、可以缓解短时间内高流量压垮应用

用户的请求,服务器接收后,首先写入消息队列。假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面。

秒杀业务根据消息队列中的请求信息,再做后续处理。

总结:
1.消息中间件的四个典型场景:典型的异步处理、应用解耦、流量削锋、消息通讯四个场景。

2.能异步就不要同步:能异步的消息原则都尽量采用异步的方式。

3.如果消息性能要求高,用rocketMQ与kafka可以更优,rocketMQ与kafka 比较就看技术选型了,各有利弊,看业务需要。

4.实现语言来看,RabbitMQ(阿里官方指定消息中间件)最高,原因是它的实现语言是天生具备高并发高可用的erlang语言。综合来看,RabbitMQ是首选。

5.典型的秒杀活动、抢购、消息通讯、邮件发送、电话短信等都是典型的采用消息中间件的业务场景。

本文由优知学院youzhixueyuan.com陈睿|mikechen原创,如需转载,须标明文章原始出处和作者。
[/size][/size]


  • 大小: 30.7 KB
  • 大小: 9.2 KB
分享到:
评论

相关推荐

    阿里P8架构师谈:高并发架构解决方案总结

    用户角度:网站打不开服务器雪崩:通过表设计,如:记录表添加唯一约束,数据处理逻辑使用事物防止并发下的数据错乱问题。通过服务端锁进程防止包并发下的数据错乱问题。这里主要讲述的是在并发请求下的数据逻辑处理...

    阿里P8 架构师整理Java学习笔记.pdf

    - **本地方法栈**: 与虚拟机栈类似,区别在于本地方法栈为虚拟机使用到的Native方法服务。 - **堆(Heap)**: 所有线程共享的内存区域,在虚拟机启动时创建。主要用于存放对象实例。 - **新生代(Young Generation...

    P8架构师之路学习资料

    P8架构师之路学习资料:内容包含:(1):大数据脑图,大数据体系学习路线,从0-1学习大数据; (2) : Java架构图,Java体系学习路线,从0-1学习Java; (3) :阿里P8级别,岗位需求能力大纲,对着大纲学习,逐步提升...

    马士兵mca架构师p8大数据架构百度网盘资源马士兵教育金三银四突击面试.rar

    “P8架构师”是阿里巴巴内部的职级体系,代表了高级架构师的水平。课程中,马士兵将分享P8级别的架构师应具备的技术深度、视野宽度以及领导力,帮助学员向这一目标迈进。 “Java架构师”部分将深入讲解Java技术栈在...

    程序员们疯传的阿里P8呕心沥血总结:10万字JAVA面试总结分享《10万字总结.pdf》

    在阿里内部上班,直接去取经,然后就得到了这个号称:《阿里P8呕心沥血10万字的JAVA面试资料》 里面总共含了基础篇、JVM 篇、多线程 &并发篇、Spring 篇、MyBatis 篇、Spring Boot 篇、MySQL 篇、Redis 篇、Spring ...

    阿里P8左耳朵耗子大师谈编程

    "阿里P8左耳朵耗子大师谈编程" 本文是阿里P8左耳朵耗子大师的编程经验分享,涵盖了程序员技术练级攻略、技术人员的发展之路、工程师文化、系统架构设计、编程语言选择等多个方面的知识点。 首先,左耳朵耗子大师...

    雕琢百万年薪架构师之路 P8级别JAVA大神班 数据实践+开源框架+弹性云+架构设计

    通过上述详细介绍可以看出,“雕琢百万年薪架构师之路 P8级别JAVA大神班”不仅涵盖了JAVA编程从基础到高级的全面内容,还特别注重实践能力的培养以及对未来技术趋势的把握。无论是对于个人技能提升还是职业发展前景...

    P7P8架构师带你剖析业务架构与业务系统重构实践 实战电商与营销业务新风暴NX

    ### 业务架构与业务系统重构实践 #### 一、业务架构与业务系统重构的重要性 在当前快速变化的商业环境中,企业面临着不断增长的市场需求和技术挑战。为了更好地应对这些挑战,提高企业的竞争力,业务架构和业务...

    2017年系统架构师考试综合版.pdf

    ### 2017年系统架构师考试综合版知识点总结 #### 1. 流水线结构中的吞吐率与加速比计算 - **题目背景**:本题考察了计算机体系结构中的流水线原理,特别是在流水线结构下指令执行时间和吞吐率的计算方法。 - **...

    架构师面试和晋升.pdf

    【架构师面试与晋升】是IT行业内一个重要的主题,涉及到技术专家从初级到高级的晋升路径,特别是如何准备阿里巴巴集团内的架构师面试。晋升过程通常包括对架构能力的考核,这是决定能否成功晋升的关键因素。 架构...

    EPLAN P8使用入门

    本教程将深入介绍EPLAN P8的使用入门,帮助初学者快速掌握其基本功能和工作流程。 1. **界面与布局** - EPLAN P8的界面直观,采用多窗口布局,包括项目树、图纸区域、属性面板和工具栏。熟悉这些元素对于高效工作...

    阿里P8产品专家岗位面试流程全解析:10个问题6大解读.docx

    ### 阿里P8产品专家岗位面试流程全解析 #### 一、应聘渠道及解读 在应聘阿里P8产品专家岗位时,选择了BOSS直聘作为应聘渠道。这一选择表明,对于较高层级的产品经理职位来说,直接由用人部门领导进行沟通可能会...

    互联网大厂java程序员,架构师必备知识点

    这份由头部大厂P8架构师整理的内部资料涵盖了面试准备和实际工作中的关键内容,以下是其中的重点知识领域: 1. **JVM(Java虚拟机)**:JVM是Java程序运行的基础,理解其工作原理对于优化代码性能至关重要。 - **...

    2017年系统架构师考试科目一:综合知识1

    《2017年系统架构师考试科目一:综合知识1》 在系统架构师的考试中,理解和掌握计算机系统的基础知识至关重要。本部分主要涵盖了流水线技术、直接存储器访问(DMA)、精简指令系统计算机(RISC)的特点、实时操作...

    Eplan P8参考手册

    尽管提供的参考资料是英文版的,但通过本篇文章将对Eplan P8的基本功能、使用技巧等进行详细介绍,以便于新手快速上手。 #### 二、Eplan P8核心功能解析 ##### 1. 项目创建与管理 - **项目创建**:在Eplan P8中,...

    2014年-2017年架构师真题

    根据给定文件的信息,我们可以从中提炼出多个重要的IT知识点,涉及计算机体系结构、实时操作系统、数据库理论、算法设计以及网络技术等领域。下面是针对文件中提到的知识点的详细解释: ### 流水线结构与吞吐率 ##...

    EPLAN_P8初学者手册(中文)

    - **插入连接符号“中断点”**:介绍“中断点”连接符号的使用场景及其在多页设计中的作用。 - **生成关联参考**:讲解如何自动为元件生成关联编号,以确保文档的一致性和准确性。 以上内容是基于《EPLAN P8初学者...

    软考系统架构设计师部分计算题解析

    综上所述,软考系统架构设计师涉及的计算题主要涵盖了流水线技术的基本概念、最大吞吐率和加速比的计算方法以及操作系统中 PV 操作和前趋图的相关知识点。通过对这些知识点的学习和理解,可以更好地应对软考系统架构...

Global site tag (gtag.js) - Google Analytics