nginx负载均衡+RabbitMq集群及镜像队列(2)

文章介绍了Nginx作为高性能的Web服务器和反向代理服务器,特别是在负载均衡方面的优势。详细步骤包括在Centos7环境下安装Nginx,配置负载均衡以处理三台WindowsServer上的RabbitMQ集群(15672和5672端口)。配置了两个upstream,分别对应RabbitMQ的管理和AMQP端口,实现了对RabbitMQ集群的负载均衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

之前是为Web应用搭建的两台服务器NLB负载均衡,不想改动,现在三台服务器搭建了RabbitMq集群及镜像队列,想通过负载均衡监听和处理队列,所以想到了nginx,nginx不光是个高性能Web服务器,还能做负载均衡


提示:以下是本篇文章正文内容,下面案例可供参考

一、nginx是什么?

Nginx 是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能的 Web 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
优点:
1、作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高

2、作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度

3、作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡

4、在性能方面,Nginx是专门为性能优化而开发的,实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,最大可以支持对5万个并发连接数的响应,而且只占用很低的内存资源

5、在稳定性方面,Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持1万个没有活动的连接,而这些连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的

6、在高可用性方面,Nginx支持热部署,启动速度特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7x24小时不间断地运行

具体不说了,网上资料比较多

二、搭建步骤

1.软件和环境

IP操作系统软件端口
10.20.32.**Centos 7nginx13456,3456
10.20.36.**WindowServer2012RabbitMq15672,5672
10.20.35.**WindowServer2012RabbitMq15672,5672
10.20.36.**WindowServer2012RabbitMq15672,5672

2.安装nginx

代码如下(示例):

----#安装nginx
root: mkdir -p /data/nginx
root: cd /data/nginx

root: rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
root: rpm -q zlib-devel

##--解压
root: tar -zxvf  nginx-1.24.0.tar.gz
root: mv nginx /usr/local/
root: cd /usr/local/nginx
root: ./configure --with-stream
root: make && make install
root: mkdir -p /usr/local/nginx
root: cp /data/nginx/nginx-1.24.0/objs/* -a  /usr/local/nginx/sbin/
##配置nginx.conf

##--启动
root: cd /usr/local/nginx/sbin
root: ./nginx
root:/usr/local/nginx
nginx -s stop
nginx -s reload

3.负载均衡配置nginx.conf


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
   upstream rabbitmq_web{
    server 10.20.36.**:15672 fail_timeout=10s weight=5;
    server 10.20.35.**:15672 fail_timeout=10s weight=4;
    server 10.20.36.**:15672 fail_timeout=10s weight=3;

   }
   upstream rabbitmq_56{
     server 10.20.36.**:5672 fail_timeout=10s weight=5;
     server 10.20.35.**:5672 fail_timeout=10s weight=4;
     server 10.20.36.**:5672 fail_timeout=10s weight=3;
   }
    server {
        listen       13456;
        server_name  localhost;
        location / {
            proxy_pass http://rabbitmq_web;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
	
   }
}

stream{
		upstream rabbitTcp{
			server 10.20.36.**:5672;
			server 10.20.35.**:5672;
			server 10.20.36.**:5672;
		}
		server{
			listen 3456;
			proxy_pass rabbitTcp;
		}
}

启动nginx
在这里插入图片描述
http://10.20.32.**:13456/
在这里插入图片描述
rabbitmq_web后台管理 nginx负载均衡 成功

4.应用程序配置

生产者:
**加粗样式
**
消费者:
在这里插入图片描述

在这里插入图片描述


总结

记录点点滴滴

项目名称:基于Nginx+Nacos+MySQL+Redis+RabbitMQ的JAVA应用服务架构运维项目 项目背景: 我们公司自研的ERP、WMS、OMS等应用系统中间件集群架构需要进行升级和优化,为了更好的支持业务增长和提高系统的可靠性、可用性和性能,我们决定采用基于Nginx+Nacos+MySQL+Redis+RabbitMQ的JAVA应用服务架构。 项目职责: 1. 负责整个架构的搭建和部署,包括Java运行环境、Nginx负载均衡、Nacos服务注册中心、MySQL数据库、Redis缓存服务和RabbitMQ消息队列服务。 2. 负责架构的监控和运维,包括性能监控、日志监控、故障排除等。 3. 负责架构的优化和升级,包括容量规划、性能优化、安全加固等。 4. 负责架构的备份和恢复,包括数据备份、灾备演练等。 项目难度: 该项目的难点在于整合多个不同的技术组件,需要考虑到它们之间的兼容性和稳定性,同时还需要考虑到高可用性和容错性。另外,对于MySQL和Redis等关键数据存储服务,需要进行读写分离和分片部署,以保证数据的安全和高可用性。此外,还需要考虑到消息队列服务的异步传递和削峰填谷,保证系统的稳定性和可用性。 项目成果: 1. 成功搭建并部署了基于Nginx+Nacos+MySQL+Redis+RabbitMQ的JAVA应用服务架构,并通过压力测试验证了其可靠性和性能。 2. 实现了对整个架构的监控和运维,包括性能监控、日志监控、故障排除等,保证了系统的稳定性和可用性。 3. 完成了架构的优化和升级,包括容量规划、性能优化、安全加固等,提升了系统的性能和安全性。 4. 实现了架构的备份和恢复,包括数据备份、灾备演练等,保证了系统的可靠性和可恢复性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

panda_225400

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值