利用python测试mongodb副本集数据同步延迟
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本文主要介绍python如何连接mongodb副本集及读写分离配置,mongodb副本集数据同步延迟测试。一、python连接mongodb副本集1.连接副本集在新版的驱动中直接使用MongoClie
千家信息网最后更新 2025年11月07日利用python测试mongodb副本集数据同步延迟
本文主要介绍python如何连接mongodb副本集及读写分离配置,mongodb副本集数据同步延迟测试。
一、python连接mongodb副本集
1.连接副本集
在新版的驱动中直接使用MongoClient连接
如下:
from pymongo import MongoClientconn = MongoClient(['192.168.3.11:27017', '192.168.3.12:27017', '192.168.3.13:27017'])
2.读写分离配置
from pymongo import ReadPreferencedb = conn.get_database('hnrtest', read_preference=ReadPreference.SECONDARY_PREFERRED)副本集ReadPreference有5个选项:
PRIMARY:默认选项,从primary节点读取数据
PRIMARY_PREFERRED:优先从primary节点读取,如果没有primary节点,则从集群中可用的secondary节点读取
SECONDARY:从secondary节点读取数据
SECONDARY_PREFERRED:优先从secondary节点读取,如果没有可用的secondary节点,则从primary节点读取
NEAREST:从集群中可用的节点读取数据
二、测试mongodb延迟脚本
1.原理
往集群中插入一批数据,然后从secondary节点读取,直到读到数据总数与插入的总数相等。
2.脚本内容
#!/usr/bin/python# -*- coding: utf-8 -*-import pymongofrom pymongo import MongoClientfrom pymongo import ReadPreferenceimport timeimport argparse# 定义执行时长装饰器函数def warps(*args): def deco(func): def _deco(*args, **kwargs): # 记录开始时间 start = time.clock() # 回调原函数 func(*args, **kwargs) # 记录结束时间 end = time.clock() # 计算执行时长 delat = end - start # 转换成ms输出 print("delay:%sms" % (int(delat*1000))) return _deco return deco# 连接副本集conn = MongoClient(['192.168.3.11:27017', '192.168.3.12:27017', '192.168.3.13:27017'])# 读写分离db = conn.get_database('hnrtest', read_preference=ReadPreference.SECONDARY_PREFERRED)# 定义连接的集合collection = db.student# 创建插入数据函数def data_insert(num): try: for i in range(1, num): collection.insert({"name": "student"+str(i), "age": (i % 100), "city": "FuZhou"}) except Exception as e: print("insert data:", e)# 创建查询数据函数,引用装饰器函数@warps()def data_select(num): try: count = collection.find().count() while count != num - 1: count = collection.find().count() except Exception as e: print("select data:", e)# 创建删除数据函数def data_delete(): try: collection.remove({}) except Exception as e: print("delete data:", e)# 创建计算延迟时长函数def data_delay(num): data_insert(num) data_select(num)if __name__ == '__main__': # 定义脚本需要传入插入的数据量,默认值为1000,通过-n传入参数 parser = argparse.ArgumentParser(description='insert data to mongodb number') parser.add_argument('-n', action='store', dest='num', type=int, required=False, default=1000) given_args = parser.parse_args() num = given_args.num data_delete() data_delay(num)
数据
节点
函数
副本
延迟
时长
脚本
集群
测试
总数
时间
配置
同步
内容
原理
参数
utf-8
查询
输出
驱动
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
app与数据库数据同步
数据库部署图
提示服务器运行慢
电梯服务器怎么考备参数一
电脑服务器定时关机软件
定时任务实现每分钟查询数据库
iphone无线网络安全低
网络安全技术保障 纪实
网络技术的进步
nb-iot无线网络技术指标
不是三大数据库的论文
不懂软件开发怎么管理软件
数据库的安全管理机制是
高斯数据库正则表达式
北京约投顾网络技术有限公司
北邮研究生网络安全哪位老师好
istio 外部数据库
软路由如何搭建plex服务器
用友软件开发
企业微信服务器异常是什么意思
服务器系统更新软件
我的世界服务器客户端启动就没了
sql 获取数据库
刀箱服务器 hxdp
iphone无线网络安全低
任我行导航软件开发
动力网络技术有限公司
北京约投顾网络技术有限公司
新疆网络安全教育讲座
徐州手机软件开发流程