发表于: 2020-06-29 23:30:43

1 1833


今天完成的事情:

1. 部署两个应用服务器


2. nginx 使用 upstream 负载均衡


遇到的问题:

1. 本地静态资源获取不到

原因:

配置文件里有静态文件的默认配置,不符合项目实际情况。

解决的方法:

去除静态文件的错误配置,所有请求全部转发。


2. 数据无法缓存

原因:

subList 不支持序列化。

解决的方法:

new ArraryList<>(list.subList(0, 4));


3. 项目不适合负载均衡

我使用了 cookie-session 的验证方案,并且表单加入了 csrf 校验,/u/ 路径下的页面做了基于 session 的跳转逻辑,在负载均衡下完全跑不通。

选择有两个:

a,重构项目,换成基于 token 的验证方案。

b,压测时仅测试首页。



收获:

1. upstream 配置负载均衡的简单使用

    upstream myapp {

server localhost:8080 weight=1 max_fails=2;

server localhost:9080 weight=1 max_fails=2;

    }

    server {

        listen       80;

        server_name  localhost;

        location / {

            proxy_pass http://myapp;

        }

    }

这个示例配置就是全部转发,没别的。

upstream 还有一些别的配置,我这里没有用上。



2. tomcat 多实例配置

参考:https://www.cnblogs.com/mafly/p/tomcat.html


主程序只需要一份,关键在于配置环境变量 $CATALINA_BASE



明天的计划:

1. 重构项目,换成 JWT 校验

把登录的那部分完全去掉是可以完成压测的,不过 JWT 我没做过,考虑到这是个很流行的解决方案我还是做一做吧。

或者做成 cookie-session 与 JWT 两种都支持的?

redis 是支持缓存 session 的,我再好好想想要怎么搞。



返回列表 返回列表
评论

    分享到