频道栏目
首页 > 资讯 > 其他综合 > 正文

消息队列的使用对比

18-05-11        来源:[db:作者]  
收藏   我要投稿

消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景,保证最终一致性

先看下云平台商用的消息队列的使用对比吧

1.产品对比(腾讯云)

腾讯云上面的mq,主要有CMQ,CKAFKA,消息队列IoT MQ

CMQ:在需要进行异步通信的应用情景中推荐使用 CMQ;同时 CMQ 保证不丢失消息,其可广泛应用于金融、电商订单、支付结算等对数据可靠性要求极高的场景中

CKafka:适用于吞吐量非常大的大数据处理场景。

IoT MQ:消息队列 IoT MQ 适用于需要低功耗、网络吞吐有限、网络质量差的?IOT(物联网)和移动互联网场景

CMQ的优势:https://cloud.tencent.com/document/product/406/4586

应用案例:

微信红包

详细介绍:https://cloud.tencent.com/product/mq#userDefined12

2.产品对比(引用阿里云官网):

3.各个开源消息队列主要关注点和实现方式:

rabbitmq消息发送接收原理:

参见官网:http://www.rabbitmq.com/getstarted.html

消息的几种发送接收类型

exchange有四种类型:分别是Direct exchange、Fanout exchange、Topic exchange、Headers exchange。

几个概念说明:?
Broker:它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指定的方式进行传输,?
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。?
Queue:消息的载体,每个消息都会被投到一个或多个队列。?
Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来.?
Routing Key:路由关键字,exchange根据这个关键字进行消息投递。?
vhost:虚拟主机,一个broker里可以有多个vhost,用作不同用户的权限分离。?
Producer:消息生产者,就是投递消息的程序.?
Consumer:消息消费者,就是接受消息的程序.?

Channel:消息通道,在客户端的每个连接里,可建立多个channel.

高可用部署方案有两种模式:普通模式和镜像模式

? ? 集群类型:普通集群、镜像集群

普通集群:结构同步,消息实体只存在一个节点中,但consumer在非消息节点获取是,节点间存在消息拉取,易产生性能瓶颈。镜像集群:集群中一个master,负责调度,处理消息实体,其他节点保存一份数据到本地;性能主要靠master承载。

参考官网文档:http://www.rabbitmq.com/clustering.html#starting

运维管理:

rabbitmq提供管理的web插件

 

rocketmq消息发送接收原理:

消息发送、消费模型,详见官方文档:http://rocketmq.apache.org/,原理图:

可以实现消息发送时指定topic的一个队列来实现顺序消费,可以支持顺序消费和消息回溯,可以支持按照messageKey来查询消息

 

高可用集群部署方案,broker部署主从模式

 

运维管理:

rocketmq提供管理的web-console


kafka:

消息发送接收机制:

kafka 应用场景

  • 日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。
  • 消息系统:解耦和生产者和消费者、缓存消息等。
  • 用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。
  • 运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。
  • 流式处理:比如spark streaming和storm
  • 事件源

    参考各大云平台对Kafka的使用说明可以看出kafka适合于海量数据的处理系统中

    官方使用案例说明:http://kafka.apache.org/uses

     

    4.腾讯云平台CMQ

    参考:CMQ后台

    CMQ是rabbitmq的升级版,支持mq的消息回溯,对消息的超时策略等做了简单的优化

    腾讯云平台使用地址:https://console.cloud.tencent.com/mq/index?rid=1

    cmq队列参数为:

    y

    添加主题订阅可以设置重试的策略:

    订阅地址官方文档中说明:目前推送服务不能推送到私有网络中,因此 endpoint 填写为私有网络域名或地址将接收不到推送的消息,目前支持推送到公网和基础网络。

相关TAG标签
上一篇:端到端测试模拟用户行为
下一篇:手写代码用进程池复制文件夹模型
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站