带只读数据库副本的DSpace多服务器部署及爬虫流量分流问题咨询
在负载均衡器前端部署多台DSpace服务器的可行性
完全没问题,DSpace本身支持横向扩展,多节点部署在负载均衡器后是常规的性能优化方案,只需注意几个核心细节:
- 所有节点共享统一的资产存储(如NFS、对象存储),避免文件上传、存储出现不一致
- 采用分布式会话管理(如Redis共享会话),不要依赖节点本地会话,防止跨节点登录失效
- 同步所有节点的核心配置文件,包括数据库连接、Solr配置等参数
分流收割器与爬虫流量到只读副本服务器的实现
流量识别与分流
- 通过负载均衡器规则区分流量:根据User-Agent识别收割器(如OAI-PMH收割器的专属标识)、爬虫(如Googlebot、Bingbot),将这类请求转发至备用只读节点
- 针对OAI-PMH这类收割专属接口,可直接配置路径规则,把
/oai/*这类请求定向到只读节点
只读副本服务器配置
- 后端连接只读数据库副本,同时将该DSpace节点配置为只读模式:禁用提交、修改、删除等写操作接口,避免只读数据库报错
- Solr配置指向主节点的Solr副本(或单独的Solr只读实例),确保索引数据与主节点一致
避免爬虫/收割器影响用户体验的额外措施
- 设置流量速率限制:在负载均衡器或DSpace节点上配置请求频率阈值,防止爬虫短时间内大量请求占用资源
- 配置
robots.txt声明爬取规则:明确允许/禁止爬取的路径,引导爬虫优先访问静态资源或只读接口 - 约定收割时间段:和数据提供方协商在非高峰时段执行OAI-PMH收割,错开用户访问峰值
- 监控流量异常:实时追踪爬虫/收割器的请求量,超过阈值时自动触发限流或临时拦截
内容的提问来源于stack exchange,提问作者NeilNZ
相关产品推荐
相关产品推荐

