众所周知,我能够使用 Keepalived 创建 VIP。当RabbitMQ节点出现故障时,VIP会动态切换到正常节点。当然,我可以在 CentOS 上执行此操作,但 Keepalived 没有适用于 Windows 的版本。我应该如何实现这个功能?
这里是我的实际生产环境:我有5台可以运行服务的主机。由于某种原因,它们必须是 Windows 操作系统。而且只有一个是Windows Server 2016,其他四个都是Windows 10专业版
打算在上面运行RabbitMQ节点组成集群,使用MQTT-Plugin插件实现MQTT Broker。至于负载均衡部分,我会在唯一的服务器中使用Nginx的Stream模块。但是,在目前的架构中,Nginx 已经变成了单节点。当Nginx节点出现故障时,整个服务将不可用。 我尝试使用 Golang 在两个 Windows 上实现类似主从 Nginx 故障转移的功能。但是效果不是很理想
我应该如何在其余的 Windows 10 Pro 主机上实施 Nginx 故障转移?
下面是我的Nginx配置:
worker_processes auto;
events {
worker_connections 1024;
}
http {
}
# RabbitMQ
stream {
upstream rabbitmqtt {
server 10.168.1.10:1883 weight=1;
server 10.168.1.11:1883 weight=2;
server 10.168.1.23:1883 weight=1;
}
server {
# listen 1884 so_keepalive=on;
listen 1884;
proxy_connect_timeout 60s;
proxy_timeout 60s;
proxy_pass rabbitmqtt;
tcp_nodelay on;
}
}