写点什么

叮咚!你有一份 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:062347

评论

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

我在阿里巴巴做 Serverless 云研发平台

阿里巴巴云原生

Serverless 容器 开发者 云原生 CloudNative

架构师训练营 1 期 -- 第十一周总结

曾彪彪

极客大学架构师训练营

mysql的这些坑你踩过吗?快来看看怎么优化mysql?

比伯

Java 编程 架构 面试 计算机

讲述我在阿里六面的经历,幸好我掌握了这份“Java并发编程+面试题库”成功拿到20K的offer

比伯

Java 编程 架构 面试 计算机

区块链产业下的“非遗”突围战:商业化和手艺人发掘

CECBC

区块链 非遗

拆解增长黑客之知识篇

懒杨杨

产品 运营 增长

京东云的云原生理念及Serverless最佳实践

lidaobing

已拿腾讯后台开发岗offer,简单说下自己的面试经历和学习路线

程序员小灰

c++ 后台开发 架构师 TCP/IP Linux服务器开发

接口测试怎么进行,如何做好接口测试

测试人生路

软件测试 接口测试

架构师训练营第二周框架设计课后练习

Geek_xq

价值、产业、数据加密,区块链如何助力互联网升级?

CECBC

区块链 互联网

打造Django私有化缓存组件django-api-cache

pygodnet

django django-api-cache django缓存 私有化缓存 接口缓存

LeetCode题解:52. N皇后 II,回溯+哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

「更高更快更稳」,看阿里巴巴如何修炼容器服务「内外功」

阿里巴巴云原生

容器 运维 云原生 双十一 CloudNative

《迅雷链精品课》第十课:共识算法理论基础

迅雷链

区块链

看区块链如何打通信息壁垒,盘活万亿级”积分”市场

CECBC

区块链 信息

HTTP协议概述

落日楼台H

https HTTP 协议 HTTP2.0 HTTP3.0

技巧收藏|10个JavaScript常用数组操作方法

华为云开发者联盟

Java 数组 开发

每周学点TARS——服务自定义命令

TARS基金会

c++ DevOps 后端 TARS

程序员的故事

Philips

敏捷开发 快速开发 原创小说 企业开发 企业应用

线程池的优点及其原理,代码实现线程池。简单、明了。

Linux服务器开发

后端 网络编程 线程池 Linux服务器 web服务器

一周信创舆情观察(11.23~11.29)

统小信uos

【得物技术】搜索引擎技术简介

得物技术

搜索引擎 技术 算法 排序 搜索

智能与影像的强耦合:华为Mate 40系列的视觉探索

脑极体

只能用分布式锁,也能搞定每秒上千订单的高并发优化?

Java架构师迁哥

架构词典: 复盘

lidaobing

架构 复盘

年轻人想详细了解做了十年Linux跟做了十年Windows的程序员差距有多大吗?听我慢慢道来!

ShenDu_Linux

Linux 程序员 windows

训练营第七周总结

大脸猫

极客大学架构师训练营

我对业务方提出需求的态度

boshi

随笔杂谈 需求落地

ETV全球熵APP系统开发|ETV全球熵软件开发

系统开发 现成系统

从战略到战略决策

Alan

战略管理 使命 愿景 战略思考 MVO

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