大型分布式架构里一定会涉及到消息中间件,今天先谈谈消息中间件。
常用的消息队列有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
分享到:
相关推荐
用户角度:网站打不开服务器雪崩:通过表设计,如:记录表添加唯一约束,数据处理逻辑使用事物防止并发下的数据错乱问题。通过服务端锁进程防止包并发下的数据错乱问题。这里主要讲述的是在并发请求下的数据逻辑处理...
- **本地方法栈**: 与虚拟机栈类似,区别在于本地方法栈为虚拟机使用到的Native方法服务。 - **堆(Heap)**: 所有线程共享的内存区域,在虚拟机启动时创建。主要用于存放对象实例。 - **新生代(Young Generation...
P8架构师之路学习资料:内容包含:(1):大数据脑图,大数据体系学习路线,从0-1学习大数据; (2) : Java架构图,Java体系学习路线,从0-1学习Java; (3) :阿里P8级别,岗位需求能力大纲,对着大纲学习,逐步提升...
在阿里内部上班,直接去取经,然后就得到了这个号称:《阿里P8呕心沥血10万字的JAVA面试资料》 里面总共含了基础篇、JVM 篇、多线程 &并发篇、Spring 篇、MyBatis 篇、Spring Boot 篇、MySQL 篇、Redis 篇、Spring ...
EPLAN P8电气部件库:涵盖低压电气、控制系统设计多款品牌型号,高效整理,文件小巧便捷,附送软件与PLC系列及开关设备清单,EPLAN P8电气部件库:涵盖低压电气、控制系统设计多款品牌型号,高效整理,小文件快速导入...
"阿里P8左耳朵耗子大师谈编程" 本文是阿里P8左耳朵耗子大师的编程经验分享,涵盖了程序员技术练级攻略、技术人员的发展之路、工程师文化、系统架构设计、编程语言选择等多个方面的知识点。 首先,左耳朵耗子大师...
通过上述详细介绍可以看出,“雕琢百万年薪架构师之路 P8级别JAVA大神班”不仅涵盖了JAVA编程从基础到高级的全面内容,还特别注重实践能力的培养以及对未来技术趋势的把握。无论是对于个人技能提升还是职业发展前景...
部件库、宏、图表图框等全方位资源,自动化工程师必备工具集,附送CAD工具箱与选型计算对照表及电路仿真工具,eplan2.7p8全能库,部件库 宏 部件库模板 图表图框 符号库,每个库都有详细使用视频,本人自动化工程师...
### 业务架构与业务系统重构实践 #### 一、业务架构与业务系统重构的重要性 在当前快速变化的商业环境中,企业面临着不断增长的市场需求和技术挑战。为了更好地应对这些挑战,提高企业的竞争力,业务架构和业务...
### 2017年系统架构师考试综合版知识点总结 #### 1. 流水线结构中的吞吐率与加速比计算 - **题目背景**:本题考察了计算机体系结构中的流水线原理,特别是在流水线结构下指令执行时间和吞吐率的计算方法。 - **...
EPLAN P8电气部件库:涵盖低压电气、控制系统设计多款品牌型号,高效整理,小文件快速导入,附PLC与传感器等全套设备资源,附送软件及电涌保护器全系列。,EPLAN P8部件库 EPLAN P8部件库,包含低压电气 控制系统设计...
【架构师面试与晋升】是IT行业内一个重要的主题,涉及到技术专家从初级到高级的晋升路径,特别是如何准备阿里巴巴集团内的架构师面试。晋升过程通常包括对架构能力的考核,这是决定能否成功晋升的关键因素。 架构...
本教程将深入介绍EPLAN P8的使用入门,帮助初学者快速掌握其基本功能和工作流程。 1. **界面与布局** - EPLAN P8的界面直观,采用多窗口布局,包括项目树、图纸区域、属性面板和工具栏。熟悉这些元素对于高效工作...
### 阿里P8产品专家岗位面试流程全解析 #### 一、应聘渠道及解读 在应聘阿里P8产品专家岗位时,选择了BOSS直聘作为应聘渠道。这一选择表明,对于较高层级的产品经理职位来说,直接由用人部门领导进行沟通可能会...
EPLAN P8部件库:低压电气控制系统设计常用pin牌型号,高效助力电气控制行业工作,小文件轻松导入,专业软件免费赠送!,EPLAN P8部件库:低压电气控制系统设计常用pin牌型号集成,提升效率,轻松导入仅几十M文件,...
这份由头部大厂P8架构师整理的内部资料涵盖了面试准备和实际工作中的关键内容,以下是其中的重点知识领域: 1. **JVM(Java虚拟机)**:JVM是Java程序运行的基础,理解其工作原理对于优化代码性能至关重要。 - **...
EPLAN P8部件库:Pai型号低压电气控制系统设计常用品,高效导入,小巧便捷,专业工具助力高效设计!,EPLAN P8部件库之Pai型号:低压电气控制系统设计常用品,高效导入小文件,便捷实用,EPLAN P8部件库:包含低压电气...
《2017年系统架构师考试科目一:综合知识1》 在系统架构师的考试中,理解和掌握计算机系统的基础知识至关重要。本部分主要涵盖了流水线技术、直接存储器访问(DMA)、精简指令系统计算机(RISC)的特点、实时操作...