问题标签 [nlb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - asp.net,状态服务器,NLB,会话丢失
关于stackoverflow的第一篇文章,希望有很好的反馈:)
我目前正在尝试对我们的网站进行负载平衡。我们在带有 IIS 6 的 windows server 2003 上设置了 2 个集群 NLB。
在测试设置时,我发现有时我们的会话会丢失。一天半之后,结果如下:
- 是的,我们的 machine.config 都具有相同的加密/解密密钥。
- 是的,两台机器的 iis metabase.xml 中的 id 相同。实际上,整个文件都是一样的,除了“AdminACL”。
- 两个 Web 应用程序都设置了“StateServer”,并且都指向同一台机器。
从那时起,在谷歌上搜索提供的信息和可能的解决方案就更少了。
据我所知,没有导致此问题的特定模式。它只是偶尔发生一次。
在尝试查找问题时,我看到一个请求将 asp session id cookie 发送到服务器,但服务器没有将其映射到用户会话。
于是客户端发出了请求号x,带有cookie,session被映射,一切顺利。请求号 x+1 是从客户端发送的,带有 cookie,但未找到会话。
这两个请求都是在 NLB 中的同一台机器上发出的。
这是 asp trace.axd 的一个片段:
第一个请求:
请求详细信息会话 ID:j2ffvy45updpc52uhw1mbg55 请求类型:GET 请求时间:2008 年 11 月 26 日下午 2:58:06 状态代码:200 请求编码:Unicode (UTF-8) 响应编码:Unicode (UTF-8)
请求 Cookie 收集
名称 值 大小
ASP.NET_SessionId j2ffvy45updpc52uhw1mbg55 42 AID 22 9
响应 Cookie 集合
名称 值 大小
标头集合
名称 值
Cookie ASP.NET_SessionId=j2ffvy45updpc52uhw1mbg55; 援助=22
第二个要求:
请求详细信息会话 ID:请求类型:POST 请求时间:2008 年 11 月 26 日下午 2:58:08 状态代码:
请求编码:Unicode (UTF-8) 响应编码:
请求 Cookie 收集
名称 值 大小
响应 Cookie 集合
名称 值 大小
标头集合名称值 Cookie ASP.NET_SessionId=j2ffvy45updpc52uhw1mbg55; 援助=22
正如您在第二个请求中看到的,cookie 是从客户端发送的,但 asp 似乎从未将 cookie 添加到它的“请求 cookie 集合”中。我认为这就是它找不到会话的原因。
那么为什么cookie没有映射到会话呢?那是问题吗?问题在其他地方吗?
随时询问任何澄清。
谢谢大家的反馈。
杰夫
asp.net-mvc - 需要 3 层网站的预算 NLB 政策
我们有一些“经典的 asp”客户端面向网站,这些网站通过一个中央 asp.net mvc 站点提供服务,该站点充当 web 服务,即我们直接从 ASP 站点查询 MVC 控制器,并广泛使用 jquery ajax。这个 MVC 站点依次查询在单独的盒子上运行的 sql server。我们有一个自定义会话配置文件,它需要在每个页面视图上调用数据库。
目前,面向客户端的网站与 mvc 网站位于同一个盒子上。我们现在想使用 Windows 2008 网络负载平衡服务来控制高突发流量并保持可用性。在目前有限的预算内...
最佳策略是什么:2x2 - 2 个 NLBed 盒子上的客户端站点和单独一对 NLBed 盒子上的 MVC - 或两者都在一组 3 个 NLBed 盒子上?
wcf - WCF 服务的负载平衡错误 - NLB
更新 3:
我创建了一个 Visual Studio 2008 测试项目并尝试创建对共享站点 WCF 服务引用的服务引用并收到以下错误:
下载“ http://apps.mydomain/MyService.svc ”时出错。请求失败,HTTP 状态为 400:错误请求。元数据包含无法解析的引用:“ http://apps.mydomain/MyService.svc ”。内容类型应用程序/soap+xml;服务http://apps.mydomain/MyService.svc不支持 charset=utf-8 '。客户端和服务绑定可能不匹配。远程服务器返回错误:(415)无法处理消息,因为内容类型'application/soap+xml; charset=utf-8' 不是预期的类型 'text/xml; charset=utf-8'.. 如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
更新 2:
@Nick - 我尝试了您的建议,即使用每个服务器的完全限定路径明确设置每个端点的地址,但我仍然得到相同的结果。
此外,当我尝试使用共享站点 URL 设置 listenUri 属性时,我收到 400 bad request 错误而不是 404 错误。
更新经过一些额外的研究, http://apps1.mydomain和http://apps2.mydomain
之间存在一些 IIS 配置设置冲突,并且能够克服“服务器应用程序不可用”错误。
现在,当我尝试浏览到共享站点 ( http://apps.mydomain ) 时出现 404 错误,但我能够浏览到http://apps1.mydomain和http://apps2.mydomain服务参考。
原始问题
我的公司使用Microsoft NLB来平衡 IIS 服务器之间的流量。我最近在每台 IIS 6 Windows Server 2003 Standard Edition SP1 服务器上部署了 WCF 服务。当我尝试使用 IE 7 浏览到共享域名时收到以下错误:
服务器应用程序不可用 您尝试在此 Web 服务器上访问的 Web 应用程序当前不可用。请在您的网络浏览器中点击“刷新”按钮以重试您的请求。
管理员注意:可在 Web 服务器的应用程序事件日志中找到详细说明此特定请求失败原因的错误消息。请查看此日志条目以了解导致此错误发生的原因。
消费者将指向http://apps.mydomain以使用服务,但虚拟域映射到http://apps1.mydomain或http://apps2.mydomain。如果我浏览到每台服务器上的服务,我不会收到该错误。
该服务当前使用匿名的 basicHttpBinding。
有没有其他人遇到过这个问题?
历史
在此错误开始发生之前,当我浏览所有三个域名(http://apps.mydomain、http://apps1.mydomain、http://apps2.mydomain)时收到以下错误:
这个集合已经包含一个带有 http 方案的地址。此集合中的每个方案最多可以有一个地址。
我使用ServiceHostFactory类来自定义我的 .svc 文件以指定自定义服务工厂。然后我通过从 ServiceHostFactory 继承并根据需要覆盖来创建我们的自定义工厂。
iis - 使用 IIS NLB 时如何将用户请求保持在同一台服务器上?
我有两个使用 NLB 运行的 IIS 服务器。不幸的是我不能使用共享会话服务器,所以每个服务器都使用自己的会话。如何确保来自同一用户的所有请求都转发到同一 IIS 服务器?
sharepoint - 在 SharePoint 中创建具有多个 Web 前端的 Web 应用程序
您如何在具有多个 Web 前端(用于负载平衡的相同前端)的 Sharepoint 服务器场中创建 Web 应用程序,尤其是从命令行创建它时?当您在一台 Web 服务器上创建它时,它是否也会自动复制到其他服务器?还是您必须将应用程序扩展到其他服务器?
asp.net - 网络负载平衡 (NLB):它适用于“有状态”的 ASP.NET 应用程序吗?
我发布了以下有关 ASP.NET 网络场的问题。
伙计们建议使用网络负载平衡 (NLB) 作为创建 Web 场的主要方式。
但是,维基百科说“NLBS 旨在用于……无状态应用程序”。然而,我们的 Web 应用程序是绝对“有状态的”:它是一个封闭的站点,用户可以通过登录名和密码访问,每个用户的信息都不同:人们将看到自己的交易和操作。
在这种情况下我们还应该使用 NLB吗?
谢谢你。
biztalk - 网络负载平衡 Biztalk 实例
有哪些好的文章/资源可以了解如何使用 Biztalk 配置负载平衡 --- 无论是在产品的固有能力方面还是在使用 NLB(Windows 2003 或更高版本的网络负载平衡)方面?
编辑:我对应用程序协议对负载平衡的影响特别感兴趣?例如,当另一方(Biztalk 向其发出连接请求)不允许多个连接时,两个 Biztalk 服务器实例如何处理 TCP/IP 连接等。
biztalk - Biztalk Server 2009 - 故障转移群集和网络负载平衡 (NLB)
我们正在计划一个 Biztalk 2009 设置,其中我们有 2 个 Biztalk 应用程序服务器和 2 个数据库服务器(数据库服务器位于主动/被动集群中)。所有服务器都运行 Windows Server 2008 R2。
作为我们应用程序的一部分,我们将通过 MSMQ、FILE 和 SOAP 适配器接收传入流量。我们还需要高可用性和负载平衡。
假设我创建了两个不同的 Biztalk 主机,并将 FILE 接收处理程序分配给第一个,并将 MSMQ 接收处理程序分配给第二个。我现在为两台主机中的每台创建两个主机实例(即,我的两台物理服务器各一台)。
在查看了 Biztalk 文档之后,这是我目前所知道的:
对于 FILE(接收),高可用性和负载平衡将由 Biztalk 自动实现,因为我在组中的两台服务器中的每台服务器上都设置了一个主机实例。
MSMQ(接收)需要 Biztalk 主机集群来确保高可用性(但是主机集群也需要设置 Windows 故障转移集群)。这里没有明确的负载平衡选项。
SOAP(接收)需要 NLB 来实现负载平衡和高可用性(如果一台服务器出现故障,NLB 会将流量引导到另一台服务器)。
这是我完全困惑的地方,我迫切需要你的帮助:
- 是否可以在两台应用服务器上同时设置 Windows 故障转移群集和 NLB?
- 如果是,那么请告诉我如何。
- 如果不是,那么请向我解释,当 MSMQ 和 SOAP 的基础先决条件相互排斥时,他们是如何实现高可用性和负载平衡的!
非常感谢您的帮助,
M
asp.net - NLB 和 Web 部署
我在一个集群中有两个网络服务器服务于一个网络应用程序。
使用 MS Web Deploy 将应用程序的新版本推送到一台服务器,然后再次将文件同步到集群中的另一台服务器。这似乎是最普通的事情。
但是,当一台服务器部署了新版本,而另一台服务器尚未完成时,会不会出现问题。当一个加载了新版本的页面发出webservice请求,平衡器将请求发送到旧版本的服务器时,会不会造成麻烦?
避免这种情况的最佳方法是什么?
我考虑编写服务器的排水停止脚本,我们部署到该服务器,并确保一次只运行一个服务器。但我找不到其他人,似乎写过这样的解决方案。并且猜测它也不能很好地扩展。
另一种解决方案可能是在更新时关闭所有服务器。但这似乎不是很聪明。
有什么建议么?
.net - 如何同步 C# 应用程序的内存对象
我有一个 WCF 服务要使用 NLB(Windows 网络负载平衡器)进行负载平衡。所以我需要一个 Dictionary 对象在 WCF 服务的所有实例之间进行同步。
最好的方法是什么?