rocketmq

RocketMQ 4.2.0 入门 WINDOWS篇

匿名 (未验证) 提交于 2019-12-03 00:32:02
感谢前辈们转载并合并于: 环境:WIN10、Eclipse、Maven、jdk8、RocketMQ4.2.0 1.下载编译好的RocketMQ https://www.apacha.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip 在apache官网可以下载下载4.2.0编译好的包,不要下载source版,否则启动时候会提示各种错误 2.解压缩,并进入bin目录 配置环境变量 对应地址请自行修改 3. 启动name server 打击mqnamesrv.cmd,启动name server,保持mqnamesrv. cmd 运行,不要关闭这个终端。 4. 启动broker 开启另一个windows终端cmd,进入解压的bin目录,也可一步输入 mqbroker.exe -n 127.0.0.1:9876 autoCreateTopicEnable=true 启动broker,保持mqbroker.exe运行,不要关闭这个终端。如果不输入autoCreateTopicEnable 会导致注册上去的topic找不到。 5. 编写测试案例 将该文中的maven的RocketMQ包改成4.2.0即可,由于更换 apacha所以包名对应改变 </dependency> 文章来源: RocketMQ

RocketMQ之Pull消费者客户端启动

匿名 (未验证) 提交于 2019-12-03 00:30:01
Pull消费者客户端(主动拉取消息的消费者)即构造了DefaultMQPullConsumer对象,DefaultMQPullConsumer继承了ClientConfig类。我们先看其构造方法 public DefaultMQPullConsumer(final String consumerGroup, RPCHook rpcHook) { this.consumerGroup = consumerGroup; defaultMQPullConsumerImpl = new DefaultMQPullConsumerImpl(this, rpcHook); } 这里只是简单设置了consumerGroup消费者组名,表示消费者属于哪个组。构造了DefaultMQPullConsumerImpl的实例,DefaultMQPullConsumerImpl的构造方法很简单,只是绑定了DefaultMQPullConsumer、配置了传入的rpcHook。 DefaultMQPullConsumer内部封装了DefaultMQPullConsumerImpl,其中还维护这一些配置信息。这里维护着消费者订阅的topic集合。 private Set<String> registerTopics = new HashSet<String>(); 整个消费者客户端的启动

RocketMQ

匿名 (未验证) 提交于 2019-12-03 00:27:02
一、背景 随着移动互联网的迅猛发展,各大互联网公司的体量、业务呈现指数式增长,在业务的反哺与逼迫下,分布式技术架构随之遍地开花,其中以SOA服务技术架构,微服务技术架构等为主的分布式架构如火如荼地发展。在这种大趋势之下,互联网企业也开始面临着数据采集,数据异构,系统整合等诸多问题,而CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用RPC同步处理技术,在性能、健壮性、可扩展性上都存在着诸多缺点,消息队列以异步处理,非阻塞调用的技术模型悄然登场,并迅速成为分布式架构的宠儿。 二、主流消息队列比较 以下表格摘取自apache rocketmq官方文档 阿里云消息队列上有另外一份对比: https://help.aliyun.com/document_detail/52577.html?spm=a2c4g.11186623.6.540.WVgch7 为何选择RocketMQ 消息不丢失【重点】 强大的技术团队,健壮的社区力量 采用Java编写实现,技术体系上更符合团队抉择 架构主轻量,组件无状态,可独立部署 高可用性,高吞吐量,性能好 经历多年阿里巴巴双十一挑战,不管是从业务复杂度,还是高流量并发都扛下来了,故而实践上毋庸置疑 三、简而言之RocketMQ架构 RocketMQ架构分为四个模块 1、生产者 2、消费者 3、namesrv 4、broker 3.1

RocketMQ 启动

匿名 (未验证) 提交于 2019-12-03 00:27:02
RocketMQ Quick Start 设置环境变量 set ROCKETMQ_HOME=D:\dev\rocketmq-all-4.2.0 bin/mqnamesrv.cmd 查看本地端口 netstat -nao |find “9876” TCP 0.0.0.0:9876 0.0.0.0:0 LISTENING 9020 TCP [::]:9876 [::]:0 LISTENING 9020 bin/mqbroker.cmd -n 127.0.0.1:9876 在windows下启动的broker,启动成功后没有成功提示信息 查看本地端口,如果出现如下“ESTABLISHED”提示,说明broker启动成功: netstat -nao |find “9876” TCP 0.0.0.0:9876 0.0.0.0:0 LISTENING 9020 TCP 127.0.0.1:9876 127.0.0.1:64735 ESTABLISHED 9020 TCP 127.0.0.1:64735 127.0.0.1:9876 ESTABLISHED 8432 TCP [::]:9876 [::]:0 LISTENING 9020 broker启动异常: 如果启动broker时,提示如下错误,说明当前系统环境变量:%CLASSPATH%的地址中有空格。 错误: 找不到或无法加载主类

Kafka、RabbitMQ、RocketMQ等消息中间件的对比 ―― 消息发送性能和区别

匿名 (未验证) 提交于 2019-12-03 00:22:01
原文: http://jm.taobao.org/2016/04/01/kafka-vs-rabbitmq-vs-rocketmq-message-send-performance/?utm_source=tuicool&utm_medium=referral 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。 那么,消息中间件性能究竟哪家强? 带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka、RabbitMQ、RocketMQ)做了性能比较。 Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。 RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。

RocketMQ概念模型(good)

匿名 (未验证) 提交于 2019-12-03 00:20:01
转载:https://blog.csdn.net/binzhaomobile/article/details/73332463 RocketMQ概念模型 一 前言 二 概念模型 1 Topic 2 Broker,Producer和Consumer 3 Topic,Topic分片和Queue (重要) 对应上图,TopicA有3个Topic分片,分布在Broker1,Broker2和Broker3上,TopicB有2个Topic分片,分布在Broker1和Broker2上,TopicC有2个Topic分片,分布在Broker2和Broker3上。 每个Topic分片等分的Queue的数量可以不同,由用户在创建Topic时指定。 RocketMQ 在进行Topic分片以后,已经达到水平扩展的目的了,为什么还需要进一步切分为Queue呢? Rocket MQ的负载均衡策略规定:Consumer数量应该小于等于Queue数量 , 如果Consumer超过Queue数量,那么多余的Consumer 将不能消费消息。 这样的分配规则,每个Queue只有一个消费者,可以避免消费过程中的多线程处理和资源锁定,有效提高各Consumer消费的并行度和处理效率。 文章来源: RocketMQ概念模型(good)

SpringBoot集成RocketMQ报错:Bad annotation definition in @ExtRocketMQTemplateConfiguration...

匿名 (未验证) 提交于 2019-12-03 00:16:01
使用官方提供的 rocketmq-spring-boot-starter 提供的例子写 ExtRocketMQTemplate 时候,修改了配置文件中的 nameServer 配置,改成了和 rocketmq.name-server 一样的值: ## 配置文件 rocketmq: name-server: 192.168.2.182:9876;192.168.2.183:9876 ... demo: rocketmq: ... extNameServer: 192.168.2.182:9876;192.168.2.183:9876 ## Java Code @ExtRocketMQTemplateConfiguration(nameServer = "${demo.rocketmq.extNameServer}") public class ExtRocketMQTemplate extends RocketMQTemplate { } 贴上了堆栈信息: org.springframework.beans.factory.support.BeanDefinitionValidationException: Bad annotation definition in @ExtRocketMQTemplateConfiguration, nameServer property is

Spring Cloud Alibaba学习笔记(8) - RocketMQ安装与RocketMQ控制台

匿名 (未验证) 提交于 2019-12-03 00:15:02
64位操作系统,推荐使用Linux、Unix、MacOS 64λ JDK1.8+ Maven 3.2.x 适用于Broker服务器的4g +可用磁盘 从Apache RocketMQ的官网【http://rocketmq.apache.org/ 】可以进入RocketMQ的下载地址,目前最新的版本为4.5.2【http://rocketmq.apache.org/release_notes/release-notes-4.5.2/ 】,下载 Binary 文件即可 解压缩 unzip rocketmq-all-4.5.2-bin-release.zip 切换目录 cd rocketmq-all-4.5.2-bin-release 启动Name Server nohup sh bin/mqnamesrv & 验证是否启动成功 tail -f ~/logs/rocketmqlogs/namesrv.log 如果启动成功,可以看见如下日志: 2019-10-24 16:20:48 INFO FileWatchService - FileWatchService service started 2019-10-24 16:20:48 INFO main - The Name Server boot success. serializeType=JSON 启动Broker nohup sh

MQ相关

匿名 (未验证) 提交于 2019-12-03 00:09:02
消息中间件模式分类 点对点 PTP点对点:使用queue作为通信载体 消息被消费以后,queue中不再存储,所以消息消费者不可能消费到已经被消费的消息。 Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。 发布/订阅 消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。 topic实现了发布和订阅,当你发布一个消息,所有订阅这个topic的服务都能得到这个消息,所以从1到N个订阅者都能得到一个消息的拷贝。 MQ 如何保证消息的顺序性? RabbitMQ、Kafka https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/how-to-ensure-the-order-of-messages.md RocketMQ https://www.cnblogs.com/xuwc/p/9034352.html 保证生产者 - MQServer - 消费者是一对一对一的关系 。。。 RocketMQ怎么实现发送顺序消息: Producer端确保消息顺序唯一要做的事情就是将消息路由到特定的分区,在RocketMQ中,通过MessageQueueSelector来实现分区的选择。