Redis+Nginx 负载均衡

前言

当第一次听到负载均衡这个词的时候就莫名觉得这个东西很高端,所以一直避开去了解它,今天突然比较闲想着去了解它一下,顺便用Redis实现一下Session共享。

名词解释

负载均衡(Load Balance):指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。

一、添加核心依赖

1
2
3
4
5
6
7
8
9
10
11
12

<dependency>
	<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

<dependency>
	<groupId>org.springframework.session</groupId>
	<artifactId>spring-session-data-redis</artifactId>
</dependency>

二、修改yaml配置文件,添加redis配置

spring:
  redis:
    # Redis settings
    # server IP
    host: localhost
    port: 6379
    password:
    timeout: 43200000
    # use dbIndex
    database: 0
    jedis:
      pool:
        # 连接池中的最大空闲连接 默认为8
        max-idle: 8
        # 连接池中的最小空闲连接 默认为 0
        min-idle: 0
        # 连接池最大连接数(使用负值表示没有限制) 默认为8
        max-active: 8
        # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认为-1
        max-wait: -1

 

四、编写测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@RestController
@RequestMapping("session")
public class SessionController {

    @Value("${server.port}")
    String port;

    @PostMapping("/save")
    public String saveName(String name, HttpSession session) {
        session.setAttribute("name", name);
        return port;
    }
    @GetMapping("/get")
    public String getName(HttpSession session) {
        return port + ":" + session.getAttribute("name").toString();
    }

}

五、安装并配置Nginx

  1. 下载nginx,下载地址 -> nginx: download

    nginx下载

    nginx下载

    nginx相关文件

    nginx相关文件

  2. 修改配置文件./conf/nginx.conf

  3. 修改nginx配置

    修改nginx配置

  4. 启动nginx服务

    nginx启动和重启命令

    nginx启动和重启命

 

六、将项目打成jar包并在8081和8082端口分别启动

8081端口启动

8081端口启动

8082端口启动

8082端口启动

七、使用postman测试端口分发情况

向8080端口的save接口发送post请求,返回显示处理端口为8081

向8080端口的save接口发送post请求,返回显示处理端口为8081

向8080端口额get方法发送get请求,返回显示处理端口为8082

向8080端口额get方法发送get请求,返回显示处理端口为8082

redis中存储了session的信息

redis中存储了session的信息

总结

通过测试可以看到,通过Nginx我们将向8080端口发送的请求转发给了8081和8082端口,实际使用时可以仿照此将访问量分发到多个不同的服务器,降低每个服务器的并发量,提高系统性能。


转载于Springboot+Redis负载均衡尝试 - darkbin's blog

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值