SpaceBuilder分布式部署方案适用版本:v3.0版本信息:0.9建立日期:2008-5-21创建人:马志强审核者:批准人:批准日期:编辑软件:Microsoft Office 2003 中文版目录1引言 (3)1.1引用术语与缩写解释 (3)2部署综述 (3)2.1服务器角色与职责 (4)2.2网络设备 (4)3服务器配置 (4)3.1通用配置 (4)3.1.1单点登录配置 (4)3.1.2缓存客户端配置 (5)3.1.3数据库连接字符串配置 (5)3.2web服务器 (6)3.2.1与资源服务器相关配置 (6)3.2.2与文件服务器相关配置 (6)3.2.3与全文检索服务器相关配置 (8)3.2.4自运行任务配置 (8)3.3文件服务器 (10)3.3.1统一配置 (13)3.3.2个别配置 (14)3.3.3WCF附件转换站点的配置: (14)3.4全文检索服务器 (15)3.4.1统一配置 (15)3.4.2个别配置 (16)3.5资源服务器 (16)3.6数据库服务器 (16)3.7缓存服务器 (17)3.8Email发送服务器 (17)4服务器配置建议 (17)4.1合并建议 (17)图表索引:图表1 分布式部署视图 (3)1引言为了使SpaceBuilder可以应对高负载、大数据量的挑战,进行了该方案的编写。
针对不同的数据量及负载会有不同的技术架构,SpaceBuilder是为千万级(单表记录)数据而开发的,因此提供本方案供架构设计以及应用部署人员使用。
SpaceBuilder可以通过部署多台服务器来提升负载,本文档详细介绍如何在多台服务器上进行部署,需要进行哪些设置及注意事项。
1.1引用术语与缩写解释2部署综述图表1 分布式部署视图2.1服务器角色与职责2.2网络设备1.负载均衡:建议采用硬件负载均衡设备;2.如果附件量大并且使用频繁建议采用SAN设备进行附件及索引文件的存储;3服务器配置3.1通用配置3.1.1单点登录配置为了实现分布式部署,首先要实现单点登录(SSO)。
本文档以最简单的相同域名情况为例进行配置。
在web.config中进行如下配置,必须配置domain属性用自己的域名替换<forms name=".SPBForms" protection="All"loginUrl="~/User/Login.aspx"timeout="60000"slidingExpiration="true" domain="" />注意:✧如果客户有自己的SSO方案可以替换成客户的SSO;✧如果需要部署到不同的域名,则本配置不适合;3.1.2缓存客户端配置在需要调用缓存服务的web.config或者app.config中添加缓存客户端的配置。
根据Memcached服务器的设置对以下“address”、“port”进行修改。
在SpaceBuilder.config还需要进行如下设置,以启动分布式缓存。
3.1.3数据库连接字符串配置根据数据库服务器的部署进行数据库连接字符串的配置,需要修改两个配置文件“SpaceBuilder.config”和“web.config”。
1.SpaceBuilder.config中的每个“application/providers”都可以配置两个属性“writableConnectionStringName”、“readOnlyConnectionStringName”,属性值对应web.config2.web.config中数据库连接字符串设置3.2web服务器web服务器具有完全相同的配置,因此可以很方便的任意扩展web服务器。
3.2.1与资源服务器相关配置注意:✧emoticonPath仅能设置为web服务器所在路径;✧如果使用独立的资源服务器,则emoticonPath仅代表Emotion.xml(还可能包含其他xml配置文件)在web服务器的路径(因此需要在每台web服务器保留Emotion.xml等配置文件),实际表情图片路径为资源服务器相应路径;3.2.2与文件服务器相关配置1.SpaceBuilder.config2.web.config配置wcf客户端注意:✧各fileStorages需要根据文件服务器分布式部署进行相应设置;✧根据wcf服务器相应调整wcf客户端配置;3.2.3与全文检索服务器相关配置在spacebuilder.config找到luceneSearch节点,依据全文检索服务器部署修改“searchActionRootUrl”。
3.2.4自运行任务配置在SpaceBuilder.config仅保留以下自动运行的任务。
3.3文件服务器1.文件服务器的职责是对外提供附件上传、下载服务。
2.文件服务器的负载均衡只能根据不同存储(应用的附件)进行划分,各应用附件的数量、访问频繁程度都各不相同。
3.建议在文件服务器开启http直连服务,即用户可以直接访问附件的http地址(如果需要防盗链,由客户自行设置)。
3.3.1统一配置对Spacebuilder.config进行以下调整:1.设置enableDistributedStorage=false;3.3.2个别配置附件上传、下载功能主要由HttpHandler及少量Action(Controller中的Action)实现的,因此应该根据每台文件服务器的具体职责(负责哪些应用),进行以下相应配置:1.在web.config配置< handlers>,根据Handler文件列表增加需要的Handler配置;3.3.3WCF附件转换站点的配置因为Web服务器不能直接对上传的附件进行操作,所以要借助WCF服务方式对附件进行修改。
目前需要WCF附件转换的只有论坛、资讯和博客,各文件服务器根据应用不同配置自身的WCF服务器端。
1.配置一个和文件服务一样的但只能内网访问的站点;2.在Global.asax.cs配置UrlRouting规则;3.2.在web.config增加WCF服务器端配置;以博客为例:注意:因WCF没有使用身份安全验证,所以各个WCF站点,应该配置成一个仅允许内网访问的WCF站点,以确保安全性。
3.4全文检索服务器1.全文检索服务器具备以下职责:1)提供搜索服务;2)自动建立增量索引;3)初始化索引;2.全文检索服务器的负载均衡只能根据不同应用进行规划。
3.4.1统一配置对Spacebuilder.config进行以下调整:3.4.2个别配置1.搜索功能需要建立web站点,根据每台服务器的职责不同对SpaceBuilder.config的luceneSearch/globalIndexDirectory进行设置;2.安装WinService(从SpaceBuilder.Advanced中获取)1)按Memcached服务器、数据库服务器设置来修改SpacebuilderService.exe.config相应设置;2)修改SpaceBuilder.config只保留与本服务器职责相同的“增量创建索引Task”,移除所有其他Task配置。
3.5资源服务器1.资源服务器的职责是对外提供css、js、image等静态文件http服务;2.web服务器不需要解析动态内容,仅能处理html、css、js、image等静态内容即可;3.注意:✧为了进一步减少http连接及带宽占用,建议在web服务器根据mime类型及目录设置客户端缓存过期时间;3.6数据库服务器数据库服务器的分布式需要根据应用进行规划,每个应用模块的数据读取都可以设置一个数据库服务器,但是数据写入必须都配置到主服务器。
在web站点的数据库连接字符串配置参见数据库连接字符串配置数据库需要完成如下设置:1.在SQL Server上建立复制-订阅,实现数据库读写分离(详细配置方法参见附件《SQL Server复制-订阅配2.在SQL Server主服务器建立自运行任务:a)每天执行的作业,在晚上12点执行i.需要执行的存储过程有:2.spb_RecommendedItem_DeleteDelayed3.7缓存服务器缓存服务器用于提供分布式缓存服务,使用Memcached1.缓存服务器用于提供分布式缓存服务;2.使用Memcached作为缓存服务器软件;3.缓存服务器不要直接暴露在互联网中,仅允许该局域网内访问即可;3.8Email发送服务器Email发送服务器用于自动批量发送队列中的Email,需要:1.可以调用Email发送的SMTP服务;2.安装WinService(从SpaceBuilder.Advanced中获取)1)按Memcached服务器、数据库服务器设置来修改SpacebuilderService.exe.config相应设置;2)修改SpaceBuilder.config只保留发送Email的保留以下Task:;4服务器配置建议4.1合并建议当负载不太大时可以对服务器进行合并,建议:1.Email发送服务器可以与全文检索服务器合并;2.资源服务器可以与文件服务器或全文检索服务器合并;。