服务器群集解决方案

1.代理服务器维护客户专用的应用服务器的表结构(此表规划了负载平衡, 每一个客户都有自己专用的应用服务器):

用户编号, 用户密码, 应用服务器编号

2.代理服务器维护应用服务器的表结构:

应用服务器编号, 应用服务器名称, 应用服务器IP地址(域名), 应用服务器端口号

3.代理服务器的IP地址和端口号必须对所有的客户端进行公开.  代理服务器必须有公网IP地址(域名). 各应用服务器也必须有公网IP地址(域名), 但只向代理服务器公开.

4.代理服务器提供所有客户端调用的接口:

Function GetAppServer(const UserId, Password: string): string;

功能: 客户端获取自己专用的应用服务器IP地址和端口号

参数: UserId: string---客户编号;Password: string---客户密码

返回: 字符串---应用服务器的IP地址(域名);应用服务器端口号(分号隔开)

5.客户端断开同代理服务器之间的连接, 建立同应用服务器之间的连接.

6.各应用服务器分别连接自己专用的数据库服务器

7.各数据库服务器之间必须保持数据同步. 比如通过数据库复制的方式来进行.

8.如果是俩台数据库服务器的话, 可以考虑如此划分: 一台负责数据的查询; 一台负责数据的提交. SQL SERVER数据库服务器进行读写分离的划分是实现数据库群集的唯一办法.

一般来讲,70%的数据库操作为读操作。在写入数据库上做一个发布服务器,主要基于SQL Server 的复制技术,将即将用到的表都选上。其次,在两个读服务器上做订阅服务,

这样一个“一写两读”的数据库集群就完成了。

9.整个服务器群集的一些容错处理:首先, 使用多个中间层。从中间层的作用可以看出,它承接了数据库的所有连接,所以,一旦出了问题,就会导致整个系统瘫痪。
所以做多个中间层是必要的,这样,如果一个坏了可以登录到另一个。

其次, 数据库镜像是SQL Server 2005大力推出的,它就是要实现数据库的安全转移,所以需要再单独拿出一台机器来做备份服务器,
将完全镜像写入该服务器,这样,即使写入服务器坏了,它也可以自动转移到备份服务器上来,保证不影响用户。
这实际上就相当于实现了对服务器的容灾管理,但是有一点需要注意,在这种镜像的体系中,必须要有一台服务器作为监视服务器,
以便察看哪台服务器坏了,用以在机器出错之后迅速调整。

原文地址:https://www.cnblogs.com/hnxxcxg/p/2418289.html