【2023裸辞失业后之初学RocketMQ】

目录

    • RocketMQ概述
      • MQ概述
      • 常见的MQ产品
      • 常见的协议
    • Rocket的安装和启动
      • 基本概念
      • 系统架构
      • 安装RocketMQ和控制台

RocketMQ概述

MQ概述

Message Queue:是提供消息队列服务的中间件,提供消息生产,存储,消费的全过程。
作用:限流削峰,异步解耦。

常见的MQ产品

ActiveMQ:早期产品,使用Java开发的
RabbitMQ:吞吐量比kafuka和RocketMQ低,不是Java开发(ErLang),定制开发难度大
Kafuka:高吞吐量,常用于大数据领域实时计算和日志收集,采用Scala/Java开发,采用自研协议
RocketMQ:阿里巴巴产品,经过多年双十一检验,使用Java开发
在这里插入图片描述

常见的协议

    JMS,Java Messaging Service (Java消息服务)。是Java平台上有关MOM(的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口,简化企业应用的开发。ActiveMO是该协议的典型实现。
    STOMP, Streaming Text Orientated Message Protocol,是一种MOM设计的简单文本协议。STOMP提供一个可互操作的连接格式,允许客户端与任意STOMP消息代理进行交互。ActiveMQ是该协议的典型实现,RabbitMO通过插件可以支持该协议。
    AMOP,Advanced Message Oueuing Protocol(高级消息队列协议),一个提供统一消息服务的应用层标准,是应用层协议的一个开放标准,是一种MOM设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。 RabbitMQ是该协议的典型实现。

Rocket的安装和启动

基本概念

消息(Message):消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。
主题(Topic) :Topic表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位,一个生产者可以同时发送多种Topic的消息;而一个消费者只对某种特定的Topic感兴趣,即只可以订阅和消费一种Topic的消息。
在这里插入图片描述
队列(Queue) :存储消息的物理实体。一个Topic中可以包含多个Queue,每个Queue中存放的就是该Topic的消息Topic的Queue也被称为一个Topic中消息的分区。一个Topic的Queue中的消息只能被一个消费者组中的一个消费者消费
在这里插入图片描述

系统架构

1)producer:消息生产者,负责生产消息。Producer通过MO的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。
    RocketMQ中的消息生产者都是以生产者组(Producer Group) 的形式出现的。生产者组是同一类生产者的集合,这类Producer发送相同Topic类型的消息。
2)Consumer:消息消费者,负责消费消息。一个消息消费者会从Broker服务器中获取到消息,并对消息进行相关业务处理。
    RocketMO中的消息消费者都是以消费者组 (Consumer Group) 的形式出现的。消费者组是同一类消费者的集合,这类Consumer消费的是同一个Topic类型的消息。消费者组使得在消息消费方面,实现负载均衡和容错的目标变得非常容易。
在这里插入图片描述
3)NameServer:NameServer是一个Broker与Topic路由的注册中心,支持Broker的动态注册与发现。主要包括两个功能:

  • Broker管理: 接受Broker集群的注册信息并且保存下来作为路由信息的基本数据;提供心跳检测机制,检查Broker是否还存活。
  • 路由信息管理: 每个NameServer中都保存着Broker集群的整个路由信息和用于客户端查询的队列信息。Producer和Conumser通过NameServer可以获取整个Broker集群的路由信息,从而进行消息的投递和消费。

安装RocketMQ和控制台

1)到官网下载下载 下载地址 下载二进制的
在这里插入图片描述2)把这个包放到linux中,解压,修改bin中的 runserver.sh,runbroker.sh

unzip rocketmq-all-5.1.3-bin-release.zip

把下面这些内存改小(配置文件都看一遍,不同版本的配置文件可能不同),我这里是已经改好的
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
3)修改conf下broker.conf,加上下面两行

namesrvAddr=服务器外网IP:9876
brokerIP1=服务器外网IP

3.5)设置密码

  1. 创建密码文件: 首先,你需要创建一个密码文件,其中包含用户的用户名和密码。可以使用如下格式创建一个密码文件(例如:broker-users.properties):
# 用户名=密码
userA=passwordA
userB=passwordB
  1. 密码文件放置位置: 将创建的密码文件放置在 RocketMQ 的配置目录下,一般是 conf 文件夹。
  2. Broker 配置: 修改 broker.conf 配置文件,找到以下配置项,并添加对应的值:
# 启用密码认证
enablePropertyFilter=true# 指定密码文件的路径
propertyFile=${user.home}/conf/broker-users.properties

4)改完之后 看官网教程往下走就行 官网教程,注意启动broker的时候执行

nohup sh mqbroker -n localhost:9876 --enable-proxy &   -c ../conf/broker.conf & tail -f nohup.out

5)安装控制台,我是在docker中装的 安装docker教程(直接运行的springboot项目太麻烦了)
运行如下命令即可

docker run -d --restart=always --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=你的主机ip:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 9800:8080 pangliang/rocketmq-console-ng

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

矩阵svd分解和矩阵的伪逆

真该好好学习一下Latex数学公式的语法和规则了,否则,连写个博客都没法写,这叫什么事! https://blog.csdn.net/ViatorSun/article/details/82826664 直接上数学博士写的ppt图(肯定比我在这里胡说八道强的多&#xff0…

css - Media Query

使用bootstrap的grid system可以在一个较为粗糙的范围得到较好的响应性,但是通过viewport可以看到网站在具体哪个像素点处变得丑陋,再通过css media query来精细调整网页布局。 可以通过media query来提高网页移动响应能力。

四、运算符(2)

本章概要 关系运算符 测试对象等价 逻辑运算符 短路 字面值常量 下划线指数计数法 位运算符 关系运算符 关系运算符会通过产生一个布尔(boolean)结果来表示操作数之间的关系。如果关系为真,则结果为 true,如果关系为假&#xf…

SpringBoot日志文件

1.日志有什么用? 日志是程序的重要组成部分,如果程序报错,我们可以通过日志发现和定位问题,同样日志也可以实现以下的功能: 记录用户登录日志,方便分析用户是否是正常登录还是恶意破解用户;记…

使用 OpenCV 和 GrabCut 算法进行交互式背景去除

一、说明 我想,任何人都可以尝试从图像中删除背景。当然,有大量可用的软件或工具能够做到这一点,但其中一些可能很昂贵。但是,我知道有人使用窗口绘画3D魔术选择或PowerPoint背景去除来删除背景。 如果您是计算机视觉领域的初学者…

network failed to load response data: no resource with given ide...

Chrome 开发者工具无法显示服务器正常返回的 HTTP 请求 - Failed to load response data 今天做开发时遇到一个问题,Chrome 开发者工具 network 标签里,虽然一个 HTTP 请求已经成功从服务器端返回,但是 Chrome 开发者工具里,仍然…

ArcGIS Engine 与 Visual Studio版本对照表

通过C#对于Arcgis的二次开发,需要Visual Studio版本需要与ArcGIS Engine对应,Visual Studio版本的或高或低都不能使ArcObjects SDK for microsoft.Net framework安装成功。下面是各个版本的对照表。 序号ArcEngine版本visual Studio版本Network版本110.…

Spring 的创建和使用

Spring 就是一个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能 将对象存储到容器(Spring)中; 从容器中将对象取出来 在 Java 语言中对象也叫做 Bean,所以后面咱们再遇到对象就以 Bean 著称 一、创建 …

实训笔记7.25

实训笔记7.25 7.25笔记一、MapReduce的特殊使用场景1.1 通过MapReduce程序实现多文件Join操作1.1.1 通过在Reduce端实现join操作1.1.2 通过在Map端实现join操作 1.2 MapReduce中的计数器的使用1.2.1 计数器使用两种方式 1.3 MapReduce实现数据清洗 二、MapReduce的OutputFormat…

Linux笔记——搜索命令find、解压缩命令、vi编辑器、用户权限命令、系统信息相关命令讲解

系列文章目录 Linux笔记——磁盘进行分区与挂载介绍 Linux笔记——管道相关命令以及shell编程 Linux笔记——进程管理与网络监控技术讲解​​​​​​ Linux笔记——rpm与yum下载软件命令介绍 文章目录 系列文章目录 准备工作 一 搜索命令—— find 搜索 1.1 目标 1.…

html input 展示隐藏的密码

<!DOCTYPE html> <html> <meta http-equiv"Content-Type" content"text/html;charsetutf-8"/> <body><h2>登录表格</h2><form action"/action_page.php"><div class"container"><…

chrome查看浏览器内核日志

由于经常在网页上调试播放音视频&#xff0c;但是总遇到一些未知原因&#xff0c;导致无法正常播放&#xff0c;亟需查看浏览器内核日志&#xff0c;分析原因&#xff0c;做一下笔记。 (1) 查看浏览器快捷键属性 &#xff08;2&#xff09;在快捷键启动位置补充参数 --enable-…

菜鸡shader:L12 SD处理贴图制作时钟动画

文章目录 SD处理贴图Shader代码C#代码最后效果 SD处理贴图 呃呃感觉这节课&#xff0c;很大一部分都是在将怎么用SD来处理贴图&#xff0c;在这里就简单放一下课上的截图吧&#xff0c;我也跟着做了一下&#xff0c;虽然表盘十二个数排列间隔不一样&#xff0c;但还是稀碎地做…

脉冲频率、转速相关计算(信捷PLC C语言FC编程应用)

转速、线速度、角速度转换和计算关系请查看下面文章链接: 转速/线速度/角速度计算FC_RXXW_Dor的博客-CSDN博客里工业控制张力控制无处不在,也衍生出很多张力控制专用控制器,磁粉制动器等,本篇博客主要讨论PLC的张力控制相关应用和算法,关于绕线机的绕线算法,大家可以参看…

12.Netty源码之整体架构脉络

Netty 整体架构脉络 Netty 的逻辑处理架构为典型网络分层架构设计&#xff0c;共分为网络通信层、事件调度层、服务编排层&#xff0c;每一层各司其职。 网络通信层 网络通信层的职责是执行网络 I/O 的操作。它支持多种网络协议和 I/O 模型的连接操作。当网络数据读取到内核缓冲…

闲置旧手机搭建服务器?在安卓手机上使用Termux搭建web服务「公网远程访问」

文章目录 概述1.搭建apache2.安装cpolar内网穿透3.公网访问配置4.固定公网地址5.添加站点 概述 Termux是一个Android终端仿真应用程序&#xff0c;用于在 Android 手机上搭建一个完整的Linux 环境&#xff0c;能够实现Linux下的许多基本操作&#xff0c;不需要root权限Termux就…

docker系列5:docker安装nginx

传送门 前面介绍了docker的安装&#xff1a;docker系列1&#xff1a;docker安装 还有docker镜像加速器&#xff1a;docker系列2&#xff1a;阿里云镜像加速器 以及docker的基本操作&#xff1a; docker系列3&#xff1a;docker镜像基本命令 以及容器的基本命令&#xff1a;…

【iOS】多界面传值

文章目录 前言一、属性传值二、协议传值三、block传值四、KVO传值五、KVO的自动触发与手动触发六、通知传值总结 前言 在写网易云音乐以及3GShare包括后面的学生管理系统时&#xff0c;用到许多界面传值方法&#xff0c;特撰写博客记录目前学过的几种多界面传值方法 一、属性…

【Docker】Docker部署私有仓库的配置及应用

文章目录 一、Docker-registry 搭建本地私有仓库1. Registry 的概念2. Registry 的部署过程 二、Docker-harbor 搭建私有仓库1. 什么是Harbor2. Harbor 的特性3. Harbor的构成4. Harbor 的部署过程4.1 安装 harbor4.2 创建项目并进行上传下载4.3 上传镜像到私有仓库4.4 从私有仓…

Vue--插槽

一、插槽-默认插槽 1.作用 让组件内部的一些 结构 支持 自定义 2.需求 将需要多次显示的对话框,封装成一个组件 3.问题 组件的内容部分&#xff0c;不希望写死&#xff0c;希望能使用的时候自定义。怎么办 4.插槽的基本语法 组件内需要定制的结构部分&#xff0c;改用**…