本文作者:sukai

mq软件开发公司(知名软件开发公司)

sukai 04-03 134

  网易云消息队列有为分布式应用系统提供异步解耦、削峰填谷的能力,同时具备海量消息堆积、高吞吐、保证投递等特性。此前已为多个网易内部产品提供服务。

  1

  消息队列简介

  消息队列(Message Queue,简称 MQ)基于 RabbitMQ 的分布式,高可用,易扩展,易使用等特点,提供消息发布的订阅,支持实现 RPC、监控报警等一系列消息服务,是企业级互联网架构的核心产品。

  MQ 有为分布式应用系统提供异步解耦、削峰填谷的能力,同时具备海量消息堆积、高吞吐、保证投递等互联网应用所需的特性。目前在网易内部已被网易云音乐、网易考拉、云信等产品广泛使用。

  MQ 基于原生 RabbitMQ 支持 AMQP、MQTT、HTTPS、STOMP、WebSockets 等多种协议,支持 Ruby、.NET、Java、C、PHP 等语言。

  2

  产品特性

  1. 可维护性

自动创建部署 RabbitMQ 实例;

提供节点查活功能,检测到节点异常能够主动触发主从切换;

多维度状态监控,根据用户关心的指标,设置阀值报警或者事件报警。

  2. 可用性

  高可用模式下,所有功能无单点故障;依托网易云强大的技术团队,保障实例稳定可靠运行。

  3. 可靠性

  提供生产者 confirm 机制(生产者发送成功,消息已经写入存储介质),消费者 Ack 机制(消费者处理成功,消息可以安全删除);

  持久化消息落盘存储,一份消息多处存储,保证消息不丢失。

  4. 隔离性

  每个实例节点部署在独立云主机上,做到真正的用户隔离。

mq软件开发公司(知名软件开发公司)

  3

  产品基本功能

  MQ 提供了多种协议和开发语言的接入方式以及多维度的管理工具。

  1. 多协议接入

  支持 AMQP、MQTT、HTTPS、STOMP、WebSockets 等多种协议,便于用户根据自己的使用场景选择适合的协议。

  2. 管理工具

  Web 控制台:

支持用户管理 RabbitMQ 实例(查看用户创建的实例列表,参看实例详细信息,更新密码等操作);

支持无密码登录 RabbitMQ 管理后台,查看 RabbitMQ 运行状态及支持相关管理操作;

支持查看 RabbitMQ 部署节点性能监控信息,设置多维度监控报警。

  3. 消息发布/订阅

  RabbitMQ 提供了 3 种类型的 exchange:direct exchange,fanout exchange 和 topic exchange:

direct exchange 只会将收到的消息路由到 RoutingKey 匹配的队列中去;

fanout exchange 会将消息发送到所有绑定到该 exchange 的 queue 中而不关注 RoutingKey;

topic exchange 更为灵活,并且使用更为广泛,它会根据 RoutingKey 进行模式匹配,只要 RoutingKey 匹配就会发送到对应的 queue 中。

  RoutingKey 正则匹配:

  每一条消息 RoutingKey 会包含若干个标识符(以点号分隔),上图中的 * 表示可以匹配一个标识符,# 表示可以匹配 0 个或多个标识符。

  上图中 Q1 与 .orange. 绑定,Q2 与 ..rabbit 和 lazy.# 绑定。假设一条消息的 routingKey 为 lazy.orange.pig,那么 Q1 和 Q2 都将与这条消息匹配。通过对 RoutingKey 和 BindingKey 的精心设计,可以满足点对点(私信)、组播、广播等业务场景的通信需求。

  4. 实现 RPC

当客户端启动时,它首先创建一个匿名独占回调队列;

客户端为 RPC 请求设置 2 个属性:replyTo,设置回调队列名字;correlationId,标记 request,且每个请求都有唯一值;

请求被发送到 rpc_queue 队列;

RPC 服务器端监听 rpc_queue 队列中的请求,当请求到来时,服务器端会处理并且把带有结果的消息发送给客户端。接收的队列就是 replyTo 设定的回调队列;

客户端监听回调队列,当有消息时,检查 correlationId 属性值,如果与 request 中匹配,那就是结果了。

  4

  网易云消息队列产品的优势

  1. 专业

  RabbitMQ 作为一款成熟的消息中间件,在业内被广泛使用,同时具有完整的生态圈和详细的文档,便于用户使用。

  MQ 在网易内部也已经使用多年,网易云音乐,网易考拉,云信等产品目前都已经接入,并且通过了各种大型活动真实场景的验证,稳定可靠。

  2. 高可靠

  用户创建的高可用实例,一份消息多节点备份,即使单个节点出现异常,服务依然可用,消息不会丢失;

  持久化数据落盘,一份消息多个磁盘存储,经过严格的断电测试,消息依然保证不丢失;

  根据用户内存磁盘配置大小,可以独享存储空间用于堆积消息的存储。

  3. 独立部署

  用户实例每个节点部署在单独一台云主机上,真正做到独享服务,用户隔离。

  5

  消息队列的使用场景

  MQ 可应用在多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、手游、视频、物联网、车联网等。

  MQ 可以应用但不局限于以下业务场景:

一对多,多对多异步解耦,基于发布订阅模型,对分布式应用进行异步解耦,增加应用的水平扩展能力。

削峰填谷,大促等流量洪流突然来袭时,MQ 可以缓冲突发流量,避免下游订阅系统因突发流量崩溃。

日志监控,作为重要日志的监控通信管道,将应用日志监控对系统性能影响降到最低。

消息推送,为社交应用和物联网应用提供点对点推送,一对多广播式推送的能力。

金融报文,发送金融报文,实现金融准实时的报文传输,可靠安全。

电信信令,将电信信令封装成消息,传递到各个控制终端,实现准实时控制和信息传递。

  以上由网易企业信息化服务提供商,湖南领先网络科技整理发布。

  网易企业服务(qiye163.co)是网易凭借其20年品牌优势与经验在企业邮箱的基础上,为进一步布局企业市场而打造的企业级产品矩阵,致力于提供一站式企业信息化解决方案。湖南领先网络科技是网易企业产品授权经销商,专业为企业提供网易企业邮箱、网易办公套件等一站式企业信息化专业解决方案。办理网易企业邮箱及旗下企业产品相关业务,就找湖南领先网络科技。

阅读
分享