集群部署.md 2.1 KB

项目不是spring cloud,但是支持集群部署。是如何做到的呢?

答:只要将公共的部分抽取出来即可

  1. 我们的登陆信息是使用token,而token是保存在redis中的,也就是说只要redis是用一台或同一个集群下,登陆之后用户的认证和授权是不会乱的
  2. 我们的缓存用的是redis,没有使用本地缓存,所以要求redis是用一台或同一个集群
  3. 我们的商品图片、资源图片之类的用的是七牛云或oss等cdn服务,无需担心集群的问题
  4. 剩下的,只要是同一个数据库,持久化的数据公共即可

当所有的公共数据都已经抽取出来,接下来只要解决负债均衡的问题即可,以下介绍两种方法:

  1. 可以使用阿里云的负载均衡服务
  2. 使用nginx进行负债均衡

使用nginx进行负债均衡

阿里云的负债均衡由阿里云负责,所以我们讲下nginx进行负债均衡。

在《nginx安装与跨域配置.md》这篇文章中已经写好了nginx的安装与配置,在这个配置中我们留意到网络请求都是直接转发到jar端口的 proxy_pass http://127.0.0.1:8112;

如:

http {
    server {
        listen 443;
        server_name b2b2c-api.mall4j.com;
		
        location / {
            proxy_pass http://127.0.0.1:8112;
            # 省略.....
        }
    }
}

想要进行负债均衡,必须将代理的端口指向负债均衡的配置,如下:


http {
    # 负债均衡设置
    upstream b2b2c_api {
      # 第一个jar 启动ip和端口 
      server  127.0.0.1:8112;
      # 第二个jar 启动ip和端口
      server  192.168.1.120:8112;
    }

    server {
        listen 443;
        server_name b2b2c-api.mall4j.com;
		proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        location / {
            # 代理到负债均衡服务
            proxy_pass http://b2b2c_api;
            // 省略.....
        }
    }
}

nginx的负债均衡就是如此简单