rabbitmq官方下载 v3.5.3 最新版

其实rabbitmq的三种身份的问题并不复杂,但是又很多的朋友都不太了解不建议用rabbitmq,因此呢,今天小编就来为大家分享rabbitmq的三种身份的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

  1. 用mq消息可以替代rpc吗
  2. RabbitMQ、ZeroMQ和Kafka是一个层级的东西吗
  3. rabbitmq的三种身份
  4. rabbit与kafka区别

用mq消息可以替代rpc吗

用mq消息可以替代rpc。正常情况有点规模互联网公司内部都是会有一套RPC框架的,要么是基于开源版本的二次开发版本,要么完全自研的,使用过或者维护公司框架的都会被各种问题折磨到死,比如:限流、熔断、重试、服务注册发现、网络问题,SDK升级等。如果能用MQ代替RPC做服务间调用,那是不是只用维护一套MQ基础组件就可以了,既减少了人力的配置,又能将问题归纳。

RabbitMQ、ZeroMQ和Kafka是一个层级的东西吗

RabbitMQ、ZeroMQ和Kafka是一个层级的东西么?这个还真心不清楚,对于RabbitMQ和Kafka在项目开发中或多或少使用过,而ZeroMQ之前都没有听说过,更何谈了解使用呢?接下来我就简单说说我对RabbitMQ和Kafka的认识,以及相关的使用场景。

先来说说RabbitMQ,这个使用的业务场景比较广泛,所有传统意义上的消息队列解耦的情况几乎都可以用RabbitMQ来解决。记得之前做用户登录的活跃人次统计时,由于初期的设计不支持这种报表查询,而且报表的定制特性不适合通过基础框架来做开发,随后的方案就是通过解析登录日志文件来生成用户的登录记录,然后通过RabbitMQ将解析完成的记录发给做报表的团队,完成任务间的协同开发。定时任务解析、RabbitMQ解耦,较为从容的完成了月登录人次的统计,是应用解耦使用的典型场景。经过实践,RabbitMQ在三个比较典型的场景中使用较多,即异步处理、应用解耦、流量削峰。

再来说说Kafka,Kafka设计的初衷就是处理日志的,可以看做是一个日志系统,针对性很强。其典型的应用场景是用户访问日志的存储和使用,结合storm流组件进行访问日志、点击流日志的实时流量,以及其他类似的业务场景。典型的使用场景有:日志收集、消息系统、用户活动跟踪、运营指标、流式处理等。kafka的特性如下:

-高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition,consumergroup对partition进行consume操作。-可扩展性:kafka集群支持热扩展-持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失-容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)-高并发:支持数千个客户端同时读写

综合考虑,RabbitMq比kafka的对比如下:RabbitMq比Kafka成熟,在可用性上,稳定性上,可靠性上,RabbitMq超过Kafka;Kafka设计的初衷就是处理日志的,可以看做是一个日志系统,针对性很强,所以它并没有具备一个成熟MQ应该具备的特性;Kafka的性能(吞吐量、tps)比RabbitMq要强,两者在这方面没有可比性。

作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。

rabbitmq的三种身份

分别是以下三种:

direct:发布与订阅,完全匹配。我们可以简单理解为一对一的关系,一个交换器将消息发送给一个队列,是完全匹配的

fanout:广播,所有订阅该广播的队列都可以收到该消息。广播式交换器,不管消息的ROUTING_KEY设置为什么,Exchange都会将消息转发给所有绑定的Queue

topic:主题,规则匹配。

rabbit与kafka区别

1.应用场景方面

RabbitMQ:用于实时的,对可靠性要求较高的消息传递上。

kafka:用于处于活跃的流式数据,大数据量的数据处理上。

2.架构模型方面

producer,broker,consumer

RabbitMQ:以broker为中心,有消息的确认机制

kafka:以consumer为中心,无消息的确认机制

3.吞吐量方面

RabbitMQ:支持消息的可靠的传递,支持事务,不支持批量操作,基于存储的可靠性的要求存储可以采用内存或硬盘,吞吐量小。

kafka:内部采用消息的批量处理,数据的存储和获取是本地磁盘顺序批量操作,消息处理的效率高,吞吐量高。

4.集群负载均衡方面

RabbitMQ:本身不支持负载均衡,需要loadbalancer的支持

kafka:采用zookeeper对集群中的broker,consumer进行管理,可以注册topic到zookeeper上,通过zookeeper的协调机制,producer保存对应的topic的broker信息,可以随机或者轮询发送到broker上,producer可以基于语义指定分片,消息发送到broker的某个分片上。

文章分享结束,rabbitmq的三种身份和不建议用rabbitmq的答案你都知道了吗?欢迎再次光临本站哦!

阿里P7架构师教你如何实现RabbitMQ 延时消息