热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MongoDB数据库集群分片技术介绍

一、分片分片就是对数据库中的数据进行拆分保存在不同机器上;分片包括手动分片和自动分片;MongoDB则支持自动分片;二、mongosMongoDB需要路由进程mongos,mongos知道所有数据的存放位置,应用连接mongos发送请求.mongos对应用隐藏分片细节,将请求转发到相

一、分片

分片就是对数据库中的数据进行拆分保存在不同机器上;

分片包括手动分片和自动分片;

MongoDB则支持自动分片;

二、mongos

MongoDB需要路由进程mongos,mongos知道所有数据的存放位置,应用连接mongos发送请求.mongos对应用隐藏分片细节,将请求转发到相应数据库机器;

三、片键

1.片键是作为数据拆分的依据,MongoDB依据片键将数据拆分;

根据机器的数量的添加和删除,MongoDB会重新平衡数据,使的其流量比较均衡;

2.片键种类

片键包括递增片键和随机片键;

像"timestamp"就属于递增片键,特点是数据写入将集中在一台服务器、而数据的查询速度非常快;

片键的选择将影响对数据查询的操作

四、建立分片

分片包括三个组成部分,分别是:片、mongos、配置服务器;

片:集合数据容器

mongos:路由器进程

配置服务器:存储集群配置信息

1.启动配置服务器

mkdir -p ~/dbs/config
./mongod --dbpath ~/dbs/config --port 20000

2.启动配置服务器

./mongos --port 3000 --configdb localhost:20000

3.创建分片

mkdir -p ~/dbs/db1
./mongod --dbpath ~/dbs/shard1 --port 10000

4.添加片

连接mongos

./mongo localhost:30000/admin

通过addshard命令添加片(allowLocal允许配置在本地)

db.runCommand({addshard:"localhost:10000",allowLocal:true})
{
     "added":"localhost:10000",
     "ok":true
}

5.切分数据库will的test集合

首先开启will数据库的分片功能

db.runCommand({"enablesharding":"will"})

再对集合分片(以_id为基准)

db.runCommand({"shardcollection":"will.test","key":{"_id":1}})

五、保证集群的健壮性

1.多配置服务器

方法:重复配置服务器创建步骤;

     启动mongos时 ./mongos --configdb localhost:20001,localhost:20002

2.多mongos进程

方法:多启动

3.数据的容错性

方法:创建数据副本

六、管理分片

1.查看片

2.查看在片上的数据库列表信息

结果中:

_id:数据库名

partitioned:是否启用分片

primary:数据库大本营

3.块信息查看


推荐阅读
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 解决MongoDB Compass远程连接问题
    本文记录了在使用阿里云服务器部署MongoDB后,通过MongoDB Compass进行远程连接时遇到的问题及解决方案。详细介绍了从防火墙配置到安全组设置的各个步骤,帮助读者顺利解决问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • 本文探讨了在 ASP.NET MVC 5 中实现松耦合组件的方法。通过分离关注点,应用程序的各个组件可以更加独立且易于维护和测试。文中详细介绍了依赖项注入(DI)及其在实现松耦合中的作用。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
author-avatar
情人節快樂1991的名单
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有