Shared Server Processes

一个共享的服务器进程可以为多个用户进程提供服务。

考虑一个带有专用服务器进程的订单输入系统。客户打电话到订单台并下订单,接听电话的店员将订单输入数据库。在大部分交易中,店员都在电话上与客户交谈。在此期间不需要服务器进程,因此专用于职员的用户进程的服务器进程保持空闲。由于空闲的服务器进程占用了系统资源,因此系统对于其他职员输入订单的速度较慢。

共享服务器架构消除了对每个连接的专用服务器进程的需要

数据库共享服务器进程

 

 在共享服务器配置中,客户端用户进程连接到调度程序。调度程序可以同时支持多个客户端连接。每个客户端连接都绑定到一个虚拟电路,虚拟电路是分配器用于客户端数据库连接请求和回复的一块共享内存。当请求到达时,调度程序将虚拟电路放置在公共队列上。

空闲的共享服务器进程从公共队列中提取虚拟电路,为请求提供服务,并在尝试从公共队列中检索另一个虚拟电路之前放弃虚拟电路。这种方法使一小部分服务器进程能够为大量客户端提供服务。与专用服务器模型相比,共享服务器架构的一个显着优势是减少了系统资源,从而能够支持更多的用户。

为了更好地管理资源,可以为共享服务器配置会话多路复用,它将多个会话组合起来通过单个网络连接进行传输,以节省操作系统的资源。

共享服务器架构需要 Oracle 网络服务。以共享服务器为目标的用户进程必须通过 Oracle 网络服务连接,即使它们与 Oracle 数据库实例位于同一系统上。

 

Oracle 数据库共享服务器架构增加了应用程序的可扩展性以及可以同时连接到数据库的客户端数量。共享服务器架构还使现有应用程序能够扩展,而无需对应用程序本身进行任何更改。

使用共享服务器时,客户端不直接与数据库服务器进程通信,数据库服务器进程代表数据库处理客户端请求。相反,客户端请求被路由到一个或多个调度程序。调度程序将客户端请求放在一个公共队列中。服务器进程共享池中的空闲共享服务器从队列中提取并处理请求。这意味着一小部分服务器进程可以为大量客户端提供服务。

在共享服务器模型中,一个dispatcher 可以同时支持多个客户端连接。在专用服务器模型中,每个客户端都有一个服务器进程。每次收到连接请求时,都会启动一个服务器进程并专用于该连接,直到完成。这会导致处理延迟。

共享服务器架构

 

 专用服务器架构

 

 共享服务器非常适合具有大量连接的配置,因为它减少了服务器内存需求。共享服务器非常适合 Internet 和 Intranet 环境。

使用 Oracle Connection Manager 可以进一步提高服务器资源的利用率。Oracle Connection Manager是一个 Oracle 网络服务组件,通过与数据库的单个网络连接,可以多路复用或汇集多个客户端网络会话。

会话多路复用功能通过使服务器对传入请求使用更少的网络连接端点,减少了在两个进程之间维护多个网络会话所需的资源需求。这样,服务器可以处理的网络会话总数增加了。一个具有多个网关的 Oracle Connection Manager 使数千个并发用户能够连接到一台服务器。

下图显示了如何在 Web 架构中使用会话多路复用。当 Oracle Connection Manager 与应用程序 Web 服务器在同一台计算机上运行时,应用程序 Web 服务器可以通过 Oracle Connection Manager 路由多个客户端会话,以确保这些会话可以连续访问 Oracle 数据库服务器。此功能对于会话可用性和响应时间是主要关注点的 Web 应用程序特别有用。

 

以下是会话多路复用的优缺点。对于需要连续连接的网络,建议使用会话多路复用。

会话多路复用的优点

  • 限制每个进程使用的网络资源数量

  • 支持大量客户群

  • 在有限数量的进程连接上最大化客户端/服务器会话的数量

  • 优化资源利用率

  • 能够识别和监控真实用户

  • 使中间层应用程序能够支持附加服务

  • 对于具有多个应用程序的客户端,只需要一个传输

  • 数据库链接只需要一个网络连接

会话多路复用的缺点

客户端必须连接到 Oracle Connection Manager。

 

posted @ 2022-09-28 07:39  wongchaofan  阅读(20)  评论(0编辑  收藏  举报