RocketMQ系统性学习-RocketMQ领域模型及Linux下单机安装

MQ 之间的对比

三种常用的 MQ 对比,ActiveMQ、Kafka、RocketMQ

性能方面:

  • 三种 MQ 吞吐量级别为:万,百万,十万
  • 消息发送时延:毫秒,毫秒,微秒
  • 可用性:主从,分布式,分布式

扩展性方面:

  • 水平伸缩能力:均支持
  • 技术栈:Java,Java/Scala,Java

功能维度方面:

  • 消息重试能力:均支持
  • 消息堆积能力:跟吞吐量成正相关,三种 MQ 分别为:弱,强,强
  • 消息过滤:支持,不支持,支持
  • 延迟消息:均支持
  • 消息回溯(用于消费者宕机恢复后,回溯到宕机前消费的位置):不支持,支持,支持

RocketMQ 领域模型

  • Topic:主题,可以理解为类别、分类的概念

  • MessageQueue:消息队列,存储数据的一个容器(队列索引数据),默认每个 Topic 下有 4 个队列被分配出来存储消息

  • Message:消息,真正携带信息的载体概念

  • Producer:生产者,负责发送消息

  • Consumer:消费者,负责消费消息

  • ConsumerGroup:众多消费者构成的整体或构成的集群,称之为消费者组

  • Subscription:订阅关系,消费者得知道自己需要消费哪个 Topic 下的哪个队列的数据

  • Message Queue:一个 Topic 下可以设置多个消息队列,发送消息的时候,RocketMQ 会轮询该 Topic 下的所有队列将消息发送出去(下图中 Broker 中 Topic 指向的 Q1、Q2、Q3、Q4 就是 MessageQueue)

  • Tag:对 Topic 的进一步细化

  • Broker:Broker 是 Rocket MQ 的主要角色,主要管理消息的存储、发送、查询等功能

  • Name Server:提供轻量级的服务发现,用于存储 Topic 和 Broker 关系信息

    主要功能:

    1. 接收 Broker 的注册,并提供心跳机制去检查 Broker 是否存活
    2. 路由管理,每个 nameserver 都有整个 Broker 集群的路由信息和客户端的查询队列

在这里插入图片描述

Rocket MQ 单机服务启动

RocketMQ 官方下载地址:https://rocketmq.apache.org/zh/download/

单机服务启动,选择二进制文件进行下载:

在这里插入图片描述

将二进制文件上传至服务器,进行解压:

# 安装 unzip 命令
yum install unzip
# 解压
unzip rocketmq-all-5.1.4-bin-release.zip

修改 RocketMQ 的 JVM 配置

原本分配的 JVM 堆内存太大,如果启动时分配的内存不足就会报错,需要修改 bin 目录下的:runbroker.shrunserver.sh 文件:

runbroker.sh 文件修改后的内容如下图:

在这里插入图片描述

runserver.sh 文件修改后的内容如下图:

在这里插入图片描述

配置 broker.conf 文件

conf/broker.conf 文件中追加如下内容:

brokerIP1=【填服务器的公网 ip 地址】
namesrvAddr=localhost:9876

linux 安装 jdk 环境

rocketmq 是 java 写的,因此还需要安装 jdk 环境,并且有 JAVA_HOME 环境变量

安装 jdk 流程如下:

# 创建目录
mkdir /usr/lib/jvm
# 解压到 /usr/lib/jvm 目录下
tar -xvf jdk-8u144-linux-x64.tar.gz -C /usr/lib/jvm
# 配置环境变量,Linux 环境变量在 /etc/profile 中配置
vi /etc/profile
# 在结尾添加如下内容
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 激活修改的配置
source /etc/profile
# 检查安装的 jdk
java -version

启动

# 1.启动 nameserver, nohup 和 & 可以让程序在后台运行
nohup sh bin/mqnamesrv &
# 查看日志,判断是否启动成功
tail ‐f ~/logs/rocketmqlogs/namesrv.log
# 2023-12-15 15:17:10 INFO main - The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876
# 2.启动 broker,-n 是 nameserver 的地址
nohup sh bin/mqbroker -c conf/broker.conf ‐n localhost:9876 &
# 查看日志,判断是否启动成功
tail ‐f ~/logs/rocketmqlogs/broker.log
# 2023-12-15 15:17:56 INFO main - The broker[broker-a, 218.95.37.160:10911] boot success. serializeType=JSON and name server is localhost:9876

启动后,使用 jps 查看是否启动成功:
在这里插入图片描述

关闭命令

sh bin/mqshutdown broker
sh bin/mqshutdown namesrv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/248957.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】机器学习概述(一)机器学习三要素——模型、学习准则、优化算法

​ 文章目录 一、基本概念二、机器学习的三要素1. 模型a. 线性模型b. 非线性模型 2. 学习准则a. 损失函数1. 0-1损失函数2. 平方损失函数(回归问题)3. 交叉熵损失函数(Cross-Entropy Loss)4. Hinge 损失函数 b. 风险最小化准则1.…

MQTT 介绍与学习 —— 筑梦之路

之前写过的相关文章: MQTT协议(转载)——筑梦之路_mqtt url-CSDN博客 k8s 部署mqtt —— 筑梦之路-CSDN博客 CentOS 7 搭建mqtt服务——筑梦之路_腾讯云宝塔搭 centos 7.9.2009 x86_64 建标准mqtt服务器-CSDN博客 mqtt简介 MQTT&#xff…

tcp/ip协议2实现的插图,数据结构5 (22 - 章)

(103) 103 二二1 协议控制块 结构 file, socket , rawcb , inpcb , tcpcb 之间的联系 (104) (105)

Python:如何将MCD12Q1\MOD11A2\MOD13A2原始数据集批量输出为TIFF文件(镶嵌/重投影/)?

博客已同步微信公众号:GIS茄子;若博客出现纰漏或有更多问题交流欢迎关注GIS茄子,或者邮箱联系(推荐-见主页). 00 前言 之前一段时间一直使用ENVI IDL处理遥感数据,但是确实对于一些比较新鲜的东西IDL并没有python那么好的及时性&…

【Linux】使用官方脚本自动安装 Docker(Ubuntu 22.04)

前言 Docker是一种开源平台,用于开发、交付和运行应用程序。它利用了容器化技术,使开发人员能够将应用程序及其依赖项打包到一个称为Docker容器的可移植容器中。这些容器可以在任何运行Docker的机器上快速、一致地运行,无论是开发环境、测试…

微服务架构之争:Quarkus VS Spring Boot

在容器时代(“Docker时代”),无论如何,Java仍然活着。Java在性能方面一直很有名,主要是因为代码和真实机器之间的抽象层,多平台的成本(一次编写,随处运行——还记得吗?&a…

Ubuntu虚拟机怎么设置静态IP

1 首先先ifconfig看一下使用的是哪个网络接口: 2 编辑 sudo vi /etc/netplan/00-installer-config.yamlnetwork:ethernets:ens33: # 根据您的网络接口进行修改,有的是eth0,有的是ens33,具体看第一步显示的是哪个网络接口addres…

【css】css实现文字两端对齐效果:

文章目录 一、方法1:二、方法2:三、注意: 一、方法1: 给元素设置 text-align: justify;text-align-last: justify;并且加上text-justify: distribute-all-line; 目的是兼容ie浏览器 p{width: 130px;text-align: justify;text-alig…

教育数字化转型 赋能家庭场景自主学习习惯养成

北京市气象台12月12日22时升级发布暴雪橙色预警信号,北京市教委决定自12月13日开始,全市中小学幼儿园采取学生临时居家学习措施。自疫情以来,家庭已经成为另一个学习中心,学校不再是教育的孤岛。 学习方式的变革,数字…

【️什么是分布式系统的一致性 ?】

😊引言 🎖️本篇博文约8000字,阅读大约30分钟,亲爱的读者,如果本博文对您有帮助,欢迎点赞关注!😊😊😊 🖥️什么是分布式系统的一致性 &#xff1f…

【C++】POCO学习总结(十七):日志系统(级别、通道、格式化、记录流)

【C】郭老二博文之:C目录 1、Poco::Message 日志消息 1.1 说明 所有日志消息都在Poco::Message对象中存储和传输。 头文件:#include “Poco/Message.h” 一条消息包含如下内容:优先级、来源、一个文本、一个时间戳、进程和线程标识符、可选…

MacOS下载配置OpenCV

主要参考的是OpenCV官方的这篇文章:OpenCV: Installation in MacOS 安装OpenCV需要下载一些安装包:CMake3.9、Git、Python这些我之前已经下载好,这里就不过多阐述了,自行百度安装即可 1.从Git库获取OpenCV: git clon…

Chrome安装Vue插件vue-devtools

1.下载 下载扩展文件,可以去官网下载 GitHub - vuejs/devtools: ⚙️ Browser devtools extension for debugging Vue.js applications. 可以在这里下载,比较方便 https://gitee.com/zhang_banglong/vue-devtools 2.解压 下载好之后解压文件 3.打开控制…

vue-实现高德地图-省级行政区地块显示+悬浮显示+标签显示

<template><div><div id"container" /><div click"showFn">显示</div><div click"removeFn">移除</div></div> </template><script> import AMapLoader from amap/amap-jsapi-load…

基于Nexus搭建Maven私服基础入门

什么是Nexus&#xff1f;它有什么优势&#xff1f; 要了解为什么需要nexus的存在&#xff0c;我们不妨从以下几个问题来简单了解一下: 为什么需要搭建私服&#xff1f;如果没有私服会出现什么问题&#xff1f; 对于企业开发而言&#xff0c;如果没有私服&#xff0c;我们所有…

浅析AI视频分析与视频管理系统EasyCVR平台及场景应用

人工智能的战略重要性导致对视频智能分析的需求不断增加。鉴于人工智能视觉技术的巨大潜力&#xff0c;人们的注意力正在从传统的视频监控转移到计算机视觉的监控过程自动化。 1、什么是视频分析&#xff1f; 视频分析或视频识别技术&#xff0c;是指从视频片段中提取有用信息…

自动驾驶学习笔记(十八)——Lidar感知

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 Lidar感知 运动补偿 点云分割 总结…

2021年数维杯国际大学生数学建模A题新冠肺炎背景下港口资源优化配置策略求解全过程文档及程序

2021年数维杯国际大学生数学建模 A题 新冠肺炎背景下港口资源优化配置策略 原题再现&#xff1a; 2020年初&#xff0c;新型冠状病毒&#xff08;COVID-19&#xff09;在全球迅速蔓延。根据世界卫生组织2021年7月31日的报告&#xff0c;新冠病毒疫情对人类的影响可能比原先预…

动手学深度学习-自然语言处理-预训练

词嵌入模型 将单词映射到实向量的技术称为词嵌入。 为什么独热向量不能表达词之间的相似性&#xff1f; 自监督的word2vec。 word2vec将每个词映射到一个固定长度的向量&#xff0c;这些向量能更好的表达不同词之间的相似性和类比关系。 word2vec分为两类&#xff0c;两类…

RT-DETR 图片目标计数 | 特定目标进行计数

全类别计数特定类别计数如何使用 RT-DETR 进行对象计数 有很多同学留言说想学 RT-DETR 目标计数。那么今天这篇博客,我将教大家如何使用 RT-DETR 进行对象计数。RT-DETR 是一种非常强大的对象检测模型,它可以识别图像中的各种对象。我们将学习如何利用这个模型对特定对象进行…