K8S系列——(二)、K8S部署RocketMQ集群

1、环境准备

要将RocketMQ部署到K8S上,首先你需要提前准备一个K8S集群环境,如图我已经准备好了一个版本为 v1.28.13 的 K8S 集群(其他版本也没问题):

角色IP
Master192.168.6.220
Node-1192.168.6.221
Node-2192.168.6.222

在这里插入图片描述

2、RocketMQ的部署方式

  • 2m-noslave: 多Master模式,无Slave [双主模式]
  • 2m-2s-sync: 多Master多Slave模式,同步双写 [双主双从+同步模式]
  • 2m-2s-async:多Master多Slave模式,异步复制 [双主双从+异步模式]

3、RocketMQ发送消息方式

  • 同步发送: 指消息发送方发出数据后会在收到接收方发回响应之后才发下一个数据包
  • 异步发送: 指发送方发出数据后,不等接收方发回响应,接着发送下个数据包, 异步方式也需要Broker返回确认信息
  • 单向发送: 指只负责发送消息而不等待服务器回应且没有回调函数触发

4、RocketMQ三种消息发送模式使用场景

具体使用哪种模式,这主要是看应用场景

  • 同步发送:主要运用在比较重要一点消息传递/通知等业务
  • 异步发送:通常用于对发送消息响应时间要求更高/更快的场景
  • 单向发送:适用于某些耗时非常短,但对可靠性要求并不高的场景,例如日志收集,只发送消息不等待服务器响应,只发送请求不等待应答。此方式发送消息的过程耗时非常短,一般在微秒级别

5、RocketMQ端口

  • rocketmq 默认端口:9876(即nameserver端口)
  • 非vip通道端口:10911
  • vip通道端口:10909
    • 10909是VIP通道对应的端口,在JAVA中的消费者对象或者是生产者对象中关闭VIP通道即可无需开放10909端口
本文部署的是RocketMQ的双主双从+同步模式
  • broker-a-master 主1
  • broker-b-master 主2
  • broker-a-slave 从1
  • broker-a-slave 从2
  • NameServer(注册中心)
  • rocketmq-console(可视化web界面)

6、安装NFS

因为系统当中的rocketmq、mysql、nacos、redis和file文件模块需要持久化的文件存储,所以我们要为这些持久化的文件存储创建目录。这次我打算使用nfs,需要准备一台nfs服务器,为了方便我就直接使用k8s的主节点来充当nfs服务器了。先来安装 nfs-utils 软件包(注意所有k8s节点都要安装)

6.1 更新软件包列表:

在终端中运行以下命令,更新你的软件包列表,以确保你可以获得最新的软件包版本。

 sudo apt update

6.2 安装NFS相关软件包:

在Ubuntu中,nfs-utils实际上是nfs-commonnfs-kernel-server这两个软件包的组合。你可以使用以下命令来安装这些软件包,3台机器上都要执行:

sudo apt install nfs-common nfs-kernel-server
  • nfs-common 包含客户端和服务器共用的工具和文件。
  • nfs-kernel-server 包含NFS服务器的相关工具和服务。

6.3启动并启用NFS服务:

安装完成后,启动NFS服务器,并将其设置为开机自启动:

sudo systemctl start nfs-server
sudo systemctl enable --now nfs-server

6.4验证安装:

你可以使用以下命令来验证NFS服务是否已经正常启动:

sudo systemctl status nfs-server

在这里插入图片描述

完成这些步骤后,nfs-utils(即nfs-commonnfs-kernel-server)应该已经在你的Ubuntu系统上成功安装并启动。

6.5创建共享目录

在k8s-master节点上,创建文件共享目录。

#HDD机械硬盘上的挂载目录
sudo mkdir -p /mnt/renpho/nfs/data/share
#SSD固态硬盘上的挂载目录
sudo mkdir -p /home/ec2-user/k8s/nfs/data/share/nacos

接下来我们需要将这些目录暴露给内网访问,先执行下面这行命令修改nfs的配置文件:

sudo cat >> /etc/exports << EOF
/mnt/renpho/k8s/nfs/data/share *(rw,sync,no_subtree_check,no_root_squash)
/home/ec2-user/k8s/nfs/data/share *(rw,sync,no_subtree_check,no_root_squash)
EOF

然后可以使用下面这行命令查看目录的暴露是否成功(注意修改nfs服务器地址):

showmount -e 192.168.6.220

在这里插入图片描述

7、部署RocketMQ集群

7.1制作镜像

7.2制作镜像

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

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

相关文章

React 学习——Class类组件的基本结构

老版本的react的写法&#xff1a;是通过class类组件的 import { Component } from react; class Counter extends Component{state {count: 0,}setCount ()>{this.setState({ count: this.state.count 1 })}render(){return <button onClick{this.setCount}>{thi…

linux:进程空间的回收,exec族

父子进程的关系 子进程是父进程的副本&#xff1a;这个说法在概念上是正确的&#xff0c;但实际上&#xff0c;子进程并不是父进程的完全物理副本。在Unix和类Unix系统中&#xff0c;fork() 系统调用创建了一个与父进程几乎完全相同的子进程&#xff0c;包括环境变量、打开的文…

【Qt】输入类控件QLineEdit

目录 输入类控件QLineEdit 例子&#xff1a;录入个人信息 例子&#xff1a;使用正则表达式验证输入框的数据 例子&#xff1a;验证俩次输入密码一致 例子&#xff1a;切换显示代码 输入类控件QLineEdit QLineEdit 用来表示单行输入框&#xff0c;可以输入一段文本&#xf…

Go 文件操作基本方法大全

前言 在Go语言中&#xff0c;操作文件主要依赖于标准库中的os和io/ioutil&#xff08;注意&#xff1a;io/ioutil在Go 1.16及以后版本中被逐步弃用&#xff0c;推荐使用io和os包中的函数进行替代&#xff09;以及io和bufio等包。以下是一些基于这些基本库操作文件的方法大全&a…

Python和MATLAB谐波生成导图

&#x1f3af;要点 绘制三次谐波生成透射功率谱、对数对数图表示半导体曲面二次谐波生成&#xff0c;分析判断材料特性谐波均值估计计算边际似然&#xff08;贝叶斯统计&#xff09;二次谐波散射分析胶体染料分子结构交流电谐波波形傅立叶分析分析旋转各向异性谐波高次谐波非线…

梧桐数据库(WuTongDB):数据库技术中LL算法详解

LL 算法是一种自顶向下的语法分析算法&#xff0c;广泛用于构建解析器。LL 分析器逐个读取输入符号&#xff0c;从左到右分析&#xff08;Left-to-Right&#xff09;&#xff0c;并使用最左推导&#xff08;Leftmost Derivation&#xff09;来生成语法树。因此&#xff0c;LL 分…

appium下载及安装

下载地址&#xff1a;https://github.com/appium/appium-desktop/releases 双击安装就可以

深入学习SQL优化的第三天

目录 聚合函数 排序和分组 聚合函数 1251. 平均售价 表&#xff1a;Prices------------------------ | Column Name | Type | ------------------------ | product_id | int | | start_date | date | | end_date | date | | price | int …

桌球厅助教陪练系统源码开发和行业市场分析

台球助教陪练系统&#xff1a;引领智能化运动体验 作为一款专为台球爱好者设计的智能陪练系统&#xff0c;我们的目标是通过技术创新&#xff0c;让每位用户都能享受到个性化、高效的学习体验。无论是初学者还是寻求突破的高手&#xff0c;都能在我们的平台上找到适合自己的陪…

MybatisPlus的LambdaQueryWrapper用法

LambdaQueryWrapper<Tag> 是 MyBatis-Plus 框架中的一个功能强大的查询构造器&#xff0c;它用于构建 SQL 查询条件&#xff0c;特别是针对 Lambda 表达式的支持&#xff0c;使得代码更加简洁、类型安全。在这个例子中&#xff0c;LambdaQueryWrapper<Tag> 被用来构…

基于YOLO V8的PCB缺陷检测识别系统(python源码+Pyqt5界面+数据集+训练代码)

数据集准备&#xff1a;收集并标注PCB缺陷的图像。模型训练&#xff1a;使用YOLO v8框架训练一个模型来识别这些缺陷。GUI开发&#xff1a;利用PyQt5创建一个用户友好的图形界面。模型部署&#xff1a;在GUI中集成训练好的模型&#xff0c;使用户能够上传PCB图像并得到缺陷检测…

IOS 11 通用Base控制器封装

整体规划 BaseController&#xff1a;把viewDidLoad逻辑拆分为三个方法&#xff0c;方便管理。 BaseCommonController&#xff1a;不同项目可以复用的逻辑&#xff0c;例如&#xff1a;设置背景颜色方法等 BaseLogicController&#xff1a;本项目的通用逻辑&#xff0c;主要…

实现 FastCGI

CGI的由来&#xff1a; 最早的 Web 服务器只能简单地响应浏览器发来的 HTTP 请求&#xff0c;并将存储在服务器上的 HTML 文件返回给浏 览器&#xff0c;也就是静态 html 文件&#xff0c;但是后期随着网站功能增多网站开发也越来越复杂&#xff0c;以至于出现动态技 术&…

【Pyhthon读取 PDF文件表格 ,转为 CSV/TSV/JSON文件】

tabula-py tabula-py 是一个将 PDF 表格转换为 pandas DataFrame 的工具。 tabula-py 是 tabula-java 的包装器&#xff0c;需要您的机器上有 java。 tabula-py 还允许您将 PDF 中的表格转换为 CSV/TSV 文件。 tabula-py 的 PDF 提取准确度与 tabula-java 或 tabula app 相…

JavaScript基础知识(六)

相关api介绍 数字类型 - parseInt - parseFloat 字符串类型 .length 返回字符串长度 字符串可以通过下标的方式来获取值 字符串的相关api都不会改变原来字符串,并且可以返回一个新的字符串,若要获取其值则需要声明新的变量获取 str.indexOf(char[,startIndex]) 查询st…

8/21作业

一、 非阻塞型IO 让我们的read函数不再阻塞&#xff0c;无论是否读取到消息&#xff0c;立刻返回 1.1 fcntl函数 原型&#xff1a;int fcntl(int fd, int cmd, ... /* arg */ ); 调用&#xff1a;int flag fcntl(描述符,F_GETFL) fcntl(描述符&#xff0c;F_SETFL&…

洛谷p10892题解

题目背景 AzureHair 在 NOIP 2022 中被喵了个喵创死&#xff0c;于是患上了不治之症——T2 恐惧症&#xff0c;于是他在 NOIP 2023 中果断跳过了 T2 并杠 T3 两小时无果&#xff0c;遗憾离场&#xff0c;他的同学决定帮他治疗这种不治之症。 在他的同学给他治愈了 T2 恐惧症后…

机器学习-KNN 算法

一.K-近邻(KNN) K-近邻&#xff08;K-Nearest Neighbors, 简称 KNN&#xff09;是一种基于实例的学习算法&#xff0c;主要用于分类和回归问题。KNN 的工作原理直观且简单&#xff0c;它基于相似性进行预测&#xff0c;也就是说给定一个新的数据点&#xff0c;KNN 算法会查找距…

JUC知识点总结

JUC应用场景 1. 网页服务器处理并发请求 当一个网页服务器需要处理大量并发请求时&#xff0c;可以使用多线程来提高处理效率。 import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; ​ public class WebServer {public static void main(S…

8月21日笔记

Frp Frp(Fast e Reverse ) Proxy) 是一款简单&#xff0c;好用&#xff0c;稳定的隧道工具。Frp 使用 Go语言开发&#xff0c;支持跨平台&#xff0c;仅需下载对应平台的二进制文件即可执行&#xff0c;没有额外依赖。它是一款高性能的反向代理应用&#xff0c;可以轻松地进行…