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动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...
随机推荐
- 洛谷 P4884 多少个1?
题面在这里 好久没做题了2333,竟然还一次A了,神奇 大概就是等比数列然后把分母乘过去,然后直接BSGS就行了,就是要写快速乘恩... #include<bits/stdc++.h> # ...
- BZOJ 3483 SGU505 Prefixes and suffixes(字典树+可持久化线段树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3483 [题目大意] 给出一些串,同时给出m对前缀后缀,询问有多少串满足给出的前缀后缀模 ...
- 用C读取系统明文(附源码)
从一好朋友那得到一个好东西 可以读取系统明文 请用vc++ 6.0编译 #include <windows.h> #include <stdio.h> // // Vsbat[ ...
- [POI2015]Wilcze doły
[POI2015]Wilcze doły 题目大意: 给定一个长度为\(n(n\le2\times10^6)\)的数列\(A(1\le A_i\le10^9)\),可以从中选取不超过\(d\)个连续数 ...
- MAC下安装多版本JDK和切换几种方式
环境: MAC AIR,OS X 10.10,64位 历史: 过去 Mac 上的 Java 都是由 Apple 自己提供,只支持到 Java 6,并且OS X 10.7 开始系统并不自带(而是可选 ...
- 【8.14校内测试】【DP专题】
nlogn做法,dp[i]表示当前长度为i的最长上升子序列末尾元素的值. 不会写lower_bound(qwq,贴一个以前的好看点的代码 #include<iostream>//使用low ...
- http状态码学习笔记
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求. ...
- 华为S5300系列交换机V100R006SPH019升级补丁
S5300_V100R006SPH019.pat 附件: 链接:https://pan.baidu.com/s/1M1S5amGGViUieSp8lJ9psw 密码:sexx
- TeamViewer运行在Windows Server 2008下连接时错误提示:正在初始化显示参数
这个是使用远程桌面安装和使用Teamviewer的问题,解决方法: 实际上安装完成后TeamViewer有两个ID,一个是个人ID(就是上面卡住的780 567 914),另一个是服务器ID,我们通过 ...
- jQuery碎语(2) 事件
4.事件 ● 通过方法名给元素绑定事件: $('li').click(function(event){}) ● 通过bind方法给元素绑定事件: $('li') .bind('click',funct ...