写点什么

叮咚!你有一份 RabbitMQ 优雅使用指南待查看

  • 2019-10-21
  • 本文字数:1290 字

    阅读完需:约 4 分钟

叮咚!你有一份RabbitMQ 优雅使用指南待查看

消息中间件在互联网应用中十分广泛,标准的用法是生产者(Producer)生产消息发送到队列,消费者(consumer)从队列中取出并处理消息,生产者无需关心谁来消费,消费者也不用关心消息的来源,从而达到解耦的目的。


RabbitMQ

RabbitMQ 是当前最流行的消息引擎之一,是实现了 AMQP(高级消息队列协议)的消息中间件中的一种,服务器端用 Erlang 语言编写,最初起源于金融系统,在可靠性、灵活性、功能的多样性等方面均有着出色的表现。


RabbitMQ 在消息中间件的基础用法上,增加了交换机(Exchange),RabbitMQ 通过 Exchange 将消息路由至消息队列。队列通过路由键值与 Exchange 进行绑定,当 Producer 发送消息时,会指定 Exchange 与路由键值,Exchange 根据路由键值进行匹配,匹配上则将消息路由至一个或多个绑定的队列中,未匹配上的消息将会被丢弃。


RabbitMQ 的组成部分如下图所示:



MQ 用于应用解耦、流量削峰、异步处理等应用场景,为用户提供消息生产消费、发布订阅、消息持久化、消息确认机制、事物消息等功能。那么哪些情况下适合选用 RabbitMQ 呢?RabbitMQ 的优势在于消息功能丰富及多协议支持,如支持 Push/Pull 的消费模式、支持优先级队列、支持延迟队列等;在消息多协议上,除了 AMQP 外,还支持 MQTT、STOMP 等协议。所以,对于消息处理要求功能灵活的应用来说,RabbitMQ 是非常适合的选择。

为什么选择华为云 RabbitMQ

近日,华为云分布式消息服务 DMS 在已经支持 Kafka 的基础上,正式发布了 RabbitMQ 消息引擎,基于最新的 RabbitMQ 3.7.X 版本,提供全托管式的云上 RabbitMQ 服务。



RabbitMQ 消息引擎专注于应用解耦、流量削峰、异步处理等应用场景,为用户提供消息生产消费、发布订阅、消息持久化、消息确认机制、事物消息等功能。在单体应用中,业务流程耦合会导致系统对用户的请求响应慢,可以将系统拆分为多个子系统,用 RabbitMQ 作为子系统间的异步通信通道进行系统解耦,从而有效提升整个系统的响应速度。


常见的秒杀或团抢活动,经常会发生因为流量突然暴增,导致应用不能正常访问。为了解决这样的问题,就需要在应用的前端加入消息队列。服务器在接收到用户的请求之后,先把请求放到消息队列中,秒杀的业务模块根据消息队列的请求信息,做后续的处理。如果遇到消息队列长度超出最大的限制,可以直接抛弃用户请求或者跳转到友好的提示页面,从而有效地控制活动的参与人数,提升用户体验,并且大幅缓解瞬时流量洪峰对应用的压力。


华为云 RabbitMQ 具有如下特点,让应用上云更简单,运行更高效:


  • 丰富消息类型

  • 广播消息、延时消息、消息重投等消息特性,使应用可以灵活控制异步通信的时间。

  • 高并发

  • 单队列最高性能至 10 万 TPS,并且可以通过队列数平滑扩展能力,有效提升整个系统的并发能力。

  • 低时延

  • 消息投递时延可至毫秒级,保证消息的及时性。


华为云 RabbitMQ 消息引擎,完全兼容开源,提供独占资源,保证队列高性能,为企业和互联网应用提供省心、省力的消息中间件,减少开发、运维的成本,避免了企业自建中间件时所面临的安全、运维等问题。


本文转载自公众号中间件小哥(ID:huawei_kevin)。


原文链接:


https://mp.weixin.qq.com/s/MmEVlWM9hoxOuvYJiRAKJQ


2019-10-21 11:061795

评论

发布
暂无评论
发现更多内容

新一代云原生的微服务架构分享

鲸品堂

云原生

Flutter 中获取屏幕以及 Widget 的宽高,flutter小程序开发

android 程序员 移动开发

esp8266~lwip突破MTU最大1500限制,apt编译时期自动生成代码&动态类加载

android 程序员 移动开发

Flutter 2(1),字节跳动高工面试

android 移动开发

压缩性能提升10-20倍,TDengine助力零跑科技实现性能和成本最优化

TDengine

数据库 大数据 tdengine 后端

Flutter 插件使用必知必会,我的阿里春招之路分享

android 程序员 移动开发

Flutter-可以缩放拖拽的图片,安卓内存优化管理器

android 程序员 移动开发

Flutter App的启动流程,kotlin单例模式

android 程序员 移动开发

Flutter 中 Wrap 的使用详解(含对比图) _ Flutter Widgets

android 程序员 移动开发

百度爱番番数据分析体系的架构与实践

百度Geek说

架构 数据分析 后端

DialogFragment探索与实现,android高级工程师面试题

android 程序员 移动开发

FFmpeg之OpenGL绘制与Native Window绘制(五),安卓面试题及答案2020百度

android 程序员 移动开发

Flutter GetX使用---简洁的魅力!,Android高级

android 程序员 移动开发

Flutter 命令本质之 Flutter tools 机制源码深入分析,kotlin实战

android 程序员 移动开发

Flutter 性能优化 Tips,Android攒了一个月的面试题及解答

android 程序员 移动开发

DialogFragment探索与实现(1),2021年是做安卓开发人员的绝佳时机

android 程序员 移动开发

架构训练营模块七作业-王者荣耀商城异地多活架构设计

李焕之

Flutter 与 原生交互(Android),含BATJM大厂

android 程序员 移动开发

Flutter 扩展NestedScrollView (二)列表滚动同步解决(2)

android 程序员 移动开发

Flutter 2,面试官问的那些Android原理你都懂吗

android 程序员 移动开发

Flutter _ 你真的会用 Slider 组件吗?,kotlin中文文档pdf

android 程序员 移动开发

模块七:王者荣耀商城异地多活架构设计

apple

Flutter Dio二次封装,Android开发还不会这些

android 程序员 移动开发

上万规模数据湖如何在实验室测试

华为云开发者联盟

容器 数据湖 测试 MRS 集群

Flutter 扩展NestedScrollView (二)列表滚动同步解决

android 程序员 移动开发

Flutter 网络请求框架封装,android源码设计模式解析与实战

android 程序员 移动开发

Python代码阅读(第53篇):字符串重复拼接

Felix

Python Code 字符串 阅读代码 Python初学者

Flutter 1,基于h5框架的移动app开发

android 程序员 移动开发

Flutter-可以缩放拖拽的图片(1),android最新开发语言

android 程序员 移动开发

Flutter _ 你真的会用 Slider 组件吗?(1),androidapp开发入门

android 程序员 移动开发

Flutter 扩展NestedScrollView (二)列表滚动同步解决(1)

android 程序员 移动开发

叮咚!你有一份RabbitMQ 优雅使用指南待查看_文化 & 方法_中间件小哥_InfoQ精选文章