搭建服务器集群

集群

服务器集群,是通过多个服务器共同处理负荷,实现负载均衡分担压力的一种措施.可是随之而来也有一些问题:根据用户的反向代理的调用.用户不清楚自己到底访问的是哪台服务器.那么应该如何测试负载均衡呢???

我们可以通过1个url请求获取访问服务器端口号即可.

现在项目中application.yml文件中修改端口为8081,再通过@value动态赋值为属性,代码如下:

@RestController
public class PortController {
    /**
     * 通过Spring容器动态获取YML配置文件中的端口即可
     */
    @Value("${server.port}")
    private int port;

    @RequestMapping("/getPort")
    public String getPort(){

        return "当前访问的端口号为:"+port;
    }
}

这样当我们访问项目的getPort映射时就会显示对应服务器的端口号,可以依据此端口号来进行测试.

搭建tomcat服务器集群

我们将项目系统打成3个war包程序. 端口号分别为8081/8082/8083,之后通过java命令(java -jar 808X.war)启动3个cmd窗口也就是3台服务器.

项目打包:
先修改端口号之后,将maven进行clean/install打包操作.

通过java -jar 808X.war将项目发布后然后依次在浏览器进行访问测试.

Nginx集群配置

集群配置

我们现在需要通过manage.com的方式访问服务器时,要求通过反向代理的方式实现.要求配置nginx中集群.

#配置后台管理系统
    server {
        listen 80;
        server_name manage.jt.com;

        location / {
            #root 代表文件目录
            #index 代表默认的访问页面
            #proxy_pass 代表发起url请求
            proxy_pass http://jtW;
        }
    }

    #配置集群的关键字   通过集群配置tomcat服务器即可
    #默认: 1.轮询的机制
    upstream jtW {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
        server 127.0.0.1:8083;
    }

负载均衡策略说明

  1. 轮询策略:

根据配置文件的顺序,之后依次访问服务器. 该策略也是默认的机制.

#默认: 1.轮询的机制
    upstream jtW {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
        server 127.0.0.1:8083;
    }
  1. 权重策略--weight:

公司采购服务器都是有时间间隔的. 但是由于服务器新旧不同,硬件版本不同,导致服务器处理能力不同.
如果上述的问题不做处理,依然采用轮询的机制,则会出现严重的负载不均衡的现象.
所以需要通过权重的方式平衡压力,weight值越大.

#配置集群的关键字   通过集群配置tomcat服务器即可
    #默认: 1.轮询的机制  2.权重策略 
    upstream jtW {
        server 127.0.0.1:8081 weight=6;
        server 127.0.0.1:8082 weight=3;
        server 127.0.0.1:8083 weight=1;
    }
  1. IPHASH策略--ip_hash:

当某些业务需要用户特定的访问固定的服务器时,就要选用iphash机制.

#默认: 1.轮询的机制  2.权重策略  3.IPHASH
    upstream jtW {
        ip_hash;
        server 127.0.0.1:8081 weight=6;
        server 127.0.0.1:8082 weight=3;
        server 127.0.0.1:8083 weight=1;
    }

可以了解一下iphash是如何选择服务器的:
image
会通过ip地址的hash值对服务器数量进行取模,然后只访问取模为零的服务器,只有该服务器宕机后才会再访问其他的.

负载均衡补充

  1. down属性:

如果tomcat服务器发生了宕机的现象,则通过配置文件标识down的属性,则nginx将不会再次访问故障机.
server 127.0.0.1:8081 down;

  1. backup属性:

通常情况下 都会部署一些备用机防止由于主机宕机,剩余的机器不能实现高负责从而导致整个服务宕机的问题.
如果设置了备用机,则正常情况下用户不会访问.但是当主机宕机或者主机遇忙时才会访问.
server 127.0.0.1:8083 backup;

  1. tomcat高可用配置:

1).max_fails=1 配置nginx访问服务器的最大的失败次数.
2).fail_timeout=60s; 理解为一个时间周期. 如果发现服务器宕机,则在60秒内不会再次访问故障机.
server 127.0.0.1:8081 max_fails=1 fail_timeout=60s;


迈克丝
85 声望5 粉丝

一步一步学技术,踏踏实实涨经验,兴趣广泛,广交好友,希望大家多多指正/批评.