最近在尝试MongoDB,单节点时都还ok,结果用replica set时死活有问题
环境信息如下:
vmware + +
然后解压了3份
启动了3个进程(3个不同的端口)
config如下
rs.status
客户端用的Java,
host list
List<ServerAddress> list = new ArrayList<ServerAddress>(); ServerAddress tmp1 = new ServerAddress("192.168.223.129", 27017); ServerAddress tmp2 = new ServerAddress("192.168.223.129", 27018); ServerAddress tmp3 = new ServerAddress("192.168.223.129", 27019); list.add(tmp1); list.add(tmp2); list.add(tmp3); return list;
然后悲剧来了,各种插入查询操作都是MongoTimeoutException
com.mongodb.MongoTimeoutException: Timed out while waiting for a server that matches {serverSelectors=[ReadPreferenceServerSelector{readPreference=primary}, LatencyMinimizingServerSelector{acceptableLatencyDifference=15ms}]} after 806 ms at com.mongodb.BaseCluster.getServer(BaseCluster.java:87) at com.mongodb.DBTCPConnector.getServer(DBTCPConnector.java:654) at com.mongodb.DBTCPConnector.access$300(DBTCPConnector.java:39) at com.mongodb.DBTCPConnector$MyPort.getConnection(DBTCPConnector.java:503) at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:451) at com.mongodb.DBTCPConnector.getPrimaryPort(DBTCPConnector.java:409) at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:182) at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:165) at com.mongodb.DBCollection.insert(DBCollection.java:161) at com.mongodb.DBCollection.insert(DBCollection.java:107) at com.mongodb.DBCollection.save(DBCollection.java:966) at com.mongodb.DBCollection.save(DBCollection.java:934) at xxx.xxx.xxx.mongo.MyMongoClient.add(MyMongoClient.java:103) at xxx.xxx.xxx.mongo.MyMongoClientTest.testMyTest(MyMongoClientTest.java:23)
既然提示这个了,那就加大点吧
acceptableLatencyDifference=15ms
MongoClient mongoClient = new MongoClient(hostList, new MongoClientOptions.Builder() .acceptableLatencyDifference(1 * 1000) .build());
结果除了数字变了,其他一点儿没变。。。
com.mongodb.MongoTimeoutException: Timed out while waiting for a server that matches {serverSelectors=[ReadPreferenceServerSelector{readPreference=primary}, LatencyMinimizingServerSelector{acceptableLatencyDifference=1000 ms}]} after 806 ms
一路跟代码到抛异常的地方,这代码怎么连个注释也没有,实在看不下去了(好吧其实是我太懒不想看了)
有没有遇到过相似问题的筒子们啊,来交流交流嘛
相关推荐
在部署 MongoDB 分片(Sharding)和副本集(Replica Set)后,我们需要配置 MongoDB 的配置文件,以便 MongoDB 可以连接到 Kubernetes 集群并使用持久存储。 本解决方案的优点主要包括: * 高可用性:MongoDB 分片...
MongoDB的复制集(Replica Set)是一种高可用性架构,用于确保数据的冗余和容错性。在MongoDB中,复制集是由多个具有相同数据副本的节点组成,其中一个是主节点(Primary),其余是次级节点(Secondary)。主节点...
MongoDB的副本集(Replica Set)是一种高可用性解决方案,它通过在多个节点之间复制数据来确保数据的冗余和容错性。在MongoDB中,副本集由一组 MongoDB实例组成,包括一个主节点(Primary)和多个从节点...
在大型分布式系统中,为了实现高可用性和水平扩展,MongoDB提供了两种关键特性:副本集(Replica Sets)和分片(Sharding)。这篇博客将探讨如何搭建MongoDB的副本集和分片集群。 首先,我们来理解一下MongoDB的...
信息 该文件描述了如何在 Docker 上运行 Mongo DB Replica Set。 我们假设主机上的 ...$ cd docker-mongodb-replicaset $ docker build -t mongo . 使用副本集启动 docker 容器 $ ./start.sh 使用 bash 再运行一个
6. **监控状态**:使用`rs.status()`命令检查Replica Set的状态,确保所有成员都已正确连接并同步。 7. **故障转移**:在primary节点出现故障时,secondary节点会自动进行选举成为新的primary。 8. **配置变更**:...
MongoDB的复制集(Replica Set)是一种高可用性解决方案,它可以确保数据的冗余和在主节点故障时提供自动故障转移。复制集通常由多个成员组成,包括一个主节点(Primary)、一个或多个次级节点(Secondary)以及可选...
- 其中,`username`和`password`是数据库认证信息,`host1:port1,host2:port2`是副本集成员的地址,`dbname`是数据库名,`replicaSet=rs0`指定了副本集名称。 4. **读写策略** - SpringBoot 默认会将所有操作发送...
由于历史原因,某个MongoDB副本集只有一主一从双节点,无法满足自动故障转移要求,需要配置一个仲裁节点。 原有节点192.168.10.20:27017,192.168.10.21:27017,现在准备在20上配置一个新节点27018当做仲裁 在当前主...
MongoDB的Replica Sets+Sharding架构是大数据时代下应对高可用性和可扩展性需求的重要解决方案。本篇文章将深入探讨这两个关键特性在Windows环境下的应用。 **副本集(Replica Sets)** MongoDB的副本集是一种高可用...
Java 连接 MongoDB 集群的多种方式 Java 连接 MongoDB 集群是目前 Java 开发中最常见的操作之一。在本文中,我们将详细介绍 Java 连接 MongoDB 集群的多种方式,包括连接独立的 MongoDB 实例、连接副本集、连接分片...
在本地运行MongoDB Atlas进行测试先决条件Java 8+ 码头工人该图显示了本地和远程docker对plicateSetNumber的支持plicateSetNumber 本地Docker主机本地Docker主机从容器内部运行测试并映射Docker套接字远程Docker守护...
在这个“MongoDB集群测试代码”中,我们关注的是MongoDB的两个关键特性:副本集(Replica Set)和分片(Sharding),以及如何通过配置文件和脚本来进行集群的设置与测试。 1. **副本集(Replica Set)**: - 副本...
4. MongoDB Replica Set 自动部署.exe和MongDB Replica Set 自动部署.pdb:这是实际的自动部署程序和其对应的调试信息文件。exe文件是可执行程序,可以直接运行在Windows环境下,通过SSH连接到Linux服务器并执行部署...
Passo a passo Crie os arquivos .conf符合示例key-file com或abaixo:$ openssl rand -base64 741 > /var/mongodb/pki/m103-keyfile$ chmod 400 /var/mongodb/pki/m103-keyfile 可以replica-set进行配置。...