RabbitMQ集群安装 - 单机多实例

RabbitMQ集群安装 - 单机多实例

如何在CentOS6 单机上安装多实例的 RabbitMQ

前置条件

在安装集群之前,需要在虚拟机上安装好Erlang环境和RabbitMQ。此外,还要规划好每个rabbitmq实例的节点名和端口。

假设规划的三个实例的node name 和 node port 分别是:

node namenode port
rabbit015672
rabbit025673
rabbit035674

安装步骤

配置NodeName和NodePort

配置NodeName的NodePort有两种方式,分别是命令行方式和配置文件的方式。

命令行方式

分别给三个实例配置各自的端口号,在启动的时候,用一下命令给每个实例指定,key都是大写。

RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit01 ./rabbitmq-server
RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit02 ./rabbitmq-server
RABBITMQ_NODE_PORT=5674 RABBITMQ_NODENAME=rabbit03 ./rabbitmq-server

配置文件方式

在 {rabbitmq_home}/etc/rabbit01/rabbitmq-env.conf 文件中添加如下配置,注意没有前缀RABBITMQ。

NODENAME=rabbit01@localhost
NODE_PORT=5672

启动的时候,可能会报错,如果报错,多数是因为端口冲突导致的。如果开启了rabbitmq_management 插件,需要为每个实例的rabbitmq_management 插件配上端口。

配置rabbitmq_management 插件端口的方式同样命令行方式和配置文件的方式。

命令行方式
RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit01  RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]"/rabbitmq-server
配置文件方式

在 {rabbitmq_home}/etc/rabbit01/rabbitmq.conf 文件中添加如下配置,注意这里的配置文件和上面的不是一个配置文件。

# management plugin
management.tcp.port=15672

启动节点

配置完成后,启动三个实例。如果是命令行方式配置,其实已经启动好了。如果是配置文件方式,则可以使用下面的命令启动。

RABBITMQ_CONF_ENV_FILE={rabbitmq_home}/etc/rabbitmq/rabbitmq-env.conf ./rabbitmq-server

加入集群

默认情况下,每个节点组成只有自己的单节点集群。将三个实例组成一个集群,需要将其中两个节点加入到另外一个节点中。

这里我们将 rabbit02 和 rabbit03 加入rabbit01 中,分别对rabbit02 和  rabbit03 执行下面的命令。

./rabbitmqctl -n rabbit02@localhost stop_app # 停止服务
./rabbitmqctl -n trbbit02@localhost reset # 重置
./rabbitmqctl -n rabbit02@localhost join_cluster rabbit01@localhost  # 加入集群
./rabbitmqctl -n rabbit02@localhost start_app  #重启服务

./rabbitmqctl -n rabbit03@localhost stop_app # 停止服务
./rabbitmqctl -n trbbit03@localhost reset # 重置
./rabbitmqctl -n rabbit03@localhost join_cluster rabbit01@localhost  # 加入集群
./rabbitmqctl -n rabbit03@localhost start_app  #重启服务

这样,单台虚拟机中搭建RabbitMQ集群就完成了。后面将介绍项目中搭建集群的方式,也就是多机多节点的方式。

Read more

LibreChat 集成 Stripe 支付的奶妈级教程

LibreChat 集成 Stripe 支付的奶妈级教程

我们假设你已经熟悉基本的 React 和 Node.js 开发,并且正在使用 LibreChat 的默认技术栈(React 前端、Node.js 后端、Vite 构建工具,可能还有 Electron 桌面应用)。教程会特别考虑 Electron 环境下的适配问题(例如 macOS 中文路径或路由错误)。“奶妈级”带你从零开始实现支付功能(包括一次性支付和添加高级会员订阅) 教程目标 * 在 LibreChat 中添加支付页面,支持用户通过信用卡付款。 * 实现 Stripe 的一次性支付功能。 * (可选)扩展到订阅功能,管理高级会员状态。 * 解决 Electron 环境下的常见问题(如路由和路径解析)。 * 生成可公开推送的 Markdown 教程,方便社区参考。 前提条件 在开始之前,请确保你已准备好以下内容:

By Ne0inhk
超棒的雅思资源!

超棒的雅思资源!

雅思真题材料地址: https://github.com/zeeklog/IETLS 感谢所有人。材料来自:@shah0150 & @kbtxwer * 超棒的雅思资源 * 雅思简介 * 听力 * 阅读 * 写作 * 口语 * 词汇 * 其他 * YouTube 频道 * [播客] (#podcasts) 雅思简介 * 什么是雅思 - 了解什么是雅思 听力 * 高级听力 * 雅思官方网站 * 考试英语 * 英国广播公司节目 * 乔治梅森大学口音学习网站 - 学习不同的口音 * 英国广播公司播客 * 英国文化协会听力练习 阅读 * 雅思提升阅读 写作 * 雅思提升写作 * 雅思从 6 分到 9 分 * 迷你雅思 口语 * Verbling 提供在线英语家教服务

By Ne0inhk