多台服务器可以共享应用程序嘛

多台服务器可以共享应用程序嘛,第1张

在多个服务器之间共享数据是目前很多企业开始使用的方法,可以在多台服务器之间得到相应的信息,同时也可以减少服务器的压力,方便开发人员的操作,至于如何实现多台服务器之间的信息共享,有很多方法可以实现,至于哪种方法更安全有效还需要我们继续探索。

在创建上载和操作文件的多步骤表单时,如果应用程序在负载均衡器后面的多个服务器上运行,那么我们需要确保该文件在整个过程执行期间都可用,所以无论哪个服务器在每一步都处理该过程。

当提供用于处理用户上载的文件的某些功能时,该文件在整个执行过程中必须可用于该过程。简单的上传和保存操作不会产生任何问题。但是,如果此外文件必须在保存之前进行操作,并且应用程序在负载均衡器后面的多个服务器上运行,那么我们需要确保该文件可用于每次运行该进程的任何服务器。

例如,多步骤“上传你的用户头像”功能可能要求用户在步骤一上传头像,在步骤二中裁剪,最后在步骤三中保存。文件在步骤上传到服务器之后,该文件必须可用于处理步骤二和三的请求的任何服务器,步骤二和步骤一的请求可能相同或不同。

一种比较不靠谱的方法是将步骤一中上传的文件复制到所有其他服务器,因此该文件将全部可用。但是,这种方法不仅极其复杂,而且也不可行:例如,如果站点在几个地区的数百台服务器上运行,那么就无法实现。

一种可能的解决方案是在负载均衡器上启用“粘性会话”,它将始终为给定会话分配相同的服务器。然后,步骤一、二和三将由同一服务器处理,并且在步骤一上传到该服务器的文件仍将用于步骤二和三,但是,粘性会话不完全可靠:如果在步骤二之间如果服务器崩溃,则负载均衡器必须分配不同的服务器,破坏功能和用户体验。同样,在特殊情况下,始终为会话分配相同的服务器可能会导致来自负担过重的服务器的响应时间变慢。

更合适的解决方案是将文件的副本保存在可供所有服务器访问的存储库中。然后,在步骤一上将文件上载到服务器之后,该服务器将其上传到存储库(或者,可以将文件直接从客户端上传到存储库,绕过服务器); 服务器处理步骤二将从存储库下载文件,对其进行操作,然后再将其上传到存储库中;最后,服务器处理步骤三将从存储库下载并保存。

其实像国外有人通过AWS S3在多个服务器之间共享数据,在S3上执行最基本的操作:上载,下载和列出文件,每个文件几乎不需要几行代码。解决方案的简单性表明,将云服务集成到应用程序中并不困难,而且也可以由对云不太熟悉的开发人员来完成。

1、专用服务器

数据库服务器要求每个用户拥有一个专用服务器进程,当用户比较多的时候,则其对服务器的硬件资源,特别是内存,会产生比较大的压力。

适用环境:

1、 只有少数客户端。

2、 为数据仓库搭建的数据库系统。

3、 联机事务处理系统。(大事务的处理,若使用共享服务器模式,很有可能会造成有些事务需要进入队列排队,响应时间拉长)

2、共享服务器进程

多个用户程序可以并发共用一个服务器进程,客户端程序通过调用调度程序与服务器进程相连

如何查看是否是共享服务器模式?

1 查看调度程序

SQL> show parameter dispatchers;

NAME TYPE VALUE

------------------------------------ ----------- -----------------------------

dispatchers string (PROTOCOL=TCP) (SERVICE=sdecp

yXDB)

max_dispatchers integer 5

mts_dispatchers string (PROTOCOL=TCP) (SERVICE=sdecp

yXDB)

mts_max_dispatchers integer 5

2、查看共享服务器进程数

SQL> show parameter shared_servers;

NAME TYPE VALUE

------------------------------------ ----------- -----------------------------

max_shared_servers integer 20

shared_servers integer 1

3、预留

SQL> show parameter shared_server_session;

NAME TYPE VALUE

------------------------------------ ----------- ---------

shared_server_sessions integer 165

其中

dispatchers:调度程序服务器进程

max_shared_servers :指定同时运行的最大服务器进程数

shared_servers :启动实例时可以创建的服务器进程数

shared_server_sessions:指定用于用户会话的总数,配置此参数可为专用服务器保留用户会话

4改变进程数

SQL> alter system set shared_servers=2;

系统已更改。

SQL> show parameter shared_servers;

NAME TYPE VALUE

------------------------------------ ----------- -------------------------

max_shared_servers integer 20

shared_servers integer 2

SQL>

优点是客户端进程多对一,增加了数据库可以支持的用户数。缺点就是各个用户共享一个进程,对用户访问数据库的性能有所影响。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 多台服务器可以共享应用程序嘛

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情