前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongo高可用之python

mongo高可用之python

作者头像
SRE运维实践
发布2019-07-08 13:19:37
5470
发布2019-07-08 13:19:37
举报
文章被收录于专栏:SRE运维实践SRE运维实践

mongodb高可用

背景:在使用mongodb的时候,发现复制集集群的时候,大量的写入操作会造成集群的主进行切换,从而导致程序报错。

使用方式:搭建三个节点的mongo集群,在集群之间使用replicaset来进行复制,配置文件中,如果是在同一个机器上运行,那么就修改监听的地址,修改数据文件和日志文件的路径即可。

配置文件如下所示:

在进行试验的时候,出现两个问题:

1、 当在两个机器之间做成集群之后,使用同一个复制集之后,备机的状态一直是startup,没有变成secondary,主要是因为防火墙的原因,从而导致配置信息无法加载和同步。

2、 在进行同步的时候,发现端口总是自动消失,没有任何报错,最后发现是因为磁盘空间到达了百分百,数据文件日志文件无法写入,从而进程自动关闭。

测试脚本如下:

在进行运行脚本的时候,当数据量太大,大概百十万条之后,就可能会出现重新选主的情况,使用如上的脚本,会自动进行重连,从而继续写入相关的测试。。。上面的脚本,会将所有的range这个列表加载入内存中,懒得改了。。。反正也是随手找的一个测试内容。。。所以执行如上脚本的时候,在开始的时候会很慢很慢。。。

运行的进程如下所示:

可以查看帮助,然后进行相关的设置或者进行相关的操作:

其实你可以发现,以上的测试并没有解决高并发的时候出现选主的情况,而是保证了程序的高可用。

风言风语

很多时候,本来是我玩mongo的,最后出现一堆问题,变成了她玩我。。。世道绕过谁。。。饶饶饶。。。

1、python只是玩具

现在很流行自动化开发,都想用python,最后变成了各种各样的python问题,葛华中数据结构,各种模块的使用。。。这又有什么含义?

使用python只是提高运维的效率,而去追寻python的各种魔法,感觉没什么太大的含义,我需要知道python的list和dict有什么区别么?我不需要,我只要使用我需要的数据类型就好了;我需要知道子类和父类的区别么?我不需要,我只要能运行就好了。。

python只是一种手段之一,选择它只是因为和linux走的近,而使用任何一门语言,其实就那么几个东西,基本的数据类型,循环逻辑判断,其他的就是各种类,各种模块,各种框架,并不像卷入各种框架之战。。。

原来觉得框架之战是最好的,其实选择的原因不过是因为自己熟悉,每一种框架都有合适的场景,只要你想。。。都可以做到。

不要为了python而python,最后都是拿来用的。。。何必在意一些细节?

2、 优化

曾几何时,也在追求各种优化,从操作系统层面的优化,从中间件层面的优化,从数据库方面进行优化,但是。。。单纯的优化又有什么意义?

优化,浪费的时间有多少?能提高多少性能?现在要么是使用云平台,要么是使用各种VM,性能不够?机器来凑。。。。无效加班了解一下

何时优化,也是一门学问。客户反馈响应慢,那么慢在哪里?中间件一定需要优化?数据库一定需要优化?每一个环节是否记录了响应时间?从而能正对性的进行优化。。。

再谈优化,优化就修改几个参数,又有几个人去追寻底层的含义。。。吹牛逼了解一下。。

3、 技术细节

什么样的人应该关注技术细节?

很多时候,并不需要记住每一个方法,每一个模块怎么来写,这样虽然显示了熟练度,但是熟练度这个东西,三天就可以学会的玩意儿。。。

很多时候,思想更重要。。未来如何走向?下一跳是哪里。。。

用忙碌掩盖无效的勤奋了解一下。。。

能读取缓存的,不要放在磁盘上;能用异步的,不要用同步;能用消息队列的,不要直接调用接口;能用dns的,不要直接用ip。。。

4、 SLB和SB傻傻分不清楚

突然发现http码的502和520好像。。。嗯。。。我是说单纯的数字

吓死我了,还以为下午和人撕逼撕错了。。。所谓的502还是后端的RS不行。。。吓得我赶紧安装一个nginx和httpd试了一把。。。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRE运维实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档