单机tomcat 优点 开发简单 部署简单
缺点 单点故障 出错不可访问
容量 2、300 经过优化 可能达到500
多tomcat 单点故障排除 容量提升
应用服务器 全部暴露在外网 入口不集中不安全
一部分访问到故障的tomcat
======================================================================
负载均衡
硬件实现 F5 非常快 可靠性高 并发量大 太贵 成本高 不方便
软件实现
linux下的LVS 基于linux系统IP层面的负载均衡 可靠性高 简单易用 并发量大
不能动静分离 动:改变数据库 静:静态资源的加载
apache httpserver 可以动静分离 效率不如Nginx
Nginx 可以动静分离 静态访问跳过请求分发/负载均衡
正向代理 用户藏起来 找代理访问
反向代理 服务器藏起来
反向代理 tomcat里的服务器Ip藏起来 用的是Nginx的虚拟Ip
压力测试 主要有两个软件
apache-jemeter
准备多个tomcat 修改server.conf 端口
打开nginx.conf 添加 upstream test-service { #服务器集群名字,此处叫做 test-service
server localhost:8080;#服务器配置
server localhost:8090;
}
location / {
root html;
index index.html index.htm;
proxy_pass http://test-service; //这一行是自己添加的 将要转发的写上 也就是上面的集群名字
}
RoundRobin轮询 Nginx默认用的是轮询算法 保证公平
可选==》源地址hash(保证同一个IP请求落在同一个机器上)
可选==》加权 权重高的(1~4)多放几个IP
负载均衡带来的session问题
解决方法
1. 应用服务器session同步 应用服务器本身能力有限 再加session同步 带来网络开销 (基本不用)
2. nginx负载均衡算法 设置为ip hash 请求定位到同一台应用服务器 不进行切换 解决了session问题 但是不容灾了 会有单点故障
在upstream里 添加ip_hash;
3. session外置 彻底解决问题 强烈推荐 单点登录
动静分离
# 将所有静态资源都有nginx处理 存放目录为html
location ~\.(gif|jsp|jpeg|png|bmp|swf)${
root html;
}