RocketMQ

介绍与概念

在github上的说法来看: Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容量和灵活的可扩展性。它提供了多种功能:

  • 发布/订阅消息模型和点对点
  • 预定的消息传递
  • 消息追溯性按时间或偏移量
  • 记录流媒体的中心
  • 大数据集成
  • 可靠的FIFO和严格的有序消息传递在同一队列中
  • 高效的推拉消费模式
  • 单个队列中的百万级消息累积容量
  • 多种消息传递协议,如JMS和OpenMessaging
  • 灵活的分布式横向扩展部署架构
  • Lightning-fast批处理消息交换系统
  • 各种消息过滤器机制,如SQL和Tag
  • Docker图像用于隔离测试和云隔离集群
  • 功能丰富的管理仪表板,用于配置,指标和监控
  • 访问控制列表
  • 消息跟踪

上面都是官方列举出来了,还有如下特点:

  • 支持Broker和Consumer端消息过滤
  • 支持拉pull和推push两种消费模式,也就是上面说的推拉消费模式
  • 支持单master节点,多master节点,多master节点多slave节点
  • 消息失败重试机制,支持特定level的定时消息
  • 新版本底层采用Netty

官方网站: http://rocketmq.apache.org/docs/motivation/ 也对RocketMQ和ActiveMQ以及Kafka做了一个对比.

核心概念

参考: http://rocketmq.apache.org/docs/core-concept/ 本人英文阅读能力有点弱,大家请看官方文档.

  • 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文件里面

云服务器安装RocketMQ

安装RocketMQ

  1. 下载: http://rocketmq.apache.org/docs/quick-start/, 直接下载源代码版本
  2. 上传到云服务器
  3. 开始操作(参考: http://rocketmq.apache.org/docs/quick-start/):
1. 安装unzip命令: yum install unzip
2. 解压: unzip rocketmq-all-4.4.0-source-release.zip
3. 重命名: mv rocketmq-all-4.4.0 rocketmq
4. 进入文件夹: cd rocketmq
5. 使用maven进行源码编译: mvn -Prelease-all -DskipTests clean install -U
6. 进入文件夹: cd distribution/target/apache-rocketmq
7. 启动服务: sh bin/mqnamesrv (注意如果内存小于4G可能会失败)
  1. 启动失败的原因与解决:

    • 启动失败的原因与解决:
         [root@iZwz94sw188z3yfl7lpmmsZ apache-rocketmq]# sh bin/mqnamesrvJava HotSpot(TM) 64-Bit Server VM warning: Using the DefNewyoung collector with the CMS collector is deprecated and willlikely be removed in a future releaseJava HotSpot(TM) 64-Bit Server VM warning:UseCMSCompactAtFullCollection is deprecated and will likely beremoved 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 Environmentto continue.# Native memory allocation (mmap) failed to map 2147483648 bytesfor 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这种原因是内存不足导致的,默认是4G,解决办法是编辑 bin/runserver.sh: JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  2. 以守护进程的方式启动:
nohup sh bin/mqnamesrv &   这个命令可能会nohup: ignoring input and appending output to ‘nohup.out’,如果出现这个,执行:
tail -f nohup.out这个时候ctrl+c就不会退出程序,仅仅是让程序后台运行
  1. 启动Broker
[root@wangzhi apache-rocketmq]# sh bin/mqbroker -n localhost:9876
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 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 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/software/rocketmq/distribution/target/apache-rocketmq/hs_err_pid3012.log出现了Broker内存不足的问题:
vim bin/runbroker.sh 修改 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" 的内容为:
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"完成之后以守护进程的方式进行启动:
nohup sh bin/mqbroker -n localhost:9876 &
tail -f nohup.out这个时候可以使用jps查看进程,并且可以根据进程号来kill进程
  1. 进行测试:
export NAMESRV_ADDR=localhost:9876sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producersh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
  1. 远程连接需要开发9876和10911端口,在生产环境不要开放

源码安装RcoketMQ4.X控制台

  1. 上传源码包
  2. 解压: unzip rocketmq-externals-master.zip
  3. 进入文件夹: cd rocketmq-externals-master
  4. 开始操作:
先修改两个BUG,一个是修改pom.xml的版本号.cd rocketmq-console/vim pom.xml : 将里面的rocketmq的版本号后面的snashop删掉,只留个4.4.0就好
在上一个console的路径下继续:cd src/main/resources/vim application.properties : 修改nameserver地址 rocketmq.config.namesrvAddr=127.0.0.1:9876
返回到console目录,进行编译安装:mvn clean package -Dmaven.test.skip
  1. 启动:
cd targetjava -jar rocketmq-console-ng-1.0.0.jar使用ctrl + c关闭程序,以守护进程的方式进行启动nohup java -jar rocketmq-console-ng-1.0.0.jar &
tail -f nohup.out

转载于:https://www.cnblogs.com/wadmwz/p/10684631.html

RocketMQ介绍与云服务器安装相关推荐

  1. 服务器系统怎么打驱动精灵,云服务器安装驱动精灵

    云服务器安装驱动精灵 内容精选 换一换 Windows弹性云服务器虚拟化驱动异常(Tools没有正常运行).为保证弹性云服务器的正常使用,请参见本节内容进行修复.弹性云服务器虚拟化驱动异常会影响弹性云 ...

  2. 阿里云服务器安装RocketMQ及其控制台

    1. 环境说明 本文所使用的阿里云服务器为CentOS8,JDK为1.8,Maven为3.6.3,RocketMQ为4.9.1 2. 下载安装包 进入RocketMQ官网 点击最新版本,进入 点击下载 ...

  3. 云服务器安装虚拟机方法,云服务器安装虚拟机方法

    云服务器安装虚拟机方法 内容精选 换一换 云服务器创建后区域固定,不能将云服务器转移到另一个区域,也不能将云服务器转移到另一个帐号.您可以通过镜像迁移方式实现云服务器的跨帐号跨区域迁移.服务器迁移的常 ...

  4. 云服务器可以安装操作系统么,云服务器安装操作系统吗

    云服务器安装操作系统吗 内容精选 换一换 ISO是一种光盘映像文件,通过特定的压缩方式,将大量的数据文件统一为一个后缀名为iso的映像文件.ISO文件可以理解为从光盘中复制出来的数据文件,所以ISO文 ...

  5. kodi 更改服务器文件,云服务器安装kodi

    云服务器安装kodi 内容精选 换一换 只有运行中的云服务器云主机才允许用户登录.Windows操作系统用户名"Administrator".首次登录云耀云服务器,请先通过&quo ...

  6. 云服务器安装操作系统后如何连接,服务器如何安装操作系统

    服务器如何安装操作系统 内容精选 换一换 如果您需要使用毕昇编译器,则需要先在服务端安装毕昇编译器.毕昇编译器基于开源LLVM开发,并进行了优化和改进,同时将flang作为默认的Fortran语言前端 ...

  7. 华为云服务器安装win10系统,云服务器可以安装win10吗

    云服务器可以安装win10吗 内容精选 换一换 本节定义了云耀云服务器上报云监控的监控指标的命名空间,监控指标列表,各项监控指标的具体含义与使用说明,用户可以通过云监控检索云耀云服务器服务产生的监控指 ...

  8. 云服务器安装其他版本系统,云服务器安装自己的系统版本

    云服务器安装自己的系统版本 内容精选 换一换 有,该NTP服务器仅限于在华为云控制台上购买的弹性云服务器安装使用.如需在购买的弹性云服务器上安装NTP服务器,您可以选择使用华为云控制台自己提供的NTP ...

  9. 在服务器上安装vasp如何得到输出文件,云服务器安装vasp

    云服务器安装vasp 内容精选 换一换 安装完操作系统后的临时云服务器还需要进行相关配置,并安装云平台提供的Guest OS driver,才能保证后续创建的云服务器正常使用.Guest OS dri ...

最新文章

  1. 新手入门 keil MDK5 建立STM32工程
  2. bogofilter 使用
  3. java 字符串为空_java判断字符串为空,方法详解
  4. 苹果大幅削减iPad产量 将芯片等部件调配给iPhone 13
  5. 字节大牛教你手撕Java学习,Java核心知识点
  6. Java在 list 中对每个元素遍历其是否在原 list 中有相同元素的方法
  7. CNC五轴编程的全面总结
  8. 移动端自动化测试appium(6)--搭建模拟器和真机环境
  9. java xtend_Java加上Xtend,满足你对C#语法的所有想象
  10. mq服务器与客户端消息同步,RocketMQ:主从同步的实现
  11. facebook 使用的软件
  12. 网络系统安全综合解决方案
  13. HTML期末作业-图书商城书店
  14. tomcat出现 “Deploying web application directory”问题,实际上只是暂时卡住了而已
  15. 2022.12.22 c词汇背诵
  16. 用STM32F103使用OLED屏实现贪吃蛇游戏
  17. 联通设置4g信号显示无服务器,联通4G信号差,这样操作让信号增强数倍!
  18. 列举一台微型计算机的常用硬件,信息技术练习题七
  19. 4W家庭理财 V2.5
  20. Bell-Lapudula模型

热门文章

  1. Go 初体验 - 令人惊叹的语法 - defer.3 - defer 函数参数计算时机
  2. 学习笔记 线程异步请求过程
  3. 《Head First Java》读书笔记(3) - 异常和IO
  4. vue.js学习笔记(1)
  5. Android扫描二维码 实现 登录网页
  6. ZeroMQ接口函数之 :zmq_msg_init - 初始化一个空的ZMQ消息结构
  7. 【转】从网页上下载控件时制作CAB包的方法
  8. C# 3.0 New Language Features (Part 1)
  9. php curl post 文件_php curl文件上传$_FILES为空,只有$_POST有值,如何兼容php5.0~5.6各版本...
  10. Circuit Breaker(电路熔断器)模式原理