RocketMQ4.X基础介绍和阿里云Linux服务器快速部署

阿里巴巴开源RocketMQ4.x消息队列介绍

  • Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件

  • 特点

    • 支持Broker和Consumer端消息过滤

    • 支持发布订阅模型,和点对点,

    • 支持拉pull和推push两种消息模式

    • 单一队列百万消息、亿级消息堆积

    • 支持单master节点,多master节点,多master多slave节点

    • 任意一点都是高可用,水平拓展,Producer、Consumer、队列都可以分布式

    • 消息失败重试机制、支持特定level的定时消息

    • 新版本底层采用Netty

    • 4.3.x支持分布式事务

    • 适合金融类业务,高可用性跟踪和审计功能。

       

  • 概念

    • Producer:消息生产者

    • Producer Group:消息生产者组,发送同类消息的一个消息生产组

    • Consumer:消费者

    • Consumer Group:消费同类消息的多个实例

    • Tag:标签,子主题(二级分类)对topic的进一步细化,用于区分同一个主题下的不同业务的消息

    • Topic:主题, 如订单类消息,queue是消息的物理管理单位,而topic是逻辑管理单位。一个topic下可以有多个queue,

      默认自动创建是4个,手动创建是8个

    • Message:消息,每个message必须指定一个topic

    • Broker:MQ程序,接收生产的消息,提供给消费者消费的程序

    • Name Server:给生产和消费者提供路由信息,提供轻量级的服务发现、路由、元数据信息,可以多个部署,互相独立(比zookeeper更轻量)

    • Offset: 偏移量,可以理解为消息进度

    • commit log: 消息存储会写在Commit log文件里面

    • 走读官网地址,学会如何学习新技术 http://rocketmq.apache.org/

    • 学习资源

      • http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/
      • https://www.jianshu.com/p/453c6e7ff81c

 

阿里云服务器源码部署RocketMQ4.X

安装之前需要jdk和maven环境!,官方安装部署文档:http://rocketmq.apache.org/docs/quick-start/

这里我们上传rocketMQ源码包进行安装

  > unzip rocketmq-all-4.4.0-source-release.zip
  > cd rocketmq-all-4.4.0/
  > mvn -Prelease-all -DskipTests clean install -U
  > cd distribution/target/apache-rocketmq

下载过程有点漫长,看到下图代表ok!

RocketMQ4.X基础介绍和阿里云Linux服务器快速部署_第1张图片

接下来  Start Name Server

  > nohup sh bin/mqnamesrv &
  > tail -f ~/logs/rocketmqlogs/namesrv.log
  The Name Server boot success...

这里如果服务器内存不足会报错

RocketMQ4.X基础介绍和阿里云Linux服务器快速部署_第2张图片

这里我们只需要调整合适的jvm参数

vim bin/runserver.sh 

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

守护进程方式启动

RocketMQ4.X基础介绍和阿里云Linux服务器快速部署_第3张图片

可以看到  name server 已经启动,接下来启动broker

vim bin/runbroker.sh

JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"

RocketMQ4.X基础介绍和阿里云Linux服务器快速部署_第4张图片

RocketMQ4.X基础介绍和阿里云Linux服务器快速部署_第5张图片

接下来是官方测试生产和消费消息的例子

 > export NAMESRV_ADDR=localhost:9876
 > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
 SendResult [sendStatus=SEND_OK, msgId= ...

 > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
 ConsumeMessageThread_%d Receive New Messages: [MessageExt...

根据命令就可以看到例子,这里不再赘述。

 阿里云源码安装RocketMQ4.X控制台

  • 上传源码包-》解压-》进入rocketmq-console目录-》 编译打包 mvn clean package -Dmaven.test.skip=true

    务必修改下面两个,再进行编译打包,不然会报错

    • 修改 pom.xml 版本号 (官方bug)
    • RocketMQ4.X基础介绍和阿里云Linux服务器快速部署_第6张图片
    • 修改application.xml里面的nameserver地址为  127.0.0.1:9876
    • RocketMQ4.X基础介绍和阿里云Linux服务器快速部署_第7张图片
    • 编译成功!
  • 进入target目录 ,

  • 守护进程方式启动 nohup java -jar rocketmq-console-ng-1.0.0.jar &

  • RocketMQ4.X基础介绍和阿里云Linux服务器快速部署_第8张图片

  • 完成!

你可能感兴趣的:(RocketMQ)