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

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

简介:阿里开源消息队列 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/

  • 学习资源

2 RocketMQ4.x本地源码部署(苹果系统底层是Unix系统)

简介:RocketMQ4.x本地快速部署

  • 安装前提条件(推荐) 64bit OS, Linux/Unix/Mac (Windows不兼容) 64bit JDK 1.8+;

  • 快速开始 http://rocketmq.apache.org/docs/quick-start/ 下载安装包:http://mirror.bit.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-source-release.zip

    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
    最终路径 rocketmq-all-4.4.0/distribution/target/apache-rocketmq

  • 最新版本部署存在问题:

    • Please set the JAVA_HOME variable in your environment, We need java(x64)

    • 解决:本地需要配置 JAVA_HOME 使用命令 vim ~/.bash_profile

      • JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home"
        export JAVA_HOME
        CLASS_PATH="$JAVA_HOME/lib"
        PATH=".$PATH:$JAVA_HOME/bin"
  • 解压压缩包

    • 启动nameServer

       nohup sh bin/mqnamesrv &
    • 查看日志 tail -f nohup.out (结尾:The Name Server boot success. serializeType=JSON 表示启动成功)

    • 启动broker (-n指定nameserver地址,nameserver服务端口为9876, broker默认端口 10911)

      nohup sh bin/mqbroker -n localhost:9876 &
    • 关闭nameserver broker执行的命令

      sh bin/mqshutdown broker
      sh bin/mqshutdown namesrv
    • 使用 jps查看进程

  • 验证是否成功

    #设置名称服务地址
    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...

第3集 源码安装RocketMQ4.x可视化控制台

简介:源码安装RocketMQ4.x可视化控制台

  • 下载 https://github.com/apache/rocketmq-externals

  • 编译打包 mvn clean package -Dmaven.test.skip=true

    • 存在问题,因为roccketmq-console 里面 pom.xml 版本问题
     

     
    [ERROR] Failed to execute goal on project rocketmq-console-ng: Could not resolve dependencies for project org.apache:rocketmq-console-ng:jar:1.0.0: The following artifacts could not be resolved: org.apache.rocketmq:rocketmq-tools:jar:4.4.0-SNAPSHOT, org.apache.rocketmq:rocketmq-namesrv:jar:4.4.0-SNAPSHOT, org.apache.rocketmq:rocketmq-broker:jar:4.4.0-SNAPSHOT: Could not find artifact org.apache.rocketmq:rocketmq-tools:jar:4.4.0-SNAPSHOT -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    • 解决 <rocketmq.version>4.4.0-SNAPSHOT</rocketmq.version>

      改为 <rocketmq.version>4.4.0</rocketmq.version>

  • target目录 通过java -jar的方式运行, 启动后是 8080端口

    其他常见问题:

     

     
    1)无法连接获取broker信息
        修改配置文件,名称路由地址为 namesrvAddr,例如我本机地址为
        src/main/resources/application.properties
        rocketmq.config.namesrvAddr=127.0.0.1:9876
    2)连接不成功
        在阿里云,腾讯云或者虚拟机,记得检查端口号和防火墙是否启动
        阿里云控制台有安全组,需要开放对应的端口

第4集 RocketMQ4.x可视化控制台讲解

简介:讲解新版的RocketMQ可视化管理后台

  • 管理控制台地址 127.0.0.1:8080
测试中遇到的问题
maybe your broker machine memory too small
原因:磁盘空间不够

第5集 阿里云Linux服务器介绍和使用讲解

简介:阿里云服务器介绍和使用讲解

第6集 阿里云Linux服务器部署JDK8实战

简介:在阿里云服务器上安装JDK8和配置环境变量

  • 地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  • linux下使用wget下载jdk8:

    进到目录/usr/local/software 配置环境变量

    解压:tar -zxvf jdk-8u201-linux-x64.tar.gz
    重命名:mv jdk1.8.0_201 jdk8
    vim /etc/profile
    加入
    export JAVA_HOME=/usr/local/software/jdk8
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME PATH CLASSPATH
    使用 source /etc/profile   让配置立刻生效
    
  • windows 命令行工具 :putty
  • windows 远程上传工具: wscp
  • Mac 命令行工具: Item2
  • Mac 远程上传工具 : Filezilla

第7集阿里云Linux服务器安装Maven实战

简介: Linux服务器下安装Maven

解压:tar -zxvf apache-maven-3.6.0-bin.tar.gz
重命名: mv apache-maven-3.6.0 maven
vim /etc/profile
export PATH=/usr/local/software/maven/bin:$PATH

立刻生效:source /etc/profile

第8集 阿里云服务器源码部署RocketMQ4.X(Linux系统)

简介:官方下载最新源码包,阿里云Linux服务器部署,解决内存不够问题

  • 文档地址:http://rocketmq.apache.org/docs/quick-start/

  • Liunx 解压安装 yum install unzip

  • 常见问题

    • NameServer内存不够怎么处理

      • 找到 runserver.sh 修改 JAVA_OPT

        报错问题如下
        [root@iZwz94sw188z3yfl7lpmmsZ apache-rocketmq]# sh bin/mqnamesrv
        Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
        Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
        Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006ec800000, 2147483648, 0) failed; error='Cannot allocate memory' (errno=12)
        #
        # There is insufficient memory for the Java Runtime Environment to continue.
        # Native memory allocation (mmap) failed to map 2147483648 bytes for committing reserved memory.
        # An error report file with more information is saved as:
        # /usr/local/software/rocketmq-all-4.4.0/distribution/target/apache-rocketmq/hs_err_pid8993.log
        
        解决如下 编辑 bin/runserver.sh:
        JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
        
    • Broker内存不足

      • 找到 runbroker.sh 修改 JAVA_OPT

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

第9集 阿里云源码安装RocketMQ4.X控制台(Linux系统)

简介:阿里云服务器安装RocketMQ控制台

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

    务必修改下面两个,再进行编译打包

    • 修改 pom.xml 版本号 (官方bug)
    • 修改application.xml里面的nameserver地址
  • 进入target目录 ,启动 java -jar rocketmq-console-ng-1.0.0.jar

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

第10集 RocketMQ4.4.X源码导入IDEA

简介:将RocketMQ源码导入IDEA,为后续阅读源码做准备

  • 下载源码,解压,导入即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值