文档章节

spring4.0 配置mongo3.0集群

天马行空&
 天马行空&
发布于 2016/03/16 15:03
字数 729
阅读 479
收藏 0

#在mongo3.0集群,使用副本集群方式.

pom.xml 加引mongo 3.0 ,spring 版本是4.以上 我这里使用提4.2.1.RELEASE

     <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.8.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.1.0</version>
    </dependency>
 如果不引用mongo-java-driver 其默加自动导入mongo2.0的驱动.  mongo2的驱动
  • 这里给提供一个mongo2.0spring配置.
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:mongo="http://www.springframework.org/schema/data/mongo"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/data/mongo
           http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd
    		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
    		http://www.springframework.org/schema/context/spring-context.xsd">
        <!-- 加载mongodb的属性配置文件 -->
    <!-- 加载mongodb的属性配置文件 -->
    <context:property-placeholder location="classpath:mongodb.properties" />
    <mongo:mongo id="mongo" replica-set="${mongo.hostport}">
        <mongo:options
                connections-per-host="${mongo.connectionsPerHost}"
                threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
                connect-timeout="${mongo.connectTimeout}"
                max-wait-time="${mongo.maxWaitTime}"
                auto-connect-retry="${mongo.autoConnectRetry}"
                socket-keep-alive="${mongo.socketKeepAlive}"
                socket-timeout="${mongo.socketTimeout}"
                slave-ok="${mongo.slaveOk}"
                write-number="1"
                write-timeout="1000"
                write-fsync="true"/>
    </mongo:mongo>
    <mongo:db-factory id="mongoDbFactory"  dbname="${mongo.dbname}" mongo-ref="mongo" username="${mongo.username}" password="${mongo.password}" />

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
    </bean>    
    </beans>

  • 在使用mongo3.0后,这种配置方式,就不支持,官户提给出的解决方法

     <mongo:mongo-client id="mongoClient" host="192.168.3.98" port="27017" credentials="用户名:密码@拥有权限的数据库">
      <mongo:mongo-client>
     这种方式,也同样会没有权限,
    

    开始以为使用replica-set="127.0.0.1:27001,127.0.0.1:27002,127.0.0.1:27003" 这种方式可以,这种方式在未使用mongo权限时,好像没有什么问题,mongo启动授权后.就会提供没有权限.

##spring mongo3 配置文件.

  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mongo="http://www.springframework.org/schema/data/mongo"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/data/mongo
       http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 加载mongodb的属性配置文件 -->

    <context:property-placeholder location="classpath:mongodb.properties" />
    <!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo,  -->

    <!-- MongoClient -->
    <bean id="mongoClient" class="com.mongodb.MongoClient">
        <constructor-arg name="credentialsList">
            <list>
                <!-- Credentials -->
                <bean   class="com.mongodb.MongoCredential">
                    <constructor-arg name="mechanism" value = "#{T(com.mongodb.AuthenticationMechanism).SCRAM_SHA_1}" />
                    <constructor-arg type="java.lang.String" name="userName" value="${mongo.username}" />
                    <constructor-arg type="java.lang.String" name="source" value="${mongo.dbname}" />
                    <constructor-arg type="char[]" name="password" value="${mongo.password}" />
                </bean>
            </list>
        </constructor-arg>
        <constructor-arg name="seeds">
            <list>
                <bean   class="com.mongodb.ServerAddress">
                    <constructor-arg type="java.lang.String" name="host" value="${mongo.sharded_clusters1.host}" />
                    <constructor-arg type="int" name="port" value="${mongo.sharded_clusters1.port}" />
                </bean>
                <bean   class="com.mongodb.ServerAddress">
                    <constructor-arg type="java.lang.String" name="host" value="${mongo.sharded_clusters2.host}" />
                    <constructor-arg type="int" name="port" value="${mongo.sharded_clusters2.port}" />
                </bean>
                <bean   class="com.mongodb.ServerAddress">
                    <constructor-arg type="java.lang.String" name="host" value="${mongo.sharded_clusters2.host}" />
                    <constructor-arg type="int" name="port" value="${mongo.sharded_clusters3.port}" />
                </bean>
            </list>
        </constructor-arg>
    </bean>

    <!-- MongoDbFactory -->
    <bean id="simpleMongoDbFactoryID" class="org.springframework.data.mongodb.core.SimpleMongoDbFactory">
        <constructor-arg ref="mongoClient" />
        <constructor-arg name="databaseName" value="${mongo.dbname}" />
    </bean>
    <!-- MongoTemplate -->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="simpleMongoDbFactoryID" />
    </bean>

</beans>

  • mongodb.properties 配置文件.
    mongo.sharded_clusters1.host=127.0.0.1
    mongo.sharded_clusters2.host=127.0.0.1
    mongo.sharded_clusters3.host=127.0.0.1
    
    mongo.sharded_clusters1.port=27051
    mongo.sharded_clusters2.port=27051
    mongo.sharded_clusters3.port=27051
    
    mongo.connectionsPerHost=8
    mongo.threadsAllowedToBlockForConnectionMultiplier=200
    mongo.connectTimeout=10000
    mongo.maxWaitTime=50000
    mongo.autoConnectRetry=true
    mongo.socketKeepAlive=true
    mongo.socketTimeout=50000
    mongo.slaveOk=true
     
    mongo.username=myuser
    mongo.password=123456
    mongo.dbname=mydb
    mongo.maxConnectionLifeTime=0
    mongo.heartbeatConnectTimeout=0
    mongo.heartbeatSocketTimeout=0
mongo3.0 使用Spring需要使用4.0以上的版本,mongo3.集群使用权限,

参考 http://stackoverflow.com/questions/28958789/connecting-to-mongodb-3-0-with-java-spring https://docs.mongodb.org/manual/core/authentication/ http://docs.spring.io/spring-data/data-mongo/docs/1.8.4.RELEASE/reference/html/#mongo.mongo-3.authentication

© 著作权归作者所有

天马行空&
粉丝 5
博文 4
码字总数 1661
作品 0
海淀
高级程序员
私信 提问
加载中

评论(1)

K
KingGavin
神排版
求mongo3.0的变化文档

求mongo3.0的变化文档。 主要是想知道 autoConnectRetry和isSlaveOk属性在3.0中是怎么处理的?替代了还是取消了呢?

7哥
2015/03/14
233
1
2016年最新spring4框架搭建视频教程

Spring4.0作为一个广泛使用的开源 框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 Spring4.0致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以...

2846613430
2016/04/11
605
0
webService接口实战总结

问题1:spring4.0与jdk1.6与cxf3.0的兼容问题,之前项目用的是spring4.0与jdk1.6与cxf3.0,接口报错,之后换了jdk1.7,问题解决。 参考:http://bbs.csdn.net/topics/391812556 问题2:cxf的j...

liangendi123
2017/03/03
0
0
项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度

2014-05-18 12:51 by Jeff Li 前言   系列文章:[传送门]   项目需求:      http://www.cnblogs.com/Alandre/p/3733249.html      上一博客写的是基本调度,后来这只能用于,...

泥沙砖瓦浆木匠
2014/05/18
9.1K
0
Uncode-DAL 1.0.5 发布,Java 通用数据访问层

Uncode-DAL 是 Java 通用数据访问组件,基于mybatis、spring jdbc、hibernate、mongo等ORM框架开发,同时支持基于多数据源的读写分离、主备切换、故障转移,自动恢复、负载均衡、缓存等。可以...

冶卫军
2015/11/25
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 人生,还真是到处是意外

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享lil peep的单曲《High School》 《High School》- lil peep 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
51分钟前
20
2
Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
6
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
10
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部