MQ
牛八里昂
这个作者很懒,什么都没留下…
展开
-
rocketmq架构简述
1、nameServer类似kafka中的zk。zk有主从,同步数据。nameserver主要维护路由信息,相互之间不通信,性能提高很多;意味着NameServer中任意的节点挂了,只要有一台服务节点正常,整个路由服务就不会有影响2、存储所有的消息是存储在CommitLog文件中,不区分topic;consumerQueue 记录的是基于topic的消息索引文件,是有序的。indexFile记录的是基于key或时间区间的消息的映射文件,也是有序的。3、broker与kafka..原创 2021-12-30 23:22:56 · 1089 阅读 · 0 评论 -
kafka、rabbitmq、rocketmq 浅谈
关注知识面1、rabbitmqerlang语言开发,吞吐量低(单机在万级别)、消息积累影响性能、社区活跃,不利于java二次开发,需学习AMQB协议。优势:社区活跃。劣势:吞吐量低,消息积累影响性能,学习成本高。学习什么是AMQB协议2、rocketmq吞吐量高(单机十万级)、 java实现方便二次开发,参考kafka架构,高可靠(消息0丢失)。优势:方便java二次开发、高可靠(适用于互联网、金融)劣势:社区活跃度不高为什么可以做到消息0丢失3、kafk原创 2021-12-30 22:58:46 · 1192 阅读 · 0 评论 -
RocketMQ 核心源码
RocketMQ 由NameServer 集群、Producer 集群、consumer 集群、broker 集群组成。一、消费生产大致原理1. Broker 在启动的时候向所有NameServer 注册,并保持长连接,每30s 发送一次心跳。2. Producer 在发送消息的时候从NameServer 获取Broker 服务器地址,根据负载均衡选择一个服务器来发送消息3. Consumer 消费消息同样是从NamerServer 获取Broker 地址,然后主动拉取消息。Topic...原创 2021-12-29 22:18:34 · 771 阅读 · 0 评论 -
rabbitMQ死信
死信流程图死信信息处理步骤一、声明死信交换器。二、声明普通队列中消费失败的信息入死信交换器。(目的:消费者消费失败的消息不重入队列,交给死信交换器)此处需要设置两个点:1、消费者消费消息失败,设置不重入队列。2、设置普通队列的属性,将消费失败不重入队列的消息,交由死信交换器处理。三、声明专门存放死信消息的队列。四、死信交换器和死信消息存储队列绑定。只有绑定后,其他队列中那些失败的没有重入队列的消息,才会经死信交换器放入死信存储队列中五、配.原创 2020-06-25 22:37:41 · 194 阅读 · 0 评论 -
RabbitMQ学习
rabbitmq是MQ中的一种,比较适用于一般的中小型公司。并发量可以达到1.2w+。基础知识:RabbitMQ的发送、接收端口一般为5672,管理接口15672。RabbitMQ用TCP建立通信,但是TCP连接是十分消耗资源的,所以RabbitMQ引入了信道Channel的概念。信道Channel其实是TCP的虚连接,建在TCP之上,相对TCP来讲效率很高,用到了多路复用技术。另外还引入了交换机,可以根据特定的场景选择特定的策略方式,主要由Direct exchange:直连.原创 2020-06-20 23:32:53 · 2688 阅读 · 0 评论