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…

【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;二次谐波散射分析胶体染料分子结构交流电谐波波形傅立叶分析分析旋转各向异性谐波高次谐波非线…

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;都能在我们的平台上找到适合自己的陪…

基于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 相…

8月21日笔记

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

Spring DI 数据类型—— set 方法注入

首先新建项目&#xff0c;可参考 初识IDEA、模拟三层--控制层、业务层和数据访问层 一、spring 环境搭建 &#xff08;一&#xff09;pom.xml 导相关坐标 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.or…

http连接未释放导致生产故障

凌晨4点运维老大收到报警&#xff08;公司官网页面超时&#xff0c;上次故障因为运维修改nginx导致官网域名下某些接口不可用后&#xff0c;运维在2台nginx服务器上放了检测程序&#xff0c;检测官网页面&#xff09;&#xff0c;运维自己先看了看服务器相关配置&#xff0c;后…

Java实现STL中的全排列函数next_permutation()

目录 一、引言 二、全排列函数next_permutation() 三、next_permutation()的使用 四、Java实现next_permutation() 五、使用next_permutation()实现全排列 一、引言 相信很多小伙伴们都做过全排列的算法题&#xff0c;输入一个n&#xff0c;输出1~n的全排列。对于这个问题…

JVM 有哪些垃圾回收器?

JVM 有哪些垃圾回收器&#xff1f; 图中展示了7种作用于不同分代的收集器&#xff0c;如果两个收集器之间存在连线&#xff0c;则说明它们可以搭配使用。虚拟机所处的区域则表示它是属于新生代还是老年代收集器。 新生代收集器&#xff08;全部的都是复制算法&#xff09;&…

【安全靶场】-DC-7

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 一、收集信息 1.查看主机是否存活 nmap -T4 -sP 192.168.216.149 2.主动扫描 看开放了哪些端口和功能 n…

【网络】UDP和TCP之间的差别和回显服务器

文章目录 UDP 和 TCP 之间的差别有连接/无连接可靠传输/不可靠传输面向字节流/面向数据报全双工/半双工 UDP/TCP API 的使用UDP APIDatagramSocket构造方法方法 DatagramPacket构造方法方法 回显服务器&#xff08;Echo Server&#xff09;1. 接收请求2. 根据请求计算响应3. 将…

黑马头条vue2.0项目实战(十一)——功能优化(组件缓存、响应拦截器、路由跳转与权限管理)

1. 组件缓存 1.1 介绍 先来看一个问题&#xff1f; 从首页切换到我的&#xff0c;再从我的回到首页&#xff0c;我们发现首页重新渲染原来的状态没有了。 首先&#xff0c;这是正常的状态&#xff0c;并非问题&#xff0c;路由在切换的时候会销毁切出去的页面组件&#xff…

Java之HashMap的底层实现

Java之HashMap的底层实现 摘要HashMap的底层原理哈希值转换为数组下标节点初始化put(Object key, Object value)重写toString()get(Object key)增加泛化remove(K key) 摘要 本博客主要讲述了Java的HashMap的底层实现 HashMap的底层原理 底层原理&#xff1a;数组链表 过程…