当前位置: 首页 > news >正文

开发软件大全如何做网站公司名seo

开发软件大全,如何做网站公司名seo,一个网站占空间有多少g,交换链接营销实现方式解读MongoDB复制集架构 高可用 在生产环境中#xff0c;不建议使用单机版的MongoDB服务器。 Mongodb复制集#xff08;Replication Set#xff09;由一组Mongod实例#xff08;进程#xff09;组成#xff0c;包含一个Primary节点和多个Secondary节点#xff0c;Mongodb Dr…MongoDB复制集架构 高可用 在生产环境中不建议使用单机版的MongoDB服务器。 Mongodb复制集Replication Set由一组Mongod实例进程组成包含一个Primary节点和多个Secondary节点Mongodb Driver客户端的所有数据都写入PrimarySecondary从Primary同步写入的数据以保持复制集内所有成员存储相同的数据集提供数据的高可用。复制集提供冗余和高可用性是所有生产部署的基础。它的现实依赖于两个方面的功能: 数据写入时将数据迅速复制到另一个独立节点上 在接受写入的节点发生故障时自动选举出一个新的替代节点 三节点复制集模式 PSS模式官方推荐模式 PSS模式由一个主节点和两个备节点所组成即PrimarySecondarySecondary。 PSA模式 PSA模式由一个主节点、一个备节点和一个仲裁者节点组成即PrimarySecondaryArbiter 安全认证 #mongo.key采用随机算法生成用作节点内部通信的密钥文件。openssl rand -base64 756 /data/mongo.key#权限必须是600chmod 600 /data/mongo.key # 启动mongodmongod -f /data/db1/mongod.conf --keyFile /data/mongo.key 复制集连接方式 通过高可用 Uri 的方式连接 MongoDB当 Primary 故障切换后MongoDB Driver 可自动感知并把流量路由到新的 Primary 节点 mongosh mongodb://fox:fox192.168.139.135:27017,192.168.139.136:27017,192.168.139.137:27017/admin?replicaSetrs0 复制集成员角色 成员角色的属性 Priority 0 当 Priority 等于 0 时它不可以被复制集选举为主Priority 的值越高则被选举为主的概率更大。通常在跨机房方式下部署复制集可以使用该特性。假设使用了机房A和机房B由于主要业务与机房A更近则可以将机房B的复制集成员Priority设置为0这样主节点就一定会是A机房的成员。 Vote 0 不可以参与选举投票此时该节点的 Priority 也必须为 0即它也不能被选举为主。由于一个复制集中最多只有7个投票成员因此多出来的成员则必须将其vote属性值设置为0即这些成员将无法参与投票。 成员角色 Primary主节点其接收所有的写请求然后把修改同步到所有备节点。一个复制集只能有一个主节点。 Secondary备节点与主节点保持同样的数据集。当主节点“挂掉”时参与竞选主节点。分为以下三个不同类型 Hidden false正常的只读节点是否可选为主是否可投票取决于 PriorityVote 的值Hidden true隐藏节点对客户端不可见 可以参与选举但是 Priority 必须为 0即不能被提升为主。 由于隐藏节点不会接受业务访问因此可通过隐藏节点做一些数据备份、离线计算的任务这并不会影响整个复制集。Delayed 延迟节点必须同时具备隐藏节点和Priority0的特性会延迟一定的时间secondaryDelaySecs 配置决定从上游复制增量常用于快速回滚场景。 Arbiter仲裁节点只用于参与选举投票本身不承载任何数据只作为投票角色。比如你部署了2个节点的复制集1个 Primary1个Secondary任意节点宕机复制集将不能提供服务了无法选出Primary这时可以给复制集添加⼀个 Arbiter节点即使有节点宕机仍能选出Primary。 Arbiter本身不存储数据是非常轻量级的服务当复制集成员为偶数时最好加入⼀个Arbiter节点以提升复制集可用性。 #配置隐藏节点 cfg rs.conf() cfg.members[1].priority 0 cfg.members[1].hidden true rs.reconfig(cfg)#配置延时节点 cfg rs.conf() cfg.members[1].priority 0 cfg.members[1].hidden true #延迟1分钟 cfg.members[1].secondaryDelaySecs 60 rs.reconfig(cfg)#添加投票节点 # 为仲裁节点创建数据目录存放配置数据。该目录将不保存数据集 mkdir /data/arb # 启动仲裁节点指定数据目录和复制集名称 mongod --port 30000 --dbpath /data/arb --replSet rs0 # 进入mongo shell,添加仲裁节点到复制集 rs.addArb(ip:30000) # 执行命令 db.adminCommand( {setDefaultRWConcern : 1, defaultWriteConcern : { w : 2 } } )#移除复制集节点 rs.remove(ip:port) #通过 rs.reconfig() 来移除节点 cfg rs.conf() cfg.members.splice(2,1) #从2开始移除1个元素 rs.reconfig(cfg)#更改复制集节点 cfg rs.conf() cfg.members[0].host ip:port rs.reconfig(cfg) MongoDB复制集原理 数据同步 MongoDB的复制集选举使用Raft算法https://raft.github.io/来实现选举成功的必要条件是大多数投票节点存活。 MongoDB对raft协议添加了一些自己的扩展 支持chainingAllowed链式复制即备节点不只是从主节点上同步数据还可以选择一个离自己最近心跳延时最小的节点来复制数据。增加了预投票阶段即preVote这主要是用来避免网络分区时产生Term(任期)值激增的问题支持投票优先级如果备节点发现自己的优先级比主节点高则会主动发起投票并尝试成为新的主节点。 一个复制集最多可以有50 个成员但只有 7 个投票成员。 自动故障转移 一个影响检测机制的因素是心跳在复制集组建完成之后各成员节点会开启定时器持续向其他成员发起心跳这里涉及的参数为heartbeatIntervalMillis即心跳间隔时间默认值是2s。如果心跳成功则会持续以2s的频率继续发送心跳如果心跳失败则会立即重试心跳一直到心跳恢复成功。 一个影响检测机制的因素是心跳在复制集组建完成之后各成员节点会开启定时器持续向其他成员发起心跳这里涉及的参数为heartbeatIntervalMillis即心跳间隔时间默认值是2s。如果心跳成功则会持续以2s的频率继续发送心跳如果心跳失败则会立即重试心跳一直到心跳恢复成功。 在electionTimeout任务中触发选举必须要满足以下条件 1当前节点是备节点。 2当前节点具备选举权限。 3在检测周期内仍然没有与主节点心跳成功。 业务影响评估 在复制集发生主备节点切换的情况下会出现短暂的无主节点阶段此时无法接受业务写操作。对于非常重要的业务建议在业务层面做一些防护策略比如设计重试机制。 # MongoDB Drivers 启用可重试写入 mongodb://localhost/?retryWritestrue # mongo shell mongosh --retryWrites如何优雅的重启复制集 逐个重启复制集里所有的Secondary节点对Primary发送rs.stepDown()命令等待primary降级为Secondary重启降级后的Primary 复制集数据同步机制 MongoDB oplog 是 Local 库下的一个集合用来保存写操作所产生的增量日志类似于 MySQL 中 的 Binlog。 primary ---------- write ----------》 local.oplog.rs ---------- read----------》secondary ---------- write ----------》 local.oplog.rs ​ ---------- read----------》secondary ---------- write ----------》 local.oplog.rs oplog 中的 ts 是备节点实现增量日志同步的关键 每个备节点都分别维护了自己的一个offset也就是从主节点拉取的最后一条日志的optime在执行同步时就通过这个optime向主节点的oplog集合发起查询。 MongoDB在4.0版本之后提供了replSetResizeOplog命令可以实现动态修改oplogSize而不需要重启服务器。 # 将复制集成员的oplog大小修改为60g db.adminCommand({replSetResizeOplog: 1, size: 60000}) # 查看oplog大小 use local db.oplog.rs.stats().maxSize幂等性 某文档x字段当前值为100用户向Primary发送一条{KaTeX parse error: Expected EOF, got } at position 12: inc: {x: 1}}̲记录oplog时会转化为一条…set: {x: 101}的操作才能保证幂等性。 幂等性的代价 oplog的写入被放大导致同步追不上 使用数组时尽量注意 数组的元素个数不要太多总的大小也不要太大尽量避免对数组进行更新操作如果一定要更新尽量只在尾部插入元素复杂的逻辑可以考虑在业务层面上来支持 复制延迟 为了尽量避免复制延迟带来的风险我们可以采取一些措施 增加oplog的容量大小并保持对复制窗口的监视。通过一些扩展手段降低主节点的写入速度。优化主备节点之间的网络。避免字段使用太大的数组可能导致oplog膨胀。 数据回滚 mongorestore --host 192.168.192:27018 --db test --collection emp -ufox -pfox --authenticationDatabaseadmin rollback/emp_rollback.bson同步源选择 在settings.chainingAllowed开启的情况下备节点自动选择一个最近的节点ping命令时延最小进行同步。 #默认情况下备节点并不一定会选择主节点进行同步这个副作用就是会带来延迟的增加,可以通过以下命令关闭 cfg rs.config() cfg.settings.chainingAllowed false rs.reconfigcfg)#使用replSetSyncFrom命令临时更改当前节点的同步源 db.adminCommand( { replSetSyncFrom: hostname:port })
http://www.hkea.cn/news/14409576/

相关文章:

  • 上海高端网站搭建wordpress c2c
  • 做影视网站怎么样不犯法什么专业会做网站
  • 现在的网站开发方式房地产集团网站建设方案
  • 网站区域名怎么注册阿里云万网域名购买
  • 营销型网站更受用户欢迎的原因是虚拟货币网站开发
  • 网站建设公司专业的建站优化公司网站建设信息服务费计入什么科目
  • 保险业网站建设开发网站的基本流程五个阶段
  • 高端网站建设内容it运维管理
  • 网站怎么投放广告优秀学习网站
  • 成都 商业网站建设怎样只做自己的网站
  • 想在网上做设计接单有没有网站西安软件外包公司排名
  • 做网站从何开始shopex 网站搬家
  • 网站建设最简单的教程视频如何搭建海外网络
  • 厦门在哪个网站做用工报备网站建设的标签指的是
  • 商城网站建设第一章做网站用go语言还是php
  • 瀑布流资源网站模板wordpress修改鼠标
  • 网站还在建设中优秀网络小说
  • dz论坛网站源码seo高级优化方法
  • 保定模板建站哪家好商城服务是什么平台
  • 网站建设合同 知乎京东网站推广方式
  • 提供企业网站建设公司义乌建设公司网站
  • 承德建设网站楼盘动态
  • 网站建设与管理内容网站开发任务分解
  • 秦皇岛金洋建设集团网站网站模板 餐饮
  • 佛山 建站公司佛山企业网站设计公司
  • 山东省旅游网站建设查关键词热度的网站
  • 烟台外贸网站建设长沙做网站公司 上联网络
  • 做自己的网站可以赚钱吗服装时尚网站
  • 南京凯盛建设集团有限公司网站网站推广策划评估指标有哪些
  • 如何介绍设计的网站模板网站修改图片链接