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

33 篇文章 0 订阅
27 篇文章 0 订阅

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


前言

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

之前是为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.应用程序配置

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

在这里插入图片描述


总结

记录点点滴滴

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
下面是一个基于 Nginx+Nacos+MySQL+Redis+RabbitMQ 的 Java 应用服务集群架构: 1. 前置负载均衡器:使用 Nginx 负责前端流量的负载均衡,将外部的请求分发到后端应用服务器。 2. 服务注册与发现:使用 Nacos 作为服务注册中心,负责服务的注册、发现和配置管理。 3. 数据库服务:使用 MySQL 作为数据库服务,提供数据存储和读写操作。 4. 缓存服务:使用 Redis 作为缓存服务,提供数据缓存和读取加速。 5. 消息队列服务:使用 RabbitMQ 作为消息队列服务,负责异步消息传递和削峰填谷。 6. 应用服务器集群:应用服务器集群包含多个相同的应用服务器实例,负责处理具体的业务逻辑。每个应用服务器实例都需要从 Nacos 中获取服务配置,从 MySQL 中读取和写入数据,从 Redis 中读取缓存数据,以及通过 RabbitMQ 进行异步消息传递。 7. 数据库集群:数据库集群包含多个 MySQL 实例,通过主从复制和读写分离实现高可用和负载均衡。 8. 缓存集群:缓存集群包含多个 Redis 实例,通过数据分片和主从复制实现高可用和负载均衡。 9. 消息队列集群:消息队列集群包含多个 RabbitMQ 实例,通过消息分发和集群模式实现高可用和负载均衡。 该架构可以通过水平扩展和容器化来实现更高的容错性和性能。例如,可以通过 Kubernetes 等容器编排工具来自动化部署和管理该架构的各个组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

panda_225400

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

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

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

打赏作者

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

抵扣说明:

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

余额充值