MQ概述及RocketMQ在Linux下的安装和启动

这篇具有很好参考价值的文章主要介绍了MQ概述及RocketMQ在Linux下的安装和启动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、MQ概述

1.1、MQ简介

MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。

1.2、MQ用途

从网上可以查看到很多的关于MQ用途的叙述,但总结起来其实就以下三点:

1.限流削峰

MQ可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮。
MQ概述及RocketMQ在Linux下的安装和启动

2.异步解耦

上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与并发度,且系统耦合度太高。
而异步调用则会解决这些问题。所以两层之间若要实现由同步到异步的转化,一般性做法就是,在这两层间添加一个MQ层。

MQ概述及RocketMQ在Linux下的安装和启动

3.数据收集

分布式系统会产生海量级数据流,如:业务日志、监控数据、用户行为等。针对这些数据流进行实时或批量采集汇总,然后对这些数据流进行大数据分析,这是当前互联网平台的必备技术。通过MQ完成此类数据收集是最好的选择。

1.3、MQ劣势

系统可用性降低

系统引入的外部依赖越多,系统稳定性越差。一旦 MQ 宕机,就会对业务造成影响。需利用各种手段提高MQ的可用性。

系统复杂度提高

MQ 的加入大大增加了系统的复杂度,以前系统间是同步的远程调用,现在是通过 MQ 进行异步调用。 需要处理MQ的可靠性问题,防止消息丢失。

1.4、MQ可靠性核心问题

生产者发送消息的可靠性

生产者如何确保成功发送消息到MQ。 同步重试还是异步回调。

MQ自身可靠性

已返回成功接收消息时,如何确保消息不丢失。—— 持久化机制。

消费者消费消息的可靠性

如何确保一定有消费者成功消费消息。—— 如何ACK。

二、RocketMQ简介

官方:https://rocketmq.apache.org/

RocketMQ是一个统一消息引擎、轻量级数据处理平台,是⼀款阿⾥巴巴开源的消息中间件。2016年11⽉28⽇,阿⾥巴巴向 Apache 软件基⾦会捐赠RocketMQ,成为 Apache 孵化项⽬。2017 年 9 ⽉ 25 ⽇,Apache 宣布 RocketMQ孵化成为 Apache 顶级项目(TLP ),成为国内⾸个互联⽹中间件在 Apache 上的顶级项⽬。

三、RocketMQ的安装与启动

3.1基本概念

3.1.1 消息(Message)

消息是指,消息系统所传输信息额物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。

3.1.2 主题(Tpotic)

Topic表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。 其实主题就是把消息进行分类。

一个生产者可以同时发送多种Topic的消息;而一个消费者只对某种特定的Topic感兴趣,即只可以订阅和消费一种Topic的消息。
MQ概述及RocketMQ在Linux下的安装和启动

生产者对主题为一对多;消费者对主题为一对一
producer:topic 1:n consumer:topic 1:1
主题对信息为一对多;信息对主题为一对一
topic:message 1:n message:topic 1:1

3.2单机安装与启动

3.2.1准备工作

软硬件需求:系统要求是64位的,JDK要求是1.8及其以上版本的。

下载RocketMQ安装包:
https://archive.apache.org/dist/rocketmq/4.9.0/rocketmq-all-4.9.0-bin-release.zip

将下载的安装包上传到Linux(也可以直接使用wget命令下载到Linux)

[root@iZ2ze2rikqlh3ql1n2cw61Z soft]# yum install -y unzip	
[root@iZ2ze2rikqlh3ql1n2cw61Z soft]# unzip rocketmq-all-4.9.0-bin-release.zip
[root@iZ2ze2rikqlh3ql1n2cw61Z soft]# cd rocketmq-all-4.9.0-bin-release/
[root@iZ2ze2rikqlh3ql1n2cw61Z rocketmq-all-4.9.0-bin-release]# ll
total 48
drwxr-xr-x 2 root root  4096 Jun 11  2021 benchmark
drwxr-xr-x 3 root root  4096 Jun 11  2021 bin
drwxr-xr-x 6 root root  4096 Jun 11  2021 conf
drwxr-xr-x 2 root root  4096 Jun 11  2021 lib
-rw-r--r-- 1 root root 17327 Jun  9  2021 LICENSE
-rw-r--r-- 1 root root  1338 Jun  9  2021 NOTICE
-rw-r--r-- 1 root root  5132 Jun  9  2021 README.md

3.2.2、修改初始内存

3.2.2.1、修改runserver.sh

使用vim命令打开bin/runserver.sh文件。现将这些值修改为如下:

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
3.2.2.2、修改runbroker.sh

使用vim命令打开bin/runbroker.sh文件。现将这些值修改为如下:

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g"

3.2.3启动

启动NameServer

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

查看进程:

[root@iZ2ze2rikqlh3ql1n2cw61Z rocketmq-all-4.9.0-bin-release]# jps
20147 NamesrvStartup
20167 Jps

启动 Broker

### start broker
$ nohup sh bin/mqbroker -n localhost:9876 &

### verify broker
$ tail -f ~/logs/rocketmqlogs/broker_default.log 
The broker[broker-a,192.169.1.2:10911] boot success...

3.2.4、发送/接收消息测试

$ 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.5、关闭Server

$ sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

$ sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

四、控制台的安装和启动

4.1、是什么

RocketMQ有一个可视化的dashboard,通过该控制台可以直观的查看到很多数据。

4.2、下载地址

官方地址:https://github.com/apache/rocketmq-dashboard

4.3、修改配置

修改其src/main/resources中的application.properties配置文件。
原来的端口号为8080,修改为一个不常用的,如7777
指定RocketMQ的name server地址(即要访问的linux虚拟机IP地址)
MQ概述及RocketMQ在Linux下的安装和启动

4.4、添加依赖

在解压目录rocketmq-console的pom.xml中添加如下JAXB依赖。

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>

4.5、打包

在rocketmq-console目录下运行maven的打包命令。

mvn clean package -Dmaven.test.skip=true

4.6、启动控制台

java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar

4.7、访问控制台

http://localhost:7777/文章来源地址https://www.toymoban.com/news/detail-489926.html

到了这里,关于MQ概述及RocketMQ在Linux下的安装和启动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MQ - 闲聊MQ一二事儿 (Kafka、RocketMQ 、Pulsar )

    如上图我们可以把消息队列的发展切分成了三个大的阶段 2003-2010年,计算机软件行业兴起。 系统间强耦合是程序设计的难题。 ActiveMQ和RabbitMQ等消息队列出现。 消息队列致力于解决系统间耦合和异步化操作问题。 系统间解耦和异步化是消息队列最主要的功能和使用场景。 1

    2024年02月16日
    浏览(36)
  • 6、LINUX 系统启动过程概述

    Linux系统启动过程可以分为以下几个阶段: BIOS/UEFI:计算机开机时,首先会执行基本输入输出系统(BIOS)或统一可扩展固件接口(UEFI)。这个过程中,BIOS/UEFI会自检硬件设备并初始化它们,然后查找并加载引导设备(如硬盘或光盘)中的引导扇区。 引导管理器(Boot Manager)

    2024年02月14日
    浏览(36)
  • MQ公共特性介绍 (ActiveMQ, RabbitMQ, RocketMQ, Kafka对比)

    本文主要介绍所有MQ框架都具备的公共特点,同时对比了一些目前比较主流MQ框架的优缺点,给大家做技术选型作参考。 MQ,MessageQueue,消息中间件 从世界上第一个MQ的诞生历程来看,它最初是为了解决通信的问题。 消息队列,又叫做消息中间件。是指用高效可靠的消息传递

    2024年02月15日
    浏览(49)
  • mq 消息队列 mqtt emqx ActiveMQ RabbitMQ RocketMQ

    十几年前,淘宝的notify,借鉴ActiveMQ。京东的ActiveMQ集群几百台,后面改成JMQ。 Linkedin的kafka,因为是scala,国内很多人不熟。淘宝的人把kafka用java写了一遍,取名metaq,后来再改名RocketMQ。 总的来说,三大原因,语言、潮流、生态。 MQ这种东西,当你的消息量不大的时候,用啥

    2024年02月12日
    浏览(53)
  • 【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka

    作者简介 前言 博主之前写过一个完整的MQ系列,包含RabbitMQ、RocketMQ、Kafka,从安装使用到底层机制、原理。专栏地址: https://blog.csdn.net/joker_zjn/category_12142400.html?spm=1001.2014.3001.5482 本文是该系列的清单综述,会拉通来聊一下三大MQ的特点和各种适合的场景。 目录 1.概述 1.1.M

    2024年02月09日
    浏览(53)
  • 主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ]

    下面是 Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ 的更详细和专业的对比: 特性/功能 Kafka RabbitMQ ZeroMQ RocketMQ ActiveMQ 语言 Java Erlang C Java Java 协议 自有协议 AMQP 自有协议 自有协议 JMS 可靠性 Kafka 使用分布式日志存储,具有高可靠性和持久性 RabbitMQ 提供多种消息确认模式,具有高

    2024年02月03日
    浏览(36)
  • MQ对比选型:RocketMQ、Kafka、RabbitMQ、ActiveMQ、ZeroMQ

    本文将从多个角度全方位对比目前比较常用的几个MQ: RocketMQ Kafka RabbitMQ ActiveMQ ZeroMQ下文单独说明。 特性 RocketMQ Kafka RabbitMQ ActiveMQ 单机吞吐量 10 万级,支撑高吞吐 10 万级以上,甚至有文献称,可以达到单机百万级TPS。 万级,同ActiveMQ 万级,相对其他MQ较低。 topic 数量对吞

    2024年04月27日
    浏览(43)
  • 消息中间件(MQ)对比:RabbitMQ、Kafka、ActiveMQ 和 RocketMQ

    前言 在构建分布式系统时,选择适合的消息中间件是至关重要的决策。RabbitMQ、Kafka、ActiveMQ 和 RocketMQ 是当前流行的消息中间件之一,它们各自具有独特的特点和适用场景。本文将对这四种消息中间件进行综合比较,帮助您在项目中作出明智的选择。 1. RabbitMQ 特点: 消息模

    2024年02月20日
    浏览(54)
  • 08-Linux安装RocketMQ、RocketMQ控制台

    下载RocketMQ         http://rocketmq.apache.org/release_notes/release-notes-4.4.0/ 环境要求         Linux 64位操作系统         64bit JDK 1.8+ 1 上传文件到Linux系统         /usr/local/rocketMQ 2 解压到安装目录         unzip rocketmq-all-4.4.0-bin-release.zip 3 解压后的文件夹名为 rocketmq-4

    2024年02月05日
    浏览(40)
  • Ubuntu环境下的Tomcat服务器安装及其自启动配置

    仅供自己记录所用 1、 Tomcat 下载与安装         注意:在安装tomcat之前需要安装Java,JDK                 首先到官网下载安装包:Apache Tomcat® - Welcome! 下载到/usr/local/tomcat/下面并解压:tar -zxvf apache-tomcat-8.5.87.tar.gz 接下来就是给Tomcat文件添加使用权限:sudo chmod 755 -R apa

    2024年02月02日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包