在生产环境中为了保障集群无单点故障问题,保证高可用性,需要采用双主双从模式来构建RocketMQ集群。双主双从模式部署需要四台机器,两台机器分别部署Broker-Master & NameServer,另外两台机器分别部署Broker-Slave & NameServer。
集群形式:2m-2s-2namesrv;2个master,2个slave,2个namesrv。
Producer:消息生产者,负责产生消息,一般由业务系统负责产生消息 Consumer:消息消费者,负责消费消息,一般是后台系统负责异步消费 Push Consumer:Consumer的一种,需要向Consumer对象注册监听 Pull Consumer:Consumer的一 种,需要主动请求Broker拉取消息 Producer Group:生产者集合,一般用于发送一类消息 Consumer Group:消费者集合,一般用于接受一类消息进行消费 Broker:MQ消息服务(中转角色,用于消息存储与生产消费转发)
一、RocketMQ安装环境 64bit linux 64bit jdk1.8+ maven 3.2.x git(不一定需要) 本文安装环境为centos7.2、jdk1.8.0_144、maven-3.5.3,软件默认存放目录为/usr/local 二、安装RocketMQ的准备条件 1、安装jdk1.8 如果是采用centos7+,它默认已经安装jdk1.8了,这个步骤可以忽略 1.1 解压jdk包 tar xvf jdk-8u144-linux-x64.gz 1.2 设置环境变量 cd /etc v
部署Apache RocketMQ需要准备NameServer、Broker、Proxy三个组件。它有几种部署模式:
最近有个项目需要基于docker部署一个rocketmq集群。本文主要记录笔者如何根据官方工具自己动手制作最新版本rockermq的docker镜像。所谓官方工具可以通过github网站检索,具体地址:
一、安装与配置 1、下载 官网:http://rocketmq.apache.org/ 如:rocketmq-all-4.0.0-incubating-bin-release.zip 需要 64bit OS, Linux/Unix/Mac is recommended; 64bit JDK 1.7+; 2、复制到对应目录,linux中解压 复制rocketmq-all-4.0.0-incubating-bin-release.zip到 /opt/rocketmq mkdir /opt/rocketm
最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。
下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
8 月 13 日,RocketMQ 迎来了 5.0 版本,这是继 2017 年发布 4.0 版本之后时隔 5 年的一次重大更新。5.0 版本进行了架构重塑,新增或者修改了超过 60% 的代码,但是对 4.0 的所有功能以及整体架构进行了无缝兼容,且没有引入任何外部依赖。而且其中非常重要的一点是,RocketMQ 兼容了开源 Flink 生态。与 Kafka 只是作为 Flink 的上下游数据不同,RocketMQ 直接实现了 Flink 的基础功能或者算子,并首创性地兼容了 Flink/Blink SQL 标准以及 UDF/UDAF/UDTF。为什么 RocketMQ 会选择将 Flink 融合到一起?这样带来哪些好处?适合哪些应用场景?为解答这些问题,InfoQ 采访了 RocketMQ 开源负责人杜恒和 rocketmq-streams cofunder 袁小栋。
我这里事先在两台机器上安装好了RocketMQ,关于RocketMQ的安装可以参考如下文章:
RocketMQ 环境搭建 一. 开发环境 操作系统:CentOS7 JDK1.8 二. 安装JDK 下载jdk-8u181-linux-x64.tar.gz包到/usr/local下 解压 tar -zxvf jdk-8u181-linux-x64.tar.gz 重命名 mv jdk1.8.0_181/ ./jdk1.8 配置Java环境变量 修改配置文件 /etc/profile vi /etc/profile 在文件末尾增加Java环境变量配置 export JAVA
一、rocketmq的安装 1.打开rocketmq官网下载 📷 下载后上传至服务器 # 或者 使用git git clone -b develop https://github.com/apache/incubator-rocketmq.git* 2.解压/编译 # 此处上传至了 /usr/software/mq/rocketmq路径下 unzip rocketmq-all-4.8.0-source-release.zip # 进入解压后的文件夹后执行 mvn -Prelease-all -DskipT
RocketMQ为我们提供了丰富的集群架构模型,包括单点模式、主从模式、双主模式以及生产上使用最多的双主双从模式(或者说多主多从模式)。更多细节可以查看我之前的文章:云原生中间件RocketMQ(二)源码包结构和集群架构模型。本文主要讲双主模式和多主多从模式的部署。
继我上一篇博客后 分布式消息队列RocketMQ学习教程① 上一篇博客最主要介绍了几种常用的MQ,所以本博客再简单介绍一下RocketMQ的原理和简单的例子,基于Java实现,希望可以帮助学习者
Docker系列之Apache RocketMQ安装教程 64bit JDK 1.8 Docker version 1.13.1 1、查找安装rocketmq [root@localhost ~]# docker search rocketmq INDEX NAME DESCRIPTION STARS OFFICIAL AUTOM
环境准备 准备两台服务器或者虚拟机 服务器一:192.***.*.31 服务器二:192.***.*.32 部署模式: 2M-2S-SYNC(两主两从同步写) 相关安装包存储路径:/root/svr/
RocketMQ是一个高性能、高可用和高吞吐量的“分布式消息中间件”,如果面试官要问你它的相关原理,那太多了。
RocketMQ是一个由阿里巴巴开源的消息中间件, 2012年开源,2017年成为apache顶级项目。RocketMQ在阿里内部应用是非常广泛的,阿里内部的几千个应用都运行在RocketMQ之上,双十一期间需要处理亿万级别的消息,TPS可以达到几十万。目前支持Java、C/C++,Python、Go四种语言访问。
RocketMQ是阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给Apache基金会,已经于2016年11月成为 Apache 孵化项目,相信RocketMQ的未来会发挥着越来越大的作用,将有更多的开发者因此受益。
RocketMQ主要有四大组成部分:NameServer、Broker、Producer、Consumer。
这里使用了两台虚拟机,部署的是多master和多slave的异步复制模式,部署结构为:
本文不再赘述如何去fork代码,如何去git clone代码,笔者认为多数读者都会这些基本操作,如果正在阅读的您尚未掌握这些技巧,可以去查看一下其他博主的文章,正确把RocketMQ源码拉取到本地后再来阅读该文章。 Apache RocketMQ是一个基于Java语言开发的消息中间件,构建工具采用的是常用的maven,基本的代码结构如下图1-1所示:
修改nameserver和broker的启动参数,对于2c8g机器,nameserver建议1g,broker建议4g。
RocketMQ是一个轻量级、高可用、低延时的消息中间件,能实现消息的存储,消息的失败重试,批量消息处理,延时消息处理等特性,在各种消息中间件中表现优异。
今天,带来一篇搭建RocketMQ单机环境的文章,为后面的分布式事务专栏做准备。RocketMQ是阿里巴巴开源的一款高性能分布式消息中间件,有关RocketMQ的详细讲解,后面会单独开设一个RocketMQ专栏。这里,先简单介绍一下搭建RocketMQ的单机环境,为分布式事务的介绍做准备。接下来,进入主题。
发现公司这边的消息中间件采用了aliyun的RocketMQ服务,熟悉开源的同学都知道,RocketMQ是国内最早一批捐献Apache并成功毕业的项目。架构设计参考了kafka的模式,所以如果你了解kafka的架构,对于RocketMQ就可以轻车熟路了,虽然参考了kafka,但是RocketMQ也有很多的升级,比如Broker的注册和发现就采用了内部的NameServer,没有引入更多的第三方依赖,而且添加了诸如消息回溯、事务消息、延时消息等特色功能。由于之前没有接触过RocketMQ(之前一直用的kafka和RabbitMQ),准备研究一番,也为了后面集成spring boot metrics监控RocketMQ客户端信息做准备。研究一个开源项目,最好的方法就是Debug,所以记录下本地搭建RocketMq的调试环境过程
在docker下安装rocketmq时候提示错误信息:/opt/rocketmq/conf/broker.conf (Is a directory)
2.4 切换到/usr/local下解压rocketmq压缩包 tar -zxvf xxxxxx
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.csdn.net/article/details/88078657
在RocketMQ官网上找到下载RocketMQ4.8.0的链接,下载和解压RocketMQ:
RocketMQ是阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给Apache基金会,已经于2016年11月成为 Apache 孵化项目,相信RocketMQ的未来会发挥着越来越大的作用,将有更多的开发者因此受益。 本文仅对RocketMQ的简单实用做入门性介绍,不对RocketMQ的底层原理进行深入介绍,后续文章将对RocketMQ的原理做详细介绍。
PS:终于安装成功了,2主2从。下一节说说细节和如何测试rocketmq。特别注意的是在broker的properties文件我都在源码上传的。但是里面有个属性一定要注意:默认不配置brokerIP1和brokerIP2时,都会根据当前网卡选择一个IP使用,当你的机器有多块网卡时,很有可能会有问题。brokerIP1一定要填写IP不要填写别名。否则java连接就会出现RemotingTooMuchRequestException: sendDefaultImpl call timeout;
事务的概念就不用多说了,我相信阅读文章的童鞋都是有着非常深刻的认识。我们都知道MQ可以实现微服务之间的异步以及解耦,那么引入MQ之后,如何实现微服务之间的数据一致性是一个值得思考的问题。RocketMQ事务消息正是解决这个问题的解决方案。另外事务消息也是为了解决消息丢失问题。
RocketMQ有一个对其扩展的开源项目 ocketmq-console ,如今也提交给了 Apache ,
单机版RocketMQ搭建详见:Centos7.6搭建RocketMQ4.8全纪录
为了开发方便,有时需要在本地部署rocketmq,使用docker是一个高性价比的方式,故有此文。
一、linux安装unzip软件 输入命令: sudo apt-get install unzip 提示:如果出现 Unable to locate package 则需要先执行命令更新: sudo apt-get update 二、添加Hosts信息 vim /etc/hosts #内网IP 172.19.129.62 rocketmq-nameserver1 172.19.129.62 rocketmq-master1 三、上传rocketmq-all-4.4.0-bin-release.zip 将压
一个集群无Slave,全是Master,例如2个Master或者3个Master,这种模式的优缺点如下:
导入IDEA,可在命令行执行mvn compile一下,保证源码能够正确编译。本次我使用的master分支的版本-4.8.0。下面我们开始准备启动Namesrv。
最近在倒腾 RocketMQ 消息队列,小卷了下 RocketMQ 的源码,本篇会带着大家一起看下如何配置好调试源码的环境。
最近从OpenJDK8升级到了OpenJDK11,系统业务MQ用的RocketMQ,升级RocketMQ过程中,在已修改好JVM参数的情况下(参考我另一篇文章),遇到如下异常:
这是因为掌握了整体架构,可以让我们迅速了解各个方面的特性,并且可以方便我们后续快速定位功能模块对应的代码文件。话不多说,我们开始看RocketMQ目录结构。
本来是想写RocketMQ系列博文第一篇RocketMQ简介,大致内容包括介绍什么是RocketMQ以及教大家如何安装RocketMQ的。但是呢?有网友说,学习RocketMQ官网特别难。
主要以当前最新版 4.9.1 版的为标准讲述在linux服务器上部署单机 RocketMQ 实例,服务器默认需要事先安装好JDK。主要参考文章是RocketMQ官网的Quick Start:
领取专属 10元无门槛券
手把手带您无忧上云