返回顶部
首页 > 资讯 > 后端开发 > Python >web集群时session同步的3种方法
  • 613
分享到

web集群时session同步的3种方法

种方法集群web 2023-01-31 01:01:21 613人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

在做了WEB集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种

在做了WEB集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种不同的方法来解决这个问题: 

一,利用数据库同步session

在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想过二种方法:

1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上,用户访问web服务器时,会去这个专门的数据库check一下session的情况,以达到session同步的目的。

2,这种方法是把存放session的表和其他数据库表放在一起,如果Mysql也做了集群了话,每个mysql节点都要有这张表,并且这张session表的数据表要实时同步。

说明:用数据库来同步session,会加大数据库的负担,数据库本来就是容易产生瓶颈的地方,如果把session还放到数据库里面,无疑是雪上加霜。上面的二种方法,第一点方法较好,把放session的表独立开来,减轻了真正数据库的负担

二,利用cookie同步session

session是文件的形势存放在服务器端的,cookie是文件的形势存在客户端的,怎么实现同步呢?方法很简单,就是把用户访问页面产生的session放到cookie里面,就是以cookie为中转站。你访问web服务器A,产生了session把它放到cookie里面了,你访问被分配到web服务器B,这个时候,web服务器B先判断服务器有没有这个session,如果没有,在去看看客户端的cookie里面有没有这个session,如果也没有,说明session真的不存,如果cookie里面有,就把cookie里面的sessoin同步到web服务器B,这样就可以实现session的同步了。

说明:这种方法实现起来简单,方便,也不会加大数据库的负担,但是如果客户端把cookie禁掉了的话,那么session就无从同步了,这样会给网站带来损失;cookie的安全性不高,虽然它已经加了密,但是还是可以伪造的。

三,利用memcache同步session

memcache可以做分布式,如果没有这功能,他也不能用来做session同步。他可以把web服务器中的内存组合起来,成为一个"内存池",不管是哪个服务器产生的sessoin都可以放到这个"内存池"中,其他的都可以使用。

优点:以这种方式来同步session,不会加大数据库的负担,并且安全性比用cookie大大的提高,把session放到内存里面,比从文件中读取要快很多。

缺点:memcache把内存分成很多种规格的存储块,有块就有大小,这种方式也就决定了,memcache不能完全利用内存,会产生内存碎片,如果存储块不足,还会产生内存溢出。

四,总结

上面三种方法都是可行的

第一种方法,最影响系统速度的那种,不推荐使用;

第二种方法,效果不错,不过安全隐患一样的存在;

第三种方法,个人觉得第三种方法是最好的,推荐大家使用

本文转自: Http://blog.51yip.com/server/922.html

注:如果朋友们还更好的意见,欢迎提出来,与大家分享一下!!有不对的请大家指出!

以下是原文好的评论:

 

--结束END--

本文标题: web集群时session同步的3种方法

本文链接: https://lsjlt.com/news/183245.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • web集群时session同步的3种方法
    在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种...
    99+
    2023-01-31
    种方法 集群 web
  • 负载均衡集群的session处理方法
    本篇内容主要讲解“负载均衡集群的session处理方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“负载均衡集群的session处理方法”吧!通常面临的问题从用户端来解释,就是当一个用户第一次访...
    99+
    2023-06-27
  • node.js中实现同步操作的3种实现方法
    众所周知,异步是得天独厚的特点和优势,但同时在程序中同步的需求(比如控制程序的执行顺序为:func1 -> func2 ->func3 )也是很常见的。本文就是对这个问题记录自己的一些想法。 需...
    99+
    2022-06-04
    操作 方法 node
  • docker搭建Zookeeper集群的方法步骤
    目录0.前言1.前提2.开始搭建解释创建zoo.cfg3.docker搭建1.docker创建网络2.启动第1个zk节点3.启动第2个zk节点4.启动第3个zk节点4.访问节点1.进...
    99+
    2024-04-02
  • Docker搭建RabbitMQ集群的方法步骤
    目录集群模式介绍1、普通集群的搭建1.1、普通集群架构介绍1.2、环境准备1.3、集群搭建2、镜像集群的搭建2.1、配置镜像集群的策略集群模式介绍 RabbitMQ集群模式有两种:普...
    99+
    2024-04-02
  • Redis去重的3种不同方法汇总
    目录前言1.基于 set2.基于 bit3.基于 HyperLogLog4. 基于bloomfilter总结前言 这篇文章主要介绍了Redis实现唯一计数的3种方法分享,本文讲解了基...
    99+
    2024-04-02
  • MySQL之PXC集群搭建的方法步骤
    目录一、PXC 介绍1.1 PXC 简介1.2 PXC特性和优点1.3 PXC的局限和劣势1.4 PXC与Replication的区别二、实践2.1 搭建 PXC 集群2.2 集群同步验证2.3 新增数据库节点操作2...
    99+
    2022-05-12
    MySQL PXC集群搭建 MySQL PXC集群
  • Windows下搭建Redis集群的方法步骤
    目录Redis集群:在Windows系统下搭建Redis集群:1.下载并安装Redis2.下载并安装ruby3.创建Redis集群Redis集群: 如果部署到多台电脑,就跟普通的集群...
    99+
    2024-04-02
  • Android实现定时器的3种方法
    在Android开发中,定时器一般有以下3种实现方法: 一、采用Handler与线程的sleep(long)方法 二、采用Handler的postDelayed(Runnabl...
    99+
    2022-06-06
    方法 定时器 Android
  • Java中指定时区的3种方法
    Java中指定时区的3种方法 这两天在做与某http://知名一卡通公司的单点登录集成(我们的产品使用java编写,对方的程序使用.Net编写)其中有一项参数是时间戳。即当前时间相对于公元1970-1-1 00:00:00的秒数。按照他们...
    99+
    2023-10-18
    java 开发语言
  • 在K8s上部署Redis集群的方法步骤
    目录一、前言 二、准备操作 三、StatefulSet简介 四、部署过程 1.创建NFS存储 2.创建Configmap 3.创建Headless service 4.创建Redis...
    99+
    2024-04-02
  • docker实现redis集群搭建的方法步骤
    目录一、创建redis docker基础镜像 二、制作redis节点镜像 三、运行redis集群  引用:摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都...
    99+
    2024-04-02
  • Linux/CentOS系统同步网络时间的2种方法详解
    由于硬件的原因,机器或多或少的跟标准时间对不上,一个月的误差几秒到几分钟不等。对于服务器来说时间不准,会有很多麻烦。例如,支付的时候,无法下单,游戏无法登录等。 方法一:用 ntpdate从时间服务器更新时间 如果系统没...
    99+
    2022-06-04
    Linux同步网络时间 linux系统时间同步 ntp时间同步命令 linux ntp
  • 详解Java中异步转同步的六种方法
    目录一、问题应用场景二、分析三、实现方法1.轮询与休眠重试机制2.wait/notify3.Lock Condition4.CountDownLatch5.CyclicBarrier...
    99+
    2024-04-02
  • Docker-swarm快速搭建redis集群的方法步骤
    目录环境配置修改hostname创建目录创建网络编写compose.yml模版文件启动服务验证测试集群集群测试验证环境配置 1.三台虚拟机,VM16 操作系统IP备注centos71...
    99+
    2024-04-02
  • Linux 中实时查看日志的3种方法
    Linux 中实时查看日志的3种方法 最近我从cnaaa.com购买了云服务器。 我们大家应该都知道如何在 Linux 中查看文件,比如可以使用 cat 或者 less 命令。 这对于查看静态文件来说是可以的。日志文件是动态的,其内容随时会...
    99+
    2023-08-18
    linux 服务器 运维
  • Kotlin线程同步的几种实现方法
    目录1. Thread.join() 2. Synchronized 3. ReentrantLock 4. BlockingQueue 5. CountDownLatch 6. C...
    99+
    2024-04-02
  • Java中ArrayList同步的2种方法分享
    目录方法1:使用 Collections.synchronizedList() 方法方法 2:使用 CopyOnWriteArrayList向量同步时为什么要使用arrayList?...
    99+
    2024-04-02
  • centos时间同步的方法是什么
    本篇内容主要讲解“centos时间同步的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“centos时间同步的方法是什么”吧!安装yum install ntpdate授时服务器微软公司...
    99+
    2023-06-26
  • ubuntu同步时间的方法是什么
    本文小编为大家详细介绍“ubuntu同步时间的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“ubuntu同步时间的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.打开终端输入以下命令安装n...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作