IIS集群后,session如何共享

xyq1986 2015-04-03 11:02:06
假设两台IIS服务器(A,B)进行集群,另外一台nginx服务器C做反向代理,那A和B上的session怎么共享呢?
...全文
433 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
myhope88 2015-04-09
  • 打赏
  • 举报
回复
session存到数据库吧
huaneramn 2015-04-08
  • 打赏
  • 举报
回复
NB。。。。。。。。。。。。。。。。。。。。
qzyf1992 2015-04-08
  • 打赏
  • 举报
回复
答案就是不用session 但是完全可以模拟一个类似session的类
  • 打赏
  • 举报
回复
在集群上,你更多应该考虑Cache而不是Session集合。 实际上就算是单服务器,难道你不考虑Session集合的数据会丢失吗?我不知道有哪一个asp.net程序可以在 InProc 模式下放心使用 Session 集合的。此时你已经遇到了 Session 不靠谱的问题了。
  • 打赏
  • 举报
回复
引用 5 楼 xyq1986 的回复:
这个server不是应用服务器
跟是不是应用服务器没有关系。是你的SessionID与物理服务器的(只能)一对一映射关系造成的悲剧。
  • 打赏
  • 举报
回复
你原本希望系统比较强壮,一个服务器跨了那么另一个可以临时撑住。而导向同一个服务器,当一个服务器垮掉时(比如维护时),你当时就失去了一半用户。
xyq1986 2015-04-07
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
根据 SessionID 导向同一个物理服务器,这不是好主意。除了性能降低以外,它也容易让你的系统特别脆弱。比如说你有2个服务器,当一个垮掉时,另外一个可以临时撑起来,看起来你得业务几乎不受什么影响。但是如果你这样去“导向同一个服务器”,那么你的一半用户就丢失了。因此不能用这种所谓的解决方案。
导向同一server,怎么会一半用户丢失,正是因为导向同一server才不会丢失用户啊,这个server不是应用服务器
  • 打赏
  • 举报
回复
根据 SessionID 导向同一个物理服务器,这不是好主意。除了性能降低以外,它也容易让你的系统特别脆弱。比如说你有2个服务器,当一个垮掉时,另外一个可以临时撑起来,看起来你得业务几乎不受什么影响。但是如果你这样去“导向同一个服务器”,那么你的一半用户就丢失了。因此不能用这种所谓的解决方案。
  • 打赏
  • 举报
回复
1. 是时候该考虑尽可能少用 Session 集合了。 2. 近期可以使用状态服务器。虽然序列化花费时间(而且可能需要你修改一些“无法序列化”之类的bug),但是它也较容易。 asp.net 让人喜欢滥用 Session 集合。但是这不是集群轻量级服务软件的研发之道。在你设计服务器软件时,如果你早就知道服务程序要跑在集群上,随时可能让服务器下线,或者上线,那么你也就不会使用 Session (只用SessionID)了。
  • 打赏
  • 举报
回复
解决集群Session共享的问题,通常有以下两种办法。 ·硬件负载,将用户请求分发到特定的服务器。 ·Session复制,就是将用户的Session复制到集群内所有的服务器。 这两种方法的弊端也很明显: ·成本较高。 ·性能差。当访问量增大的时候,带宽增大,而且随着机器 数量的增加,网络负担成指数级上升,不具备高度可扩展 性,性能随着服务器数量的增加急剧下降,而且容易引起 广播风暴。
  • 打赏
  • 举报
回复
指向同一台Session服务器
3、应用服务器中间件技术要求 "指标项 "指标要求 " "总体要求 "遵循标准。全面支持JavaEE5或以上版本的国际工业标 " " "准和相关规范,并通过国际标准认证。全面支持Web " " "Service。 " " "必须支持各种主流平台,如HP-UX、AIX、SOLARIS、WI" " "NDOWS NT/2000、Linux、SCO UNIX等。 " " "支持多种数据库,如Oracle、Sybase、MS SQL SERVER " " "等数据库,并对数据库的访问效率提供优化。 " " "应用服务器提供商需作为JavaEE6标准制定成员,并具 " " "有专家参与下一个版本(JSR316)的标准制定,并可提" " "供网址查询。 " "集群与可用性要"必须支持通过Apache、IIS实现集群、负载均衡和系统 " "求 "扩展。 " " "支持多服务器群集部署、负载均衡、组件级的失效即时" " "恢复(Fail Over)。支持Web层的集群和EJB集群。应 " " "提供较大型系统集群应用案例。 " " "支持会话亲和。均衡负载策略支持简单轮转、加权轮转" " "、随机、备份等方式。 " " "必须支持异构Cluster。即当硬件平台或操作系统不是 " " "同一产品时,Web应用服务器必须支持异构Cluster技术" " "。 " " "支持动态增加服务器。在原业务系统不停机的情况下," " "必须支持动态增加服务器,扩展系统性能。而性能的扩" " "展,由中间件通过配置来实现,和应用系统代码无关。" " "请简要说明如何实现。 " " "Cluster情况下必须支持Session级故障恢复,请说明如" " "何实现。 " " "在原业务系统不停机的情况下,必须支持动态加载新业" " "务,扩展系统功能,或更新业务。在集群中某台应用服" " "务器上的应用卸载,中间件均衡机制必须能够自动识别" " ",对前端应用透明。请简要说明如何实现。 " " "支持故障恢复和故障迁移的功能,保证应用系统7x24小" " "时不间断运行。支持Web层面的session 复制与自动迁 " " "移。 " " "支持对异构数据库之间两阶段提交交易处理。 " " "在服务器、程序发生故障的情况下,应用中间件必须保" " "证业务的持续运行,保证交易的完整性。 " " "提供内置的JMS服务,支持将TongLINK/Q、MQ " " "Series等其他第三方消息中间件作为消息服务代理。 " " "支持Web Service 。包括访问Web Service端点(port " " ")和将容器内的Web组件或EJB组件包装成Web Service " " "端点(port)对外提供服务。 " " "JCA支持。支持资源适配器插入到系统中,从而实现与 " " "外部系统的连接。 " " "支持大并发用户量的多线程应用。 " " "支持JDBC连接池,具备管理JDBC连接池功能。 " " "必须支持EJB实例池 " " "必须支持Cache技术,包括Web静态内容cache、Prepare" " "语句cache、Entity bean cache等。 " "安全性要求 "基于JAAS架构,实现基于容器的安全策略,提供基于数" " "据库和LDAP认证的Login Module, 支持用户增加Login " " "Module,支持单点登录 " " "必须支持标准的安全协议SSL(Secure Socket " " "Layer),必须支持直接访问应用服务器方式和通过第 " " "三方Web " " "Server集成的方式,并支持此两种方式下浏览器与服务" " "器之间的双向认证。 " "管理与开发要求"必须具备标准的B/S模式管理控制台,可对远程的应用 " " "服务器环境进行应用部署、管理维护和监控。 " " "具备将本地应用程序包部署在远程服务器环境的能力。" " "支持对系统运行状态、Web应用、EJB组件、数据库连接" " "池、交易服务、JMS服务及其它服务端组件与服务进行 " " "动态监控与管理。 " " "Web应用和ear的部署和管理也可以通过Web管理控制台 " " "进行,可以在部署时修改相关的部署时特性。支持web应" " "用和ear应用的自动部署和热部署。 " " "支持展开的ear和war包的部署 " " "具备对系统的动态配置、动态调整功能,如动态更新应" " "用包不必重新启动应用服务器等。 " " "支持方便地与Eclipse、JBuilder开发工具协同工作, " " "必须支持Jbuilder9/X/2005。 " " "必须支持在Eclipse、Jbuilder的环境下,设计、开发 " " "

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧