Spring Mongo配置多个Mongos
由于数据存储使用MongoDB集群,在对外访问的时候,地址是Mongos的地址,在使用的过程中没有发现任何问题,配置如下:
<mongo:mongo host="${mongodb.hostname}" port="${mongodb.port}">
<mongo:options connections-per-host="${mongodb.port}"
threads-allowed-to-block-for-connection-multiplier="${mongodb.threads-allowed-to-block-for-connection-multiplier}"
connect-timeout="${mongodb.connect-timeout}" max-wait-time="${mongodb.max-wait-time}" auto-connect-retry="${mongodb.auto-connect-retry}"
socket-keep-alive="${mongodb.socket-keep-alive}" socket-timeout="${mongodb.socket-timeout}" slave-ok="${mongodb.slave-ok}"
write-number="${mongodb.write-number}" write-timeout="${mongodb.write-timeout}" write-fsync="${mongodb.write-fsync}" />
</mongo:mongo>
但是,经过测试几轮性能测试以后,发现在大并发的时候Mongos机器负载过高,而其他存储Mongod机器负载很小,于是让我们解决该问题。
经过几番分析,原来由以下原因:
1、Mongos、config server、mongod三个进程都部署在一台机子。
2、没有考虑使用多个Mongos来均摊外部请求。
于是,另外部署几个Mongos,使用同一个配置库,问题解决,具体配置如下:
<mongo:mongo id="mongo" replica-set="${mongodb.replica-set}">
<mongo:options connections-per-host="${mongodb.port}"
threads-allowed-to-block-for-connection-multiplier="${mongodb.threads-allowed-to-block-for-connection-multiplier}"
connect-timeout="${mongodb.connect-timeout}" max-wait-time="${mongodb.max-wait-time}" auto-connect-retry="${mongodb.auto-connect-retry}"
socket-keep-alive="${mongodb.socket-keep-alive}" socket-timeout="${mongodb.socket-timeout}" slave-ok="${mongodb.slave-ok}"
write-number="${mongodb.write-number}" write-timeout="${mongodb.write-timeout}" write-fsync="${mongodb.write-fsync}" />
</mongo:mongo>
其中,replica-set格式:ip1:port,ip2:port,...
Spring Mongo配置多个Mongos的更多相关文章
- 2、Spring Boot配置
1.配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的: •application.properties •application.yml 配置文件的作用:修改SpringBoo ...
- Spring Boot -- 配置切换指南
一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...
- spring 定时任务配置
1.(易)如何在spring中配置定时任务? spring的定时任务配置分为三个步骤: 1.定义任务 2.任务执行策略配置 3.启动任务 (程序中一般我们都是到过写的,直观些) 1.定义任务 < ...
- 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz
1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...
- Spring Cloud 配置服务
Spring Cloud 配置服务 1. 配置服务简介 产生背景: 传统开发中,我们通常是将系统的业务无关配置(数据库,缓存服务器)在properties中配置,在这个文件中不会经常改变,但随着系统规 ...
- spring事务配置详解
一.前言 好几天没有在对spring进行学习了,由于这几天在赶项目,没有什么时间闲下来继续学习,导致spring核心架构详解没有继续下去,在接下来的时间里面,会继续对spring的核心架构在继续进行学 ...
- spring MVC配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- Spring mvc 配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- Spring动态配置多数据源
Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...
随机推荐
- POI2018
[BZOJ5099][POI2018]Pionek(极角排序+two pointers) 几个不会严谨证明的结论: 1.将所有向量按极角排序,则答案集合一定是连续的一段. 当答案方向确定时,则一个向量 ...
- BZOJ 3572: [Hnoi2014]世界树 虚树 树形dp
https://www.lydsy.com/JudgeOnline/problem.php?id=3572 http://hzwer.com/6804.html 写的时候参考了hzwer的代码,不会写 ...
- centos 6.5安装rvm 配置 Ruby开发环境
我是用ruby写测试脚本用 安装rvm也是费了好大劲 英文不易看懂 ,是个硬伤! rvm是ruby的版本管理工具 还可对ruby进行 安装 卸载 等 1.安装 curl # sudo yum ...
- MySQL DB 主从复制之SSL
需求架构 准备工作 主从服务器时间同步 # 主从服务器同时配置crontab任务,与NTP服务器同步时间即可 */5 * * * * ntpdate 172.16.0.1 &>/dev/ ...
- MySQL的mysql.sock文件作用(转)
mysql.sock是可用于本地服务器的套接字文件.它只是另一种连接机制. 不包含任何数据,但仅用于从客户端到本地服务器来进行交换数据.
- ELNEC Programmer
BeeHive204 Very fast universal 4x 48-pindrive concurrent multiprogramming system with ISP capability ...
- C#线程安全的那些事
还是上一次,面试的时候提到了C#线程安全的问题,当时回答的记不太清了,大概就是多线程同是调用某一个函数时可能会照成数据发生混乱,运行到最后发现产生的结果或数据并不是自己想要的,或是跨线程调用属性或方法 ...
- java中的几种对象(PO,VO,DAO,BO,POJO)
一.PO :(persistant object ),持久对象 可以看成是与数据库中的表相映射的java对象.使用Hibernate来生成PO是不错的选择. 二.VO :(value object) ...
- Html基本操作实例代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...
- 手动为Android 4.x 手机加入�自己的根证书(CA 证书)
首先看Android 4.x 系统的证书存放位置: AOSP Android系统中CA证书文件的位置在:/ system/etc/security/cacerts/一系列的以数字命名的.0文件 方法一 ...