第五十一章 进程亲和性和状态感知模式(保留模式 1)

第五十一章 进程亲和性和状态感知模式(保留模式 1)

Web 的架构是无状态的。为了在性能、可维护性和可扩展性方面充分利用 Web 架构,Web 应用程序应该采用无状态范例。

默认情况下,Web 应用程序在相对于托管 IRIS 服务器的无状态环境中运行。 Web 网关维护与 IRIS 的连接池,并在它们之间分配工作负载,并在配置的限制内增加(或减小)连接池的大小。每个连接都与一个 IRIS 进程相关联(由 $Job 变量标识)。

对于在无状态模式下运行的普通 Web 应用程序,请考虑用于服务客户端会话的每个请求的后端 IRIS 进程的选择是随机的。 Web 网关选择恰好空闲的连接/进程。

然而,为了提高效率,Web Gateway 确实实现了一种形式的 IRIS 进程亲和力。换句话说,它会在可能的情况下尝试将对会话的请求路由到用于为该会话的先前请求提供服务的同一 IRIS 进程。

除了基于会话 ID 的进程关联性度量之外,Web Gateway 还尝试实现基于命名空间的进程关联性。 Web 网关跟踪每个连接所指向的命名空间,并在可能的情况下将请求传递到已指向处理请求所需的命名空间的连接。这有助于避免在接收每个 Web 请求时在不同名称空间之间移动资源所产生的开销。

就优先级而言,会话关联性始终优先于选择连接时的所有其他考虑因素。如果传入请求无法分配给先前用于服务客户端会话的同一连接,则使用命名空间关联来影响最终选择。

CSP 包括一种模式,Web Gateway 通过该模式将会话的所有请求路由到保留的(或专用的 IRIS 连接/进程。这种操作模式提供了一个关于 Web 会话及其相应 IRIS 进程之间关系的状态感知环境。

状态感知模式作为 CSP 保留模式 1 实现

提供状态感知操作模式(保留模式 1)的最初动机是为了使将遗留应用程序代码从固定的客户端-服务器环境(例如终端应用程序)迁移到 Web 变得相对容易。对跨越多个 HTTP 请求的事务的支持也是其引入时考虑的一个因素。但是,在创建状态感知应用程序时,应牢记以下段落中概述的限制。

状态感知应用程序的扩展性不如无状态应用程序,因此建议新应用程序(以及对现有应用程序的修改)尽可能设计为无状态的。建议在主要无状态的应用程序中谨慎应用状态感知模式(如果确实使用)。

不建议编写完整的应用程序以在状态感知模式下运行。除了因需要为每个会话保留 IRIS 进程而产生的可扩展性问题之外,由于路由的非常具体的要求,状态感知应用程序无法充分利用现代负载平衡和故障转移解决方案要求。此外,状态感知应用程序的容错能力不如无状态应用程序。例如,Web 服务器工作进程的回收可以在无状态应用程序下透明地发生,但会导致所有关联的状态感知会话关闭。当然,可以通过使用 Web GatewayNSD 组件将 Web Gateway 进程池的管理与托管 Web 服务器分开来避免后一种限制。

创建成功的状态感知应用程序(或主要无状态应用程序中的状态感知部分)需要一定的纪律。

由于会话的所有请求必须由同一 IRIS 进程处理,因此必须维护一个队列,以便在客户端同时分派多个请求的情况下串行化对专用 IRIS 进程的访问。最初的 HTTP v1.1 标准要求客户端同时打开到每个服务器的连接不得超过 2 个 (RFC2616)。然而,这个限制是可配置的,事实上,最新一代的 Web 浏览器默认支持每个服务器最多 8 个连接。不用说,增加每个服务器的最大连接数会对状态感知 Web 应用程序产生深远的影响:应用程序最多可以同时触发 8 个请求,并随后将其保留在负责控制访问的队列中。单一私有 IRIS 进程。

状态感知模式中的另一个潜在缺陷是 Web GatewayIRIS 之间运行的服务器响应超时的影响。当 Web 网关在响应超时规定的时间限制内未收到响应时,它别无选择,只能关闭连接,从而导致状态感知会话丢失。

最后,客户端中断的影响可能会导致在状态感知模式下运行的应用程序出现问题。当客户端在 IRIS 生成响应的点(或超出该点)中断请求时,Web Gateway 会尝试吸收(现在不需要的)响应负载以保留连接。如果无法及时完成此操作,它也别无选择,只能通过关闭连接来中断 IRIS 进程正在执行的任何操作,并且会话会丢失。请记住,当 Web 网关尝试吸收中断请求的有效负载时,同一会话的更多请求可能会到达并放入队列中。

总之,在创建状态感知应用程序时请遵循以下设计目标。

  • 尽可能避免(或谨慎使用)生成许多同时请求的客户端构造(例如:HTML 框架集文档)。
  • 确保快速生成响应。这减少了与超时和/或客户端中断事件相关的问题的范围。它还减轻了会话队列的压力。如果 IRIS 中的某项任务可能需要较长时间才能完成,请考虑在另一个进程中执行该任务,以便主专用进程可以快速将响应返回到 Web 网关(和客户端)。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容