标签:session共享
实验环境:系统: centos 7.4 3.10.0-327.el7.x86_64
docker: 18.03.0-ce
docker-compose:docker-compose version 1.21.0
redis: 4.0.9
nginx: 1.12.2
tomcat:8.5.30
jdk:1.8.161
session 统一方案:
1、单机的session会话保持机制如nginx的ip-hash,如果单个机器下线,那么session将会全部丢失
2、session共享,如tomcat集群,多个应用服务器共享同步session,单台机器下线,根据负载均衡原理,调度器会遍历寻找可用节点,不足在于,只能是同一种中间件如tomcat集群。并且session复制会带来性能损失,session内容通过广播同步给成员,会造成网络流量瓶颈。
3、session服务器 如memcached/redis ,应用服务器接受请求后会将session保存cache db中,当应用服务器出现问题,调度器会遍历所有节点,没发现都没有这个session时会去成cached db中查找,如果找到就复制到本机,这样就能实现session共享和高可用。
实验使用 session服务器的方式
tomcat:
Tomcat的工作模式3种:独立Servlet,进程内servlet,进程外servlet。
Tomcat是一个基于组件的服务器,他的构建组件都是可以配置的,其中最外层的组件是Catalina Servlet容器,其他组一定要按照一定的格式要求配置在这个顶层的容器中。
Tomcat各个组件是在$CATLINA_HOME/conf/server.xml文件中配置的。
tomat是一个servlet容器,来处理http请求。在平时的使用中我们都会再浏览器中输入http地址来访问服务资源,比如格式http://host[":"port][abs_path] ,这里我们将它做为中间件使用。
nginx
nginx负载均衡实现方式: 分别是
mysql主从理论
为了更好的理解安装,软件都直接使用源码安装的方式
需要先了解一下基本原理: docker基础,第四节安装
?docker组成:docker daemon, docker client, 镜像,仓库,容器
客户端通过api连接服务端,本地命令执行服务端执行完之后返回给客户端,镜像可以直接从dockerhub中下载,镜像可以生成容器,容器可以打包成镜像,仓库可以保存镜像。如图
nginx+tomcat+redis负载均衡,实现session共享
标签:session共享
原文地址:http://blog.51cto.com/xiong51/2107039