rocketmq

java架构之路-(MQ专题)RocketMQ从入坑到集群详解

爷,独闯天下 提交于 2020-01-02 03:13:29
  这次我们来说说我们的RocketMQ的安装和参数配置,先来看一下我们RocketMQ的提出和应用场景吧。   早在2009年,阿里巴巴的淘宝第一次提出了双11购物狂欢节,但是在2009年,服务器无法承受到大规模的并发,导致了大规模宕机停运,当时还是IOE的服务架构,也就是没有我们的消息队列中间件,直接由IBM的小型机、Oracle数据库、EMC存储设备来提供服务的,可想而知,我们的大并发场景,IOE是无法承受的,RocketMQ是由我们的国内的阿里巴巴在2010年开始由我们的阿里云的王坚博士组件团队,来处理我们的去IOE服务架构,也就产生了我们的RocketMQ中间件,经历了阿里巴巴内部的不断尝试和实践下,在2016年11月,阿里将RocketMQ捐献给Apache软件基金会,正式成为孵化项目,现在已经在我们Apache软件基金会毕业了,并且成为了Apache软件基金会的顶级项目。可想而知RocketMQ还是很成熟很可靠的。   说到这也就是知道了我们的RocketMQ可以于我们的消息中间件来传递我们的消息,还有很多广泛的应用场景,比如我们的异步处理事件,分布式事务协调,对于高并发的削峰平谷处理,MQ的思想还是很出众的,下面我们来先一下RocketMQ的安装吧。 安装单机(运行环境JDK版本:1.8.0_221以上)   1.下载。rocketmq版本:rocketmq-all

RocketMq的安装使用

若如初见. 提交于 2020-01-02 03:13:03
RocketMq的安装使用 、一.预备环境 1.系统 Windows 2. 环境 JDK1.8、Maven、Git 1.下载 1.1地址: http://rocketmq.apache.org/release_notes/release-notes-4.2.0/ 1.2选择‘Binary’进行下载 1.3解压已下载工程 2. 配置 2.1 系统环境变量配置 变量名:ROCKETMQ_HOME 变量值:MQ解压路径\MQ文件夹名 3. 启动 3.1 启动NAMESERVER Cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqnamesrv.cmd’,启动NAMESERVER。成功后会弹出提示框,此框勿关闭。 3.2 启动BROKER Cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true’,启动BROKER。成功后会弹出提示框,此框勿关闭。 假如弹出提示框提示‘错误: 找不到或无法加载主类 xxxxxx’。打开runbroker.cmd,然后将‘%CLASSPATH%’加上英文双引号。保存并重新执行start语句 三. RocketMQ插件部署 1. 下载 地址:https://github.com/apache/rocketmq

SpringBoot如何优雅的使用RocketMQ

ぃ、小莉子 提交于 2019-12-30 23:22:57
MQ,是一种跨进程的通信机制,用于上下游传递消息。在传统的互联网架构中通常使用MQ来对上下游来做解耦合。 举例:当A系统对B系统进行消息通讯,如A系统发布一条系统公告,B系统可以订阅该频道进行系统公告同步,整个过程中A系统并不关系B系统会不会同步,由订阅该频道的系统自行处理。 什么是RocketMQ? 官方说明: 随着使用越来越多的队列和虚拟主题,ActiveMQ IO模块遇到了瓶颈。我们尽力通过节流,断路器或降级来解决此问题,但效果不佳。因此,我们那时开始关注流行的消息传递解决方案Kafka。不幸的是,Kafka不能满足我们的要求,特别是在低延迟和高可靠性方面。 看到这里可以很清楚的知道RcoketMQ 是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。 具有以下特性: 支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 能够保证严格的消息顺序,在一个队列中可靠的先进先出(FIFO)和严格的顺序传递 提供丰富的消息拉取模式,支持拉(pull)和推(push)两种消息模式 单一队列百万消息的堆积能力,亿级消息堆积能力 支持多种消息协议,如 JMS、MQTT 等 分布式高可用的部署架构,满足至少一次消息传递语义 RocketMQ环境安装 下载地址: https://rocketmq.apache.org/dowloading/releases/

RocketMQ学习和安装

强颜欢笑 提交于 2019-12-30 22:38:06
RocketMQ的安装,首先从 启动 关闭: 服务关闭 关闭namesrv服务:sh bin/mqshutdown namesrv 关闭broker服务 :sh bin/mqshutdown broker 来源: CSDN 作者: BigKingPro 链接: https://blog.csdn.net/weixin_43397580/article/details/103771988

docker快速安装rocketmq

試著忘記壹切 提交于 2019-12-28 18:57:55
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://gudepeng.github.io/note/2019/12/11/rocketmq/ 一.rocketmq安装 1.rocketmq镜像下载 docker pull rocketmqinc/rocketmq 2.启动mqnamesrv docker run -d -p 9876:9876 --name mqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv 使用docker ps查看mqnamesrv容器是否启动成功(running) 3.启动mqbroker 创建配置文件 echo "brokerIP1=x.x.x.x" > broker.properties 创建在什么目录下都可以,但是要在下面对应启动命令中修改broker.properties的绝对路径其中x.x.x.x为你docker所在物理机的ip,然后启动mqbroker,覆盖其中brokerIP1的配置 如果不覆盖,则brokerIP默认为docker内自动分配的ip,这样外面就访问不到了 docker run -d -p 10911:10911 -p 10909:10909 -v

阿里RoceketMQ使用

余生颓废 提交于 2019-12-27 01:31:55
一、配置文件 #该应用是否启用生产者 rocketmq: producer: isOnOff: on #发送同一类消息的设置为同一个group,保证唯一,默认不需要设置,rocketmq会使用ip@pid(pid代表jvm名字)作为唯一标示 groupName: ${spring.application.name} #mq的nameserver地址 namesrvAddr: 127.0.0.1:9876 #消息最大长度 默认1024*4(4M) maxMessageSize: 4096 #发送消息超时时间,默认3000 sendMsgTimeout: 3000 #发送消息失败重试次数,默认2 retryTimesWhenSendFailed: 2 ###consumer ##该应用是否启用消费者 consumer: isOnOff: on groupName: ${spring.application.name} #mq的nameserver地址 namesrvAddr: 127.0.0.1:9876 #该消费者订阅的主题和tags("*"号表示订阅该主题下所有的tags),格式:topic~tag1||tag2||tag3;topic2~*; topics: futaotopic~*; consumeThreadMin: 20 consumeThreadMax: 64

聊聊rocketmq的ClientManageProcessor

青春壹個敷衍的年華 提交于 2019-12-26 21:14:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 序 本文主要研究一下rocketmq的ClientManageProcessor NettyRequestProcessor rocketmq-all-4.6.0-source-release/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRequestProcessor.java public interface NettyRequestProcessor { RemotingCommand processRequest(ChannelHandlerContext ctx, RemotingCommand request) throws Exception; boolean rejectRequest(); } NettyRequestProcessor接口定义了processRequest、rejectRequest方法 ClientManageProcessor rocketmq-all-4.6.0-source-release/broker/src/main/java/org/apache/rocketmq/broker/processor/ClientManageProcessor.java public class

聊聊rocketmq的QueryMessageProcessor

别说谁变了你拦得住时间么 提交于 2019-12-25 21:43:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 序 本文主要研究一下rocketmq的QueryMessageProcessor NettyRequestProcessor rocketmq-all-4.6.0-source-release/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRequestProcessor.java public interface NettyRequestProcessor { RemotingCommand processRequest(ChannelHandlerContext ctx, RemotingCommand request) throws Exception; boolean rejectRequest(); } NettyRequestProcessor接口定义了processRequest、rejectRequest方法 QueryMessageProcessor rocketmq-all-4.6.0-source-release/broker/src/main/java/org/apache/rocketmq/broker/processor/QueryMessageProcessor.java public class

聊聊rocketmq的ConsumeMode.CONCURRENTLY

岁酱吖の 提交于 2019-12-22 11:37:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 序 本文主要研究一下rocketmq的ConsumeMode.CONCURRENTLY ConsumeMode.CONCURRENTLY rocketmq-spring-boot-2.0.4-sources.jar!/org/apache/rocketmq/spring/annotation/ConsumeMode.java public enum ConsumeMode { /** * Receive asynchronously delivered messages concurrently */ CONCURRENTLY, /** * Receive asynchronously delivered messages orderly. one queue, one thread */ ORDERLY } ConsumeMode定义了CONCURRENTLY、ORDERLY两个枚举值 DefaultRocketMQListenerContainer rocketmq-spring-boot-2.0.4-sources.jar!/org/apache/rocketmq/spring/support/DefaultRocketMQListenerContainer.java public class

rocketMQ集群双主双从同步模式(2m-2s-sync)搭建

自古美人都是妖i 提交于 2019-12-20 19:42:04
1.去apache官网( http://rocketmq.apache.org/release_notes/release-notes-4.6.0/)下载最新的rocketmq发行版,我用的是4.6版本( rocketmq-all-4.6.0-bin-release.zip) 如下图: 2.将下载后的二进制包(zip)上传到服务器目录之中,然后进行解压 解压命令为:unzip rocketmq-all-4.6.0-bin-release.zip 如果报错bash: unzip: command not found 则说明没有unzip命令 可先安装,命令为:yum -y install unzip 我的包目录为/home/zhipeng/rocketMQ 3.我们想要规划的环境如下: 序号 IP 角色 架构模式 1 192.168.108.128 nameserver,brokerserver Master1,Slave2 2 192.168.108.129 nameserver,brokerserver Master2,Slave1 4.Host添加信息(两台机器都要执行) 编辑hosts文件,添加域名信息 命令为:vi /etc/hosts 保存之后,重启网卡服,命令:systemctl restart network 如下图 5.防火墙配置(两台机器都要执行) 可以开放端口