网站空间ip/深圳seo优化公司

网站空间ip,深圳seo优化公司,网站 如何做 同时在线,店铺引流的30种方法一、背景 常见的mongodb集群模式有以下三种: 主从复制(Master-Slave)模式副本集(Replica Set)模式分片(Sharding)模式 公司测试环境搭建的集群采用分片模式,有同事反馈说&#xf…

一、背景

常见的mongodb集群模式有以下三种:

  • 主从复制(Master-Slave)模式
  • 副本集(Replica Set)模式
  • 分片(Sharding)模式

公司测试环境搭建的集群采用分片模式,有同事反馈说,程序写入数据库报错。
详细错误见下:

Caused by: com.mongodb.MongoWriteConcernException: waiting for replication timed out; Error details: { wtimeout: true } at sdrs03

提示写入数据失败,因为是分片模式,所以它的数据是需要写入到两个分片服务机器上。

也就是说,这个错误很可能是因为一个分片写入成功,另一个写入失败所导致。

连接某个节点,连接Mongodb,执行命令sh.status()查看集群状态。

最后发现是某个机器的磁盘空间已满所引起的,当时为了快速回复,就手动删除了大日志文件。

今天有空就梳理一下问题,为了便于理解,画了一个部署架构图。

二、部署架构图

在这里插入图片描述
分片模式下,三个节点是等价关系,这里只举例其中一个来说。

在这里插入图片描述

[root@mongo_test01 data]# ps -ef | grep mongo
root      6223 14104  0 11:07 pts/0    00:00:00 grep --color=auto mongo
mongo    11016     1  1 Mar27 ?        00:43:37 /usr/local/mongodb-linux-x86_64-rhel70-4.0.27/bin/mongos -f /data/mongodb50000/cnf/mongo50000.cnf
mongo    11497     1  1 Mar27 ?        00:51:45 /usr/local/mongodb-linux-x86_64-rhel70-4.0.27/bin/mongod -f /data/mongodb11000/cnf/mongo11000.cnf
mongo    16436     1  3 Mar27 ?        01:32:02 /usr/local/mongodb-linux-x86_64-rhel70-4.0.27/bin/mongod -f /data/mongodb12000/cnf/mongo12000.cnf
mongo    19133     1  1 10:35 ?        00:00:35 /usr/local/mongodb-linux-x86_64-rhel70-4.0.27/bin/mongod -f /data/mongodb40000/cnf/mongo40000.cnf
mongo    19952     1  2 09:45 ?        00:02:15 /usr/local/mongodb-linux-x86_64-rhel70-4.0.27/bin/mongod -f /data/mongodb10000/cnf/mongo10000.cnf

这里启动了五个进程,每个进程端口对应见上图。

  • 分片服务器,对应端口10000/11000/12000
  • 配置服务器,对应端口40000
  • Mongos路由服务,对应端口50000,外部访问入口

三、详细配置

日志的保存路径和进程ID,见/data/mongodb{端口}/cnf/mongo{端口}.cnf

1、分片服务

因为三个分片配置类同,只是端口号不一样,所以仅以10000端口示例:
在这里插入图片描述

#SERVER
dbpath = /data/mongodb10000/data
logpath = /data/mongodb10000/log/mongo10000.log
pidfilepath = /data/mongodb10000/run/mongo10000.pid
fork = true
port = 10000
quiet = true
logappend = true
journal = true
directoryperdb = true
maxConns = 65536
bind_ip_all = true
transportLayer=asio
serviceExecutor=adaptive#SLOW_LOG
profile = 1
slowms = 500
slowOpSampleRate = 1replSet = sdrs01
oplogSize = 10240
shardsvr = true#USER
keyFile=/data/mongodb10000/cnf/keyFile
setParameter=enableLocalhostAuthBypass=1
setParameter=failIndexKeyTooLong=1storageEngine=wiredTiger
wiredTigerCacheSizeGB=8
wiredTigerCollectionBlockCompressor=snappy
wiredTigerDirectoryForIndexes=true

2、配置服务

复制集的名称是csvrs01,端口为40000,在后面的mongos会用到。
在这里插入图片描述

# cat /data/mongodb40000/cnf/mongo40000.cnf#SERVER
dbpath = /data/mongodb40000/data
logpath = /data/mongodb40000/log/mongo40000.log
pidfilepath = /data/mongodb40000/run/mongo40000.pid
fork = true
port = 40000
quiet = true
logappend = true
maxConns = 65536
directoryperdb = true#SLOW_LOG
profile = 1
slowms = 500
bind_ip_all = trueconfigsvr = true
replSet = csvrs01
storageEngine=wiredTiger
wiredTigerCacheSizeGB=1
oplogSize = 8192#USER
keyFile=/data/mongodb40000/cnf/keyFile
setParameter=enableLocalhostAuthBypass=1

3、Mongos

在这里插入图片描述

这里填写了配置服务列表。另外需要注意一点,它的pid进程号是保存在/data/mongodb50000/run/mongos.pid,而非/data/mongodb50000/run/mongodb50000.pid。

pidfilepath = /data/mongodb50000/run/mongos.pid
logpath = /data/mongodb50000/log/mongos.log
fork = true
port = 50000
quiet = true
logappend = true
maxConns = 20000
bind_ip_all = true
configdb = csvrs01/192.168.10.28:40000,192.168.10.71:40000,192.168.10.72:40000#USER
keyFile=/data/mongodb50000/cnf/keyFile
setParameter=enableLocalhostAuthBypass=1
setParameter=taskExecutorPoolSize=4
setParameter=ShardingTaskExecutorPoolMaxSize=5000

4、初始化副本集

在任意一台机器上使用 mongo 命令行工具连接到任意配置服务器,并初始化副本集sdrs01。

mongo --host 192.168.10.28:40000
use admin
cfg = {_id: "sdrs01",members: [{ _id: 0, host: "192.168.10.71:10000" },{ _id: 1, host: "192.168.10.72:10000" }]
}
rs.initiate(cfg)

以此类推,初始化副本集sdrs02和sdrs03。

mongo --host 192.168.10.28:40000
use admin
cfg = {_id: "sdrs02",members: [{ _id: 0, host: "192.168.10.28:11000" },{ _id: 1, host: "192.168.10.71:11000" }]
}
rs.initiate(cfg)
mongo --host 192.168.10.28:40000
use admin
cfg = {_id: "sdrs03",members: [{ _id: 0, host: "192.168.10.28:12000" },{ _id: 1, host: "192.168.10.72:12000" }]
}
rs.initiate(cfg)

5、添加分片到路由服务器mongos

使用 mongo 命令行工具连接到路由服务器,并添加分片。

mongo --host 192.168.10.28:50000
use admin
sh.addShard("sdrs01/192.168.10.71:10000")
sh.addShard("sdrs01/192.168.10.72:10000")sh.addShard("sdrs02/192.168.10.28:11000")
sh.addShard("sdrs02/192.168.10.71:11000")sh.addShard("sdrs03/192.168.10.28:12000")
sh.addShard("sdrs03/192.168.10.72:12000")

注意,这里每个分片,只选择其中的两个节点作为副本。

6、登录Mongos,查看集群状态

mongo 192.168.10.28:50000 -uroot -p{密码} --authenticationDatabase admin> sh.status()

在这里插入图片描述

shards:{  "_id" : "sdrs01",  "host" : "sdrs01/192.168.10.71:10000,192.168.10.72:10000",  "state" : 1,  "tags" : [ "test.sh1", "sdrs01" ] }{  "_id" : "sdrs02",  "host" : "sdrs02/192.168.10.28:11000,192.168.10.71:11000",  "state" : 1,  "tags" : [ "test.sh2", "sdrs02" ] }{  "_id" : "sdrs03",  "host" : "sdrs03/192.168.10.28:12000,192.168.10.72:12000",  "state" : 1,  "tags" : [ "test.sh3", "sdrs03" ] }

四、未完待续

由于整篇文章比较冗长,我先介绍Mongodb sharding分片集群的搭建及配置详情,顺便梳理了其部署架构, 下文我将介绍其日志治理问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统信 UOS V20 一键安装 Oracle 12CR2(220118)单机版

Oracle 一键安装脚本,演示 统信 UOS V20 一键安装 Oracle 12CR2(220118)单机版过程(全程无需人工干预):(脚本包括 ORALCE PSU/OJVM 等补丁自动安装) ⭐️ 脚本下载地址:…

改Jenkins版本号

旧服务器迁移到新,打包版本号更新 Jenkins.instance.getItemByFullName("双机热备").updateNextBuildNumber(65)

考研数学|高效刷透汤家凤《1800》经验分享

当然不需要换老师,如果你在基础阶段连汤老师的课都听不进去,那么换其他老师的话,很大可能也是白搭。 如果你现在对于1800还是一筹莫展的话,那么很明显,这反映出前期基础不扎实,没有真正理解和掌握这部分内…

模型融合model fusion与模型聚合model ensemble:提升机器学习性能的艺术

诸神缄默不语-个人CSDN博文目录 文章目录 引言基模型模型融合与模型聚合的基本概念常见的模型聚合方法简单平均法加权平均模型输出加权平均模型参数投票法bagging堆叠法(Stacking)提升法(Boosting)GBDT 新的模型聚合工作模型融合与…

GooleNet神经网络介绍

一、简介 GoogleNet,也称为GoogLeNet,是谷歌工程师设计的一种深度神经网络结构,它在2014年的ImageNet图像识别挑战赛中取得了冠军。该神经网络的设计特点主要体现在其深度和宽度上,通过引入名为Inception的核心子网络结构&#x…

Science Robotics 逼真面部表情的机器人

人类可以产生数千种不同的面部表情来传达无数微妙的情绪状态,这种能力是人类社会互动中最有效和最有效的界面之一。在 2019 年冠状病毒病流行期间,口罩使社交互动变得尴尬,因为它们掩盖了面部表情。同时,当摄像机打开时&#xff0…

数据可视化为什么能在智慧港口中发挥作用?

随着全球贸易活动日益频繁,港口作为国际贸易的重要节点,其运营效率与智能化程度直接影响着整个物流链的效能。在此背景下,智慧港口的概念应运而生,它借助先进的信息技术手段对传统港口进行改造升级,其中,数…

Kubernetes-running app on kube

Docker 安装Docker 首先,您需要在Linux机器上安装Docker。如果您不使用Linux,则需要启动一个Linux虚拟机(VM)并在该虚拟机中运行Docker。如果你使用的是Mac或Windows系统,并按照指令安装Docker, Docker将为你建立一个虚拟机,并在…

基于 SymPy 的反函数求解

原文:https://blog.iyatt.com/?p14396 例一 f(x) 2x 3 这个函数很简单,可以看出它的反函数是(令 yf(x) ):$$x\frac{y-3}{2}$$ 使用 SymPy 求解可以采用这样的思路: 已知函数 f(x)2x3, 令 y f(x), 即构…

[yolox]ubuntu上部署yolox的ncnn模型

首先转换pytorch->onnx->param模型,这个过程可以查资料步骤有点多,参考blog.51cto.com/u_15660370/6408303,这里重点讲解转换后部署。 测试环境: ubuntu18.04 opencv3.4.4(编译过程省略,参考我其他博客) 安装…

List操作add,clear,addall报错UnsupportedOperationException的解决办法

ArrayList和Arrays.ArrayList是两码事 ArrayList 支持 add,clear,addall Arrays.ArrayList不支持add,clear,addall 这个方法的使用时候,传递的数组必须是对象数组,而不是基本数据类型 JDK源码 /** *返回由…

Linux 安装部署高性能缓存服务redis

Linux 系统安装Redis 5 注意事项: 下载Redis 文件包,并上传至linux服务上解压 tar -zxvf redis.tar安装: 编译 make PREFIX/usr/local/redis install配置: redis.conf daemonize yes bind 127.0.0.1 192.168.1.221 supervised…

2024.3.31 机器学习周报

引言 Abstract 文献阅读 1、题目 Lite-HRNet: A Lightweight High-Resolution Network 2、引言 我们提出了一个高效的高分辨率网络,Lite-HRNet,用于人体姿态估计。首先,我们简单地将Shuf Chronenet中的高效shuffle块应用于HRNet&#x…

备考ICA----Istio实验14---出向流量管控Egress Gateways实验

备考ICA----Istio实验14—出向流量管控Egress Gateways实验 1. 发布测试用 pod kubectl apply -f istio/samples/sleep/sleep.yaml kubectl get pods -l appsleep2. ServiceEntry 创建一个ServiceEntry允许流量访问edition.cnn.com egressgw/edition-ServiceEntry.yaml api…

科技下乡:数字乡村改变乡村生活方式

在科技飞速发展的时代,数字化、信息化浪潮正以前所未有的速度席卷全球。在这场科技革命中,乡村不再是滞后的代名词,而是成为了数字乡村建设的热土。科技下乡,让数字乡村成为了改变乡村生活方式的重要力量。 一、科技下乡&#xf…

(学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

STM32之HAL开发——I2C读写EEPROM

I2C功能框图(F1系列) STM32 的 I2C 外设可用作通讯的主机及从机,支持 100Kbit/s 和 400Kbit/s 的速率,支持 7 位、 10 位设备地址,支持 DMA 数据传输,并具有数据校验功能,I2C 外设还支持 SMBus2…

3D产品可视化SaaS

“我们正在走向衰退吗?” “我们已经陷入衰退了吗?” “我们正在步入衰退。” 过去几个月占据头条的问题和陈述引发了关于市场对每个行业影响的讨论和激烈辩论。 特别是对于科技行业来说,过去几周一直很动荡,围绕费用、增长和裁…

Webpack生成企业站静态页面 - ajax请求

一些项目因需求不同,如需SEO或小项目,使用angular、react或vue就大材小用了。可以通过webpack、gulp这些构建工具,也能快速完成html页面开发,并且也能使用less/sass/styus等样式预编译功能,以及将js、html分模块、分组…

RabbitMQ高级笔记

视频链接:【黑马程序员RabbitMQ入门到实战教程】 文章目录 1.发送者的可靠性1.1.生产者重试机制1.2.生产者确认机制1.3.实现生产者确认1.3.1.开启生产者确认1.3.2.定义ReturnCallback1.3.3.定义ConfirmCallback 2.MQ的可靠性2.1.数据持久化2.1.1.交换机持久化2.1.2.…