【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

评论

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

浮感

feitian

今日头条屏幕适配方案终极版正式发布!,移动应用开发平台

android 程序员 移动开发

从 0 到 1,带你解剖 MVP 的神秘之处,并自己动手实现 MVP !

android 程序员 移动开发

为了弄懂Flutter的状态管理, 我用10种方法改造了counter app

android 程序员 移动开发

互联网寒冬即将过去,Jetpack将是燃起来的第一把火,我先收藏为敬

android 程序员 移动开发

人工智能的下一站:精细化生活场景的智能时代,靠着这份900多页的PDF面试整理

android 程序员 移动开发

今日头条APK瘦身之路,android组件化开发框架对比

android 程序员 移动开发

专科毕业,Android不好找工作的同学,你的问题在这里,android源码设计模式解析与实战

android 程序员 移动开发

互联网大厂“围城”,android界面开发

android 程序员 移动开发

从0开始写一个基于Flutter的开源中国客户端(4),android应届毕业生面试题

android 程序员 移动开发

为您的应用配置 Play Feature Delivery,flutter视频教程仿京东

android 程序员 移动开发

二本学历,五年抄代码经验,疫情期被裁,真牛皮

android 程序员 移动开发

今年40岁了,忽然接到公司裁员通知,接下来的路我该怎么办

android 程序员 移动开发

ClickHouse用户资源隔离在 GrowingIO 的实践

GrowingIO技术专栏

Clickhouse 多租户 rbac 用户资源隔离 限流熔断

从月薪8k到年薪60w,闭关3个月靠“刷题,移动端开发技术

android 程序员 移动开发

专科毕业三年,从外包公司到今日头条offer,我想把面试心得分享给你

android 程序员 移动开发

为什么不能使用 Application Context 显示 Dialog?(1)

android 程序员 移动开发

为什么经常看到35岁程序员,转行之后工资呈断崖式下跌?

android 程序员 移动开发

毕业总结

Geek_35a345

从另一个角度解读handler原理,android开发书籍pdf下载

android 程序员 移动开发

中奖了!中奖了!,android组件化通信

android 程序员 移动开发

为什么不能使用 Application Context 显示 Dialog?,安卓kotlin

android 程序员 移动开发

【得物技术】主子订单模型

得物技术

互联网 模型 电商 订单系统 订单

毕业设计

Geek_35a345

五千字长文,深度解密:那些BAT大厂的Android面试官到底在想些什么

android 程序员 移动开发

产品级Flutter开源项目FunAndroid,Provider MVVM的最佳实践

android 程序员 移动开发

为了KPI,对APK进行极限优化!,2021年Android春招面试经历

android 程序员 移动开发

为了这一次字节跳动Android面试机会,我准备了158天,一个疏忽让我前功尽弃

android 程序员 移动开发

从事这么久的Android 开发工作,知道自己处于什么段位嘛?

android 程序员 移动开发

携程商旅订单系统架构优化实践

GavinYe

架构 中台 后端 OTA 订单系统

从Android开发者的角度看一看IOS和Flutter中的列表实现

android 程序员 移动开发

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