范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

自从学习了MongoDB高可用,慢慢的喜欢上了它,之前确实冷落了

  大家好,我是哪吒,最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦?
  让我们一起,一探究竟,继续学习MongoDB高可用和片键策略,实现快速入门,丰富个人简历,提高面试level,给自己增加一点谈资,秒变面试小达人,BAT不是梦。
  一、复制
  在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个用于处理写操作的主节点primary,还有多个用于保存主节点数据副本的从节点secondary。如果主节点崩溃了,则从节点会选取出一个新的主节点。
  如果使用复制功能时有一台服务器停止运行了,那么仍然可以从副本集中的其它服务器访问数据。如果服务器上的数据已损坏或无法访问,则可以从副本集中的其它成员中创建一个新的数据副本。
  副本集中的每个成员都必须能够连接到其它成员,如果收到有关成员无法访问到其它成员,则可能需要更改网络配置以允许它们之间的连接。
  二、如何进行选举
  当一个从节点无法与主节点连通时,它就会联系并请求其它的副本集成员将自己选举为主节点。
  其它成员会做几项健全性检查: 它们能否连接到主节点,而这个主节点是发起选举的节点无法连接到的? 这个发起选举的从节点是否有最新数据? 有没有其它更高优先级的成员可以被选举为主节点?
  MongoDB在3.2版本中引入了第1版复制协议。这是一个类PAFT的协议,并且包含了一些特定于MongoDB的副本集概念,比如仲裁节点、优先级、非选举成员、写入关注点等。还提出了很多新概念,比如更短的故障转移时间,大大减少了检测主节点失效的时间,它还通过使用term ID来防止重复投票。
  RAFT是一种共识算法,它被分解成了相对独立的子问题。共识是指多台服务器或进程在一些值上达成一致的过程。RAFT确保了一致性,使得同一序列的命令产生相同序列的结果,并在所部署的各个成员中达到相同序列的状态。
  副本集成员相互间每隔两秒发送一次心跳。如果某个成员在10秒内没有反馈心跳,则其它成员会将不良成员标记为无法访问。选举算法将尽最大努力尝试让具有最高优先权的从节点发起选举。成员优先权会影响选举的时机和结果。优先级高的从节点要比优先级低的从节点更快发起选举,而且也更有可能成为主节点。然而,低优先级的从节点也是有可能被短暂的选举为主节点的,副本集成员会继续发起选举直到可用的最高优先级成员被选举为主节点。被选举为主节点的从节点必须拥有最新的复制数据。 三、优先级
  优先级用于表示一个成员称为主节点的优先程度,取值范围是0 ~ 100。数值越大,优先级越高。默认为1,如果将 priority  设置为0,表示此节点永远无法成为主节点,这样的成员还有一个名字~被动成员。 四、选举仲裁者
  大多数小型项目,MongoDB只有两个副本集,为了参与选举,MongoDB支持一种特殊类型的成员,称为仲裁者,其唯一作用就是参与仲裁。仲裁者不参与存储数据,也不会为程序提供服务,它只是为了帮助只有两个副本集的集群选举主节点(为了满足大多数),需要注意的是,只能有一个仲裁者。
  仲裁者的缺点:
  假设有一个主节点,两个从节点,一个仲裁者。如果一个从节点停止运行了,那么就需要一个新的从节点,并且将主节点的数据复制到新的从节点,复制数据会父服务器造成很大的压力,降低程序运行速度。所以,尽可能使用奇数的从节点,而不是使用仲裁者。
  五、同步
  MongoDB通过保存操作日志oplog使多台服务器间保持相同的数据,oplog中保存着主节点执行的每一次写操作。oplog存在于主节点local数据库中的一个固定集合中,从节点通过查询此集合以获取需要复制的操作。
  每个从节点同样维护着自己的oplog,用来记录它从主节点复制的每个操作。这使得每个成员都可以被用作其他成员的同步源。如果应用某个操作失败,则从节点会停止从当前数据源复制数据。
  如果一个从节点由于某种原因停止工作了,它重新启动后,会从oplog中的最后一个操作开始同步。由于这些操作是先应用到数据上然后再写入oplog,因此从节点可能会重复已经应用到数据上的操作。MongoDB在设计时考虑了这点,oplog中的操作执行一次和多次,效果都是一样的,oplog中的每个操作都是幂等的。 六、处理过时数据
  如果某个从节点的数据远远落后于同步源当前的操作,那么这个从节点就是过时的。过时的从节点无法赶上同步源,如果继续同步,从节点就需要跳过一些操作。此时,需要从其它节点进行复制,看看其它成员是否有更长的oplog以继续同步。如果都没有,该节点当前的复制操作将停止,需要进行完全同步或从最近的备份中恢复。
  为了避免出现不同步的节点,让主节点拥有比较大的oplog以保存足够多的操作日志。 七、哈希片键
  为了尽可能快地加载数据,哈希片键是最好的选择。哈希片键可以使任何字段随机分发。如果打算在大量查询中使用升序键,但又想在写操作时随机分发,哈希片键是不错的选择,不过需要注意的是,哈希片键无法执行指定目标的范围查询。
  创建哈希片键:
  db.users.createIndex({"name":"hashed"})
  有一点需要注意,哈希片键的字段,不能是数组。
  Error: hashed indexes do not currently support array values.
  八、多热点
  单独的mongod服务器在执行升序写操作时效率最高,这与分片相冲突,当写操作分发在集群中时分片效率最高。每个分片上都有几个热点,便于写操作在集群中均匀分发。
  可以使用复合片键实现均匀分发,复合片键的第一个值可以是一个基数较小的值,片键的第二部分是一个升序值,这意味着在块的内部,值总是在增加的。
  九、分片规则1、分片的限制
  比如上图的异常,片键不能是数组,大多数特殊类型的索引不能用作片键。特别是,不能在地理空间索引上进行分片。 2、片键的基数
  片键与索引类似,在基数高的字段上进行分片,性能会更好。如果有一个 status  键,只有"正常"、"异常"、"错误"几个值,MongoDB是无法将数据拆分成3个以上的块(因为目前只有三个值),如果想将一个取值较小的键作为片键,那么可以将其与另一个拥有多值的键组成复合片键,比如createTime字段。这样复合片键就拥有了较高的基数。 十、控制数据分发1、自动分片
  MongoDB将集合均匀分发在集群中的每个分片上,如果存储的是同构数据,那么这种方式非常高效。如果有一个日志集合,价值不是很大,你可能不希望它存储在性能最好的服务器上,性能最好的服务器一般会存储重要的实时数据,而不允许其它集合使用它。
  可以通过 sh.addShardToZone("shard0","hign")  、 sh.addShardToZone("shard1","low")  、 sh.addShardToZone("shard2","low")  实现它。
  可以将不同的集合分配给不同的分片,比如,对及其重要的实时集合执行:
  sh.updateZoneKeyRange("super.important",{"":MinKey},...{"":MaxKey},"high")
  这条命令指的是:
  对于这个集合 super.important  ,将片键从负无穷到正无穷的数据保存在标记为"high"的分片上。这不会影响其它集合的均匀分发。
  同样可以通过low,将不重要的日志集合存放在性能较差的服务器上。
  sh.updateZoneKeyRange("super.logs",{"":MinKey},...{"":MaxKey},"low")
  此时,日志集合就会均匀的分发到shard1和shard2上。
  同样,可以通过 removeShardFromZone()  从区域中删除分片。
  sh.removeShardFromZone("super.logs",{"":MinKey},...{"":MaxKey})  2、手动分发
  可以通过关闭均衡器  sh.stopBalancer()  启动手动分发。
  如果当前正在进行迁移,则此设置在迁移完成之前不会生效。一旦正在运行的迁移完成,均衡器就会停止移动数据。
  除非遇到特殊情况,否则,MongoDB应该使用自动分片,而不是手动分片。

华为会拥有自己的Chatgpt吗?当发生安倍遇刺美股熔断之类的热点事件时,很多人惊呼见证历史。但如今GPT4NotionAImidjourneyBingAI们的出现,才带来了真正的历史,将彻底改变我们世界运行的底层华为扔出EDA重磅核弹!将如何搅动半导体江湖?若不是徐直军亲口承认,可能外界很多人至今仍不知道华为有研发EDA这一说。毕竟,作为一家通信行业当之无愧的世界级巨头,华为与供应商抢夺EDA这一块蛋糕,似乎显得不太厚道。但考究华为近26岁年入百万,华为天才少年曝光,为什么还有人选择辞职?普通人以为年薪百万是人生巅峰,没想到只是一些人的起点。比如最近这个火上热搜的26岁华为天才少年。经过14轮笔试面试激烈竞争,普通学生宁博宇凭借卓越的实力和扎实的基础知识脱颖而出,成关于黄褐斑的问答黄褐斑是常见后天获得的,主要见于面部暴露部位的色素沉着斑,又名肝斑妊娠斑,一种好发于中青年女性的慢性获得性色素增加性皮肤病。目前,黄褐斑发病病因尚不明确,主要治疗策略包括防晒修复皮资产规模70亿,安徽新成立资本运营公司!3月18日上午,淮南经开控股(集团)有限公司揭牌仪式在淮南双子星座举行。淮南市发改委市经信局市财政局市金融办等单位相关负责同志现场见证揭牌。徽商新媒体截图自淮南日报淮南经开控股集团CBA公司CEO张雄CBA未来考虑扩军!头条创作挑战赛2023CBA全明星赛已经全面落下帷幕,今年的CBA全明星赛应该算是最开拓创新的一届了,全明星星锐赛在CBA二年级星锐与大学生联队之间展开,还进行了有趣的圆桌采访!3手机预置软件咋就不能卸载来源人民日报新买的手机,内存却显示已经占用25从来没用过预置软件,却每天收到推送的广告一直想卸载预置软件,根本没有卸载选项不少读者反映手机预置软件的各种问题。这些软件不但占用手机内避坑指南15款大流量手机卡横向比较本内容来源于什么值得买APP,观点仅代表作者本人作者保密先直接上结论为了给大家省流量,先直接给大家上总结和结论。从目前来看三大运营商里移动的优惠是最少的,量少还贵,但架不住我们这种国美零售深耕下沉用户市场寻求直播带货新破局去年开始全面转型的国美零售(0493。HK),近期可谓动作频频,除了高管带货和门店全面实现店播外,最近的直播内容开始呈现知识内容化,吸引越来越多消费者关注。3月份开始,国美APP直做完腹壁成形会反弹吗?在临床手术和面诊中常会遇到求美者问我,做完腹壁成形能不能永久保持,会不会反弹?关于这个问题今天我展开来和大家聊一聊。腹壁成形术,是通过手术的方式切除腹壁多余的皮肤解决松垂和脂肪堆积记者身边人透露,图赫尔认为接手拜仁是中了头等奖直播吧3月27日讯拜仁在几天前官宣换帅,纳格尔斯曼被自己的恩师图赫尔所取代。踢球者记者GeorgHolzner表示根据身边人的说法,图赫尔感觉接手拜仁就像是中了头等奖一样。俱乐部城
聊天机器人之战的胜利果实,最后可能被微信摘走本周一,Snapchat宣布了它的新功能MyAI,也就是一个由GPT4支持的聊天机器人。这个聊天机器人不是免费的,使用它需要支付每个月3。99美元的费用。这件事让我突然意识到,目前超美!杨浦梅花观赏点位指南快收好冬去春来,万物复苏又到了赏梅的好时节今天,小编就来告诉你杨浦这些最佳梅花观赏点位快约上三两好友一起去赏梅踏青吧公园梅景杨浦各个区属公园内的梅花竞相绽放艳丽动人姿态各异如宋代诗人陆游明城墙遗址公园梅花迎春北京日报客户端记者方非3月1日,京城天空湛蓝,阳光明媚。伴随着气温回升,明城墙遗址公园中的梅花悄然开放,带来了一抹初春的色彩。随着花期深入,三月中旬梅花将达到盛花期,满树的花朵将如祝贺梅西!点蓝字关注,不迷路来源新华社2022年国际足联年度最佳奖颁奖仪式27日在巴黎举行,阿根廷前锋梅西再次获得年度最佳球员奖,而阿根廷队则是本次颁奖典礼上的最大赢家。图片来自国际足联官网太阳官宣杜兰特!三球赛季报销,詹姆斯再传坏消息,贝弗利发声转眼间,202223赛季常规赛已过去34,各队对季后赛席位的竞争也已经提前进入白热化。目前西部第十一与第六之间仅有两个胜场差,而东部第十一与第六却有5。5个胜场,显而易见狂野西部竞长沙,凭什么要倒时差?有网友说,到长沙游玩,第一件事就是倒时差。凌晨一两点钟,当许多人已经进入深度睡眠状态时,湘江两岸却依旧人声鼎沸,去听音乐逛酒吧吃美食的年轻人,挤着等红绿灯。这种有违正常作息的现象,张天任代表建议打造地方特色地摊经济,使其成为旅游打卡地全国两会召开在即,全国人大代表天能控股集团董事长浙江省湖州市长兴县煤山镇新川村党委书记张天任拟提交关于后疫情时代扶持地摊经济发展稳就业保民生的建议(以下简称建议)。建议指出,我国进热搜爆了!事关双休调休,最新建议全国两会在即,多位全国人大代表政协委员对放假调整的建议,引发热议。建议试点隔周三休据南方都市报报道,全国政协委员民革广东省委会副主委广东省政协提案委员会专职副主任熊水龙拟提交提案,说走就走!这10个地方春季迎来颜值巅峰!3月不出国就去这里!又到了春暖花开的季节想出门浪的小心思是越来越难按捺了!最近除了天气暖和了不少热搜也是王炸不断!!比如新西兰取消疫情限制全面开放日本入境政策放宽国内机票价格大跳水等等来去自由没有限制走进潘家峪惨案纪念馆,上千人被烧死,复仇团终报仇雪恨近日,跟随唐山博物馆探秘游的活动来到了潘家峪惨案纪念馆,听完讲解员的讲述心情久久不能平复,没想到河北唐山,日军竟然做出了如此惨无人道的暴行,而且就在河北唐山的一个小村庄。唐山的一个巢湖芦溪嘴的前世今生记得上小学时,语文老师布置了一道作文题,名为我的家乡。像往常一样,在下笔之前,老师总要教我们如何开头,并做出示范我的家乡,坐落在黄山脚下巢湖岸边,这里的人勤劳勇敢纯朴善良,勤俭节约