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

Mongodb 副本集名称重命名

副本集重命名

要重命名副本集,您必须关闭副本集的所有成员,然后使用新的副本集名称配置每个成员的数据库。

此过程需要停机。

先决条件

确保您的副本集未分片。重命名过程仅适用于未分片的副本集。

在重命名副本集之前,请 对 MongoDB 部署执行完整备份。

做好备份非常重要,无论如何,请先在测试环境验证后再执行该操作

启用身份验证后,请确保您的用户角色对每个成员数据库中的集合具有 find、insert 和 remove 权限。

db.runCommand({rolesInfo: { role: "xxxxx", db: "yyyyyy" },showPrivileges: true}
)

授权

db.getUser("admin")
{"_id" : "admin.admin","userId" : UUID("adb37ec9-89e9-464b-a241-029194bec6ef"),"user" : "admin","db" : "admin","roles" : [{"role" : "root","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]
}db.createRole({role: "collectionRole",privileges: [{ resource: { db: "local", collection: "system.replset" }, actions: [ "find", "remove", "insert" ] }],roles: []}
)db.grantRolesToUser("admin",[{"role":"collectionRole","db":"admin"}])db.getUser("admin")
{"_id" : "admin.admin","userId" : UUID("adb37ec9-89e9-464b-a241-029194bec6ef"),"user" : "admin","db" : "admin","roles" : [{"role" : "root","db" : "admin"},{"role" : "collectionRole","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]
}

关闭副本集成员

此步骤需要停机,因为所有副本成员都需要关闭。

当前副本集名称 “set” : “sit_rs1”

{"set" : "sit_rs1","date" : ISODate("2023-11-10T08:08:08.707Z"),"myState" : 1,......"members" : [{"_id" : 1,"name" : "192.168.88.11:27018","health" : 1,"state" : 2,"stateStr" : "SECONDARY",......},{"_id" : 3,"name" : "192.168.88.11:27017","health" : 1,"state" : 1,"stateStr" : "PRIMARY",......},{"_id" : 4,"name" : "192.168.88.11:27019","health" : 1,"state" : 2,"stateStr" : "SECONDARY",.....}],"ok" : 1,"$clusterTime" : {"clusterTime" : Timestamp(1699603684, 1),"signature" : {"hash" : BinData(0,"yDDKmbDiNNhNxzN+xh20IjGyr3o="),"keyId" : NumberLong("7236938018798436354")}},"operationTime" : Timestamp(1699603684, 1)
}

关闭副本集成员,三台都关闭

# shutdown 27019
su mongodb -s /bin/bash -c "/usr/local/mongodb/bin/mongod --dbpath /data/mongodb27019/data  --port 27019  --shutdown"# shutdown 27018
su mongodb -s /bin/bash -c "/usr/local/mongodb/bin/mongod --dbpath /data/mongodb27018/data  --port 27018  --shutdown"# shutdown 27017
su mongodb -s /bin/bash -c "/usr/local/mongodb/bin/mongod --dbpath /data/mongodb/data  --port 27017  --shutdown"

重命名副本集

对每个副本集成员执行以下步骤: ( 以其中一台 27019 为例 )

  • 不带 --replSet 该选项 的情况下在不同端口上启动副本集成员 (如下注释掉 replication 选项。 端口改为 28019
root@ubuntu-x64_01:/opt# cat /etc/mongod27019.conf  
systemLog:destination: filepath: "/data/mongodb27019/log/mongod.log"logAppend: true
storage:dbPath: "/data/mongodb27019/data"journal:enabled: truedirectoryPerDB: true
processManagement:fork: true  
net:bindIp: localhost,192.168.88.11#port: 27019port: 28019maxIncomingConnections: 65536
security:keyFile: "/data/mongodb27019/data/replsetAIK"clusterAuthMode: "keyFile"authorization: enabled
#replication:
#   replSetName: "sit_rs1"
#   enableMajorityReadConcern: true

启动副本集成员:

root@ubuntu-x64_01:/opt# su mongodb -s /bin/bash -c "/usr/local/mongodb/bin/mongod --config /etc/mongod27019.conf 2>&1 >/dev/null &"

更新副本集名称。

如果使用配置文件,请设置 replication.replSetName 为新名称。replSetName: “sit_rs1” 变更为 replSetName: “local_rs1”

root@ubuntu-x64_01:/opt# cat /etc/mongod27019.conf 
systemLog:destination: filepath: "/data/mongodb27019/log/mongod.log"logAppend: true
storage:dbPath: "/data/mongodb27019/data"journal:enabled: truedirectoryPerDB: true
processManagement:fork: true  
net:bindIp: localhost,192.168.88.11#port: 27019port: 28019maxIncomingConnections: 65536
security:keyFile: "/data/mongodb27019/data/replsetAIK"clusterAuthMode: "keyFile"authorization: enabled
replication:replSetName: "local_rs1"enableMajorityReadConcern: true

使用以下命令更新本地数据库中的副本集名称:

> use local 
switched to db local> db.system.replset.find().pretty()
{"_id" : "sit_rs1","version" : 20,"term" : 249,"protocolVersion" : NumberLong(1),"writeConcernMajorityJournalDefault" : true,"members" : [{"_id" : 1,"host" : "192.168.88.11:27018","arbiterOnly" : false,"buildIndexes" : true,"hidden" : false,"priority" : 1,"tags" : {},"slaveDelay" : NumberLong(0),"votes" : 1},{"_id" : 3,"host" : "192.168.88.11:27017","arbiterOnly" : false,"buildIndexes" : true,"hidden" : false,"priority" : 1,"tags" : {},"slaveDelay" : NumberLong(0),"votes" : 1},{"_id" : 4,"host" : "192.168.88.11:27019","arbiterOnly" : false,"buildIndexes" : true,"hidden" : false,"priority" : 1,"tags" : {},"slaveDelay" : NumberLong(0),"votes" : 1}],"settings" : {"chainingAllowed" : true,"heartbeatIntervalMillis" : 2000,"heartbeatTimeoutSecs" : 10,"electionTimeoutMillis" : 10000,"catchUpTimeoutMillis" : -1,"catchUpTakeoverDelayMillis" : 30000,"getLastErrorModes" : {},"getLastErrorDefaults" : {"w" : 1,"wtimeout" : 0},"replicaSetId" : ObjectId("6305db8beb57aaf6f57b130e")}
}> var newId = 'local_rs1'> var doc = db.getSiblingDB("local").system.replset.findOne()> var oldId = doc._id> print(oldId, newId)
sit_rs1 local_rs1> doc._id = newId
local_rs1> db.getSiblingDB("local").system.replset.insertOne(doc)
{ "acknowledged" : true, "insertedId" : "local_rs1" }> db.getSiblingDB("local").system.replset.deleteOne({_id: oldId})
{ "acknowledged" : true, "deletedCount" : 1 }> db.getSiblingDB("local").system.replset.find().pretty()
{"_id" : "local_rs1","version" : 20,"term" : 249,"protocolVersion" : NumberLong(1),"writeConcernMajorityJournalDefault" : true,"members" : [{"_id" : 1,"host" : "192.168.88.11:27018","arbiterOnly" : false,"buildIndexes" : true,"hidden" : false,"priority" : 1,"tags" : {},"slaveDelay" : NumberLong(0),"votes" : 1},{"_id" : 3,"host" : "192.168.88.11:27017","arbiterOnly" : false,"buildIndexes" : true,"hidden" : false,"priority" : 1,"tags" : {},"slaveDelay" : NumberLong(0),"votes" : 1},{"_id" : 4,"host" : "192.168.88.11:27019","arbiterOnly" : false,"buildIndexes" : true,"hidden" : false,"priority" : 1,"tags" : {},"slaveDelay" : NumberLong(0),"votes" : 1}],"settings" : {"chainingAllowed" : true,"heartbeatIntervalMillis" : 2000,"heartbeatTimeoutSecs" : 10,"electionTimeoutMillis" : 10000,"catchUpTimeoutMillis" : -1,"catchUpTakeoverDelayMillis" : 30000,"getLastErrorModes" : {},"getLastErrorDefaults" : {"w" : 1,"wtimeout" : 0},"replicaSetId" : ObjectId("6305db8beb57aaf6f57b130e")}
}

关闭副本集成员,在其原始端口上启动副本集成员。如果使用配置文件,请确保将其 replication.replSetName 已经设置为新的副本集名称。

replication:replSetName: "local_rs1"enableMajorityReadConcern: true

在其原始端口上启动副本集成员。

root@ubuntu-x64_01:/opt#  cat /etc/mongod27019.conf
systemLog:destination: filepath: "/data/mongodb27019/log/mongod.log"logAppend: true
storage:dbPath: "/data/mongodb27019/data"journal:enabled: truedirectoryPerDB: true
processManagement:fork: true  
net:bindIp: localhost,192.168.88.11port: 27019maxIncomingConnections: 65536
security:keyFile: "/data/mongodb27019/data/replsetAIK"clusterAuthMode: "keyFile"authorization: enabled
replication:replSetName: "local_rs1"enableMajorityReadConcern: true

按上面的操作,在另外两个实例都执行一遍后, 执行修改后,整个副本集状态如下:

local_rs1:PRIMARY> rs.status()
{"set" : "local_rs1","date" : ISODate("2023-11-15T11:25:05.087Z"),"myState" : 1,"term" : NumberLong(251),"syncSourceHost" : "","syncSourceId" : -1,"heartbeatIntervalMillis" : NumberLong(2000),"majorityVoteCount" : 2,"writeMajorityCount" : 2,"votingMembersCount" : 3,"writableVotingMembersCount" : 3,"optimes" : {"lastCommittedOpTime" : {"ts" : Timestamp(1700047503, 1),"t" : NumberLong(251)},"lastCommittedWallTime" : ISODate("2023-11-15T11:25:03.985Z"),"readConcernMajorityOpTime" : {"ts" : Timestamp(1700047503, 1),"t" : NumberLong(251)},"readConcernMajorityWallTime" : ISODate("2023-11-15T11:25:03.985Z"),"appliedOpTime" : {"ts" : Timestamp(1700047503, 1),"t" : NumberLong(251)},"durableOpTime" : {"ts" : Timestamp(1700047503, 1),"t" : NumberLong(251)},"lastAppliedWallTime" : ISODate("2023-11-15T11:25:03.985Z"),"lastDurableWallTime" : ISODate("2023-11-15T11:25:03.985Z")},"lastStableRecoveryTimestamp" : Timestamp(1700047503, 1),"electionCandidateMetrics" : {"lastElectionReason" : "electionTimeout","lastElectionDate" : ISODate("2023-11-15T11:16:43.867Z"),"electionTerm" : NumberLong(251),"lastCommittedOpTimeAtElection" : {"ts" : Timestamp(0, 0),"t" : NumberLong(-1)},"lastSeenOpTimeAtElection" : {"ts" : Timestamp(1699610346, 1),"t" : NumberLong(249)},"numVotesNeeded" : 2,"priorityAtElection" : 1,"electionTimeoutMillis" : NumberLong(10000),"numCatchUpOps" : NumberLong(0),"newTermStartDate" : ISODate("2023-11-15T11:16:43.877Z"),"wMajorityWriteAvailabilityDate" : ISODate("2023-11-15T11:16:44.535Z")},"members" : [{"_id" : 1,"name" : "192.168.88.11:27018","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 511,"optime" : {"ts" : Timestamp(1700047503, 1),"t" : NumberLong(251)},"optimeDurable" : {"ts" : Timestamp(1700047503, 1),"t" : NumberLong(251)},"optimeDate" : ISODate("2023-11-15T11:25:03Z"),"optimeDurableDate" : ISODate("2023-11-15T11:25:03Z"),"lastAppliedWallTime" : ISODate("2023-11-15T11:25:03.985Z"),"lastDurableWallTime" : ISODate("2023-11-15T11:25:03.985Z"),"lastHeartbeat" : ISODate("2023-11-15T11:25:04.468Z"),"lastHeartbeatRecv" : ISODate("2023-11-15T11:25:03.448Z"),"pingMs" : NumberLong(0),"lastHeartbeatMessage" : "","syncSourceHost" : "192.168.88.11:27019","syncSourceId" : 4,"infoMessage" : "","configVersion" : 20,"configTerm" : 251},{"_id" : 3,"name" : "192.168.88.11:27017","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 26,"optime" : {"ts" : Timestamp(1700047503, 1),"t" : NumberLong(251)},"optimeDurable" : {"ts" : Timestamp(1700047503, 1),"t" : NumberLong(251)},"optimeDate" : ISODate("2023-11-15T11:25:03Z"),"optimeDurableDate" : ISODate("2023-11-15T11:25:03Z"),"lastAppliedWallTime" : ISODate("2023-11-15T11:25:03.985Z"),"lastDurableWallTime" : ISODate("2023-11-15T11:25:03.985Z"),"lastHeartbeat" : ISODate("2023-11-15T11:25:04.520Z"),"lastHeartbeatRecv" : ISODate("2023-11-15T11:25:04.285Z"),"pingMs" : NumberLong(0),"lastHeartbeatMessage" : "","syncSourceHost" : "192.168.88.11:27019","syncSourceId" : 4,"infoMessage" : "","configVersion" : 20,"configTerm" : 251},{"_id" : 4,"name" : "192.168.88.11:27019","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 16264,"optime" : {"ts" : Timestamp(1700047503, 1),"t" : NumberLong(251)},"optimeDate" : ISODate("2023-11-15T11:25:03Z"),"lastAppliedWallTime" : ISODate("2023-11-15T11:25:03.985Z"),"lastDurableWallTime" : ISODate("2023-11-15T11:25:03.985Z"),"syncSourceHost" : "","syncSourceId" : -1,"infoMessage" : "","electionTime" : Timestamp(1700047003, 1),"electionDate" : ISODate("2023-11-15T11:16:43Z"),"configVersion" : 20,"configTerm" : 251,"self" : true,"lastHeartbeatMessage" : ""}],"ok" : 1,"$clusterTime" : {"clusterTime" : Timestamp(1700047503, 1),"signature" : {"hash" : BinData(0,"FkEFPk5B3ZB364V3c3RkkEoBChI="),"keyId" : NumberLong("7236938018798436354")}},"operationTime" : Timestamp(1700047503, 1)
}

回收权限,由于角色是临时授权的,操作结束后,回收该集合的变更权限

local_rs1:PRIMARY> use admin 
switched to db adminlocal_rs1:PRIMARY> db.getUser("admin")
{"_id" : "admin.admin","userId" : UUID("adb37ec9-89e9-464b-a241-029194bec6ef"),"user" : "admin","db" : "admin","roles" : [{"role" : "root","db" : "admin"},{"role" : "collectionRole","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]
}local_rs1:PRIMARY> db.revokeRolesFromUser("admin",[{"role":"collectionRole","db":"admin"}])local_rs1:PRIMARY> db.getUser("admin")
{"_id" : "admin.admin","userId" : UUID("adb37ec9-89e9-464b-a241-029194bec6ef"),"user" : "admin","db" : "admin","roles" : [{"role" : "root","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]
}

相关文章:

Mongodb 副本集名称重命名

副本集重命名 要重命名副本集,您必须关闭副本集的所有成员,然后使用新的副本集名称配置每个成员的数据库。 此过程需要停机。 先决条件 确保您的副本集未分片。重命名过程仅适用于未分片的副本集。 在重命名副本集之前,请 对 MongoDB 部…...

C#WPF属性触发器实例

本文讲解C#WPF属性触发器的实例 在属性触发器中,当一个属性发生更改时,它将立即或动画更改另一个属性 实例 <Windowx:Class="TriggerDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://sch…...

Kotlin 核心语法,为什么选择Kotlin ?

Kotlin 是一个基于 JVM 的新的编程语言&#xff0c;由 JetBrains 开发。与Java相比&#xff0c;Kotlin的语法更简洁、更具表达性&#xff0c;而且提供了更多的特性。 Kotlin是使用Java开发者的思维被创建的&#xff0c;Intellij作为它主要的开发IDE。对于 Android开发者&#…...

SpringCloud微服务:Nacos的集群、负载均衡、环境隔离

目录 集群 在user-service的yml文件配置集群 启动服务 负载均衡 order-service配置集群 设置负载均衡 当本地集群的服务挂掉时 访问权重 环境隔离 1、Nacos服务分级存储模型 一级是服务&#xff0c;例如userservice 二级是集群&#xff0c;例如杭州或上海 …...

Selenium+Python做web端自动化测试框架实战

最近受到万点暴击&#xff0c;由于公司业务出现问题&#xff0c;工作任务没那么繁重&#xff0c;有时间摸索seleniumpython自动化测试&#xff0c;结合网上查到的资料自己编写出适合web自动化测试的框架&#xff0c;由于本人也是刚刚开始学习python&#xff0c;这套自动化框架目…...

Linux:安装MySQL服务(非docker方式)

1、下载安装包 下载MySQL安装包&#xff0c;需要Oracle官网的账号 下面是网友提供的账号及密码&#xff0c;亲测有效。 账户&#xff1a;3028064308qq.com 我用的这个&#xff0c;可以登陆 密码&#xff1a;OraclePassword123!Oracle Account: 602205528qq.com Oracle Pass…...

C++实现有理数类 四则运算和输入输出

面试 C 程序员&#xff0c;什么样的问题是好问题&#xff1f; - 知乎 https://www.cnblogs.com/bwjblogs/p/12982908.html...

小鸟飞呀飞

欢迎来到程序小院 小鸟飞呀飞 玩法&#xff1a;鼠标控制小鸟飞翔的方向&#xff0c;点击鼠标左键上升&#xff0c;不要让小鸟掉落&#xff0c;从管道中经过&#xff0c;快去飞呀飞哦^^。开始游戏https://www.ormcc.com/play/gameStart/204 html <canvas width"288&quo…...

Unity 场景烘培 ——unity Post-Processing后处理1(四)

提示&#xff1a;文章有错误的地方&#xff0c;还望诸位大神不吝指教&#xff01; 文章目录 前言一、Post-Processing是什么&#xff1f;二、安装使用Post-Processing1.安装Post-Processing2.使用Post-Processing&#xff08;1&#xff09;.添加Post-process Volume&#xff08…...

Burpsuite抓HTTPS证书导入问题

Burpsuite证书导出有两种方法&#xff1a; 第一种方法 1、开启代理后直接在浏览器中输入burp下载CA证书 2、在中间证书颁发机构中导入刚导出的证书 3、导入完成后再把这个证书选择导出&#xff0c;另存为cer格式的文件 4、在受信任的根证书颁发机构中导入刚保存的cer格式证书…...

python保存文件到zip压缩包中

这里我们使用zipfile这个库进行操作&#xff0c;保存压缩文件相对简单&#xff0c;只需要指定文件名即可&#xff0c;不需要读取那个文件&#xff1a; with zipfile.ZipFile("zip文件路径", mode, zipfile.ZIP_DEFLATED) as z:z.write("压缩源文件路径", …...

java发送媒体类型为multipart/form-data的请求

文章目录 public static String sendMultipartFormDataPostRequest(String urlString, String data) throws IOException {String fullUrl urlString "?" data;log.info("完整请求路径为{}", fullUrl);URL url new URL(fullUrl);HttpURLConnection co…...

自定义类使用ArrayList中的remove

Java中ArrayList对基础类型和字符串类型的删除操作&#xff0c;直接用remove方法即可。但是对于自定义的类来说&#xff0c;用remove方法删除不了&#xff0c;因为没有办法确定是否是要删除的对象。 ArrayList中remove源码是&#xff1a; public boolean remove(Object o) {if…...

前端面试考核点【更持续新中】

文章目录 HTMLcssjsVueReactTypeScript移动端&小程序编译/打包/构建npmnodejs微前端网络安全浏览器性能OKR工程化、标准化 HTML Script放在body中间会阻塞吗&#xff1f;defer与async的区别&#xff1f;https://blog.csdn.net/qq_41887214/article/details/124909219 DOM和…...

linux-docker安装

​TOC 一&#xff0c;Docker简介 百科说&#xff1a;Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux机器上&#xff0c;也可以实现虚拟化&#xff0c;容器是完全使用沙箱机制&…...

如何用html css js 画出曲线 或者斜线;

效果图 解题思路 将图片全部定位至中心点&#xff0c;然后x轴就变动translateX &#xff0c;y轴同理&#xff1b; 这里有两个问题 浏览器&#xff1a; 以左上角为原点0&#xff0c;0 越往下y越大 数学坐标系&#xff1a;以中心点为原点0&#xff0c;0 越往下y越小&#xff1…...

【错误记录】Uncaught TypeError: m.nodeName.toLowerCase is not a function

描述&#xff1a;在控制台输出上述错误~ 原因&#xff1a;在页面中&#xff0c;使用jQuery 开发时&#xff0c;命名不能和jQuery一起方法属性冲突&#xff0c;比如这里的nodeName&#xff0c;这里换一个不冲突的名字&#xff0c;就解决问题了。...

王颖奇:ONES.ai 上线,以及我的一些思考

ONES.ai 正式上线&#xff01;为你解锁更智能、更高效的新一代研发管理体验 我们上线了 ONES.ai&#xff0c;当然我们用了公开的 LLM(AI)&#xff0c;目前我们最方便使用的就是公开的 LLM&#xff0c;其实是不是 公开的 LLM 也不重要&#xff0c;在未来可预见的时间内&#xff…...

将AI技术与VR元宇宙相结合的整体解决方案

当前人工智能与VR虚拟现实两大热门技术的融合&#xff0c;正引领着人类走向更智能、更数字化、更便捷、更快速的时代。将这两者结合&#xff0c;AI智能检索应用到VR教学中&#xff0c;将为教育带来前所未有的好处。 个性化教学体验 通过AI智能检索&#xff0c;VR教学可以针对每…...

IPKISS Tutorials 3------绘制矩形版图

IPKISS Tutorials 3------绘制矩形版图 方法1------使用Rectangle函数模块导入与放置层设定创建PCell可视化版图这里给大家介绍一下如何在 IPKISS 绘制一个矩形结构的版图。 方法1------使用Rectangle函数 import si_fab.all as pdk import ipkiss3.all as i3class Box(i3.PC…...

Qwen大语言模型里,<CLS>属于特殊的标记:Classification Token

Qwen大语言模型里,<CLS>属于特殊的标记:Classification Token 目录 Qwen大语言模型里,<CLS>属于特殊的标记:Classification Token功能解析工作机制应用场景举例说明技术要点在自然语言处理(NLP)领域 都是<CLS> + <SEP>吗?一、CLS和SEP的作用与常见用法1. **CLS标…...

STM32使用土壤湿度传感器

1.1 介绍&#xff1a; 土壤湿度传感器是一种传感装置&#xff0c;主要用于检测土壤湿度的大小&#xff0c;并广泛应用于汽车自动刮水系统、智能灯光系统和智能天窗系统等。传感器采用优质FR-04双料&#xff0c;大面积5.0 * 4.0厘米&#xff0c;镀镍处理面。 它具有抗氧化&…...

Mysql-定时删除数据库中的验证码

Moudle 1 使用调度器定时删除事件 数据库实现验证码自动删除的解决方案 -- 删除旧事件&#xff08;如果存在&#xff09; DROP EVENT IF EXISTS delete_expired_captchas;-- 创建新事件&#xff08;每分钟执行一次&#xff09; CREATE EVENT delete_expired_captchas ON SCHE…...

前端杂货铺——TodoList

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…...

STM32 控制12VRGB灯带颜色亮度调节,TFTLCD显示

接了一个同学的小项目&#xff0c;要实现控制一个实体&#xff0c;控制灯带的亮度为红/绿/蓝/白/黄以及亮度的叠加。 时间要的比较急&#xff0c;要两天实现&#xff0c;因此不能打板&#xff0c;只能采用现有模块拼接。 一. 实施方案 一开始觉得很简单&#xff0c;就是使用五…...

RT-Thread内核组成——内核移植

内核移植就是指将 RT-Thread 内核在不同的芯片架构、不同的板卡上运行起来&#xff0c;能够具备线程管理和调度&#xff0c;内存管理&#xff0c;线程间同步和通信、定时器管理等功能。移植可分为 CPU 架构移植和 BSP&#xff08;Board support package&#xff0c;板级支持包&…...

股指期货波动一个点多少钱?

很多朋友在交易股指期货时&#xff0c;都会好奇一个问题&#xff1a;股指期货波动一个点&#xff0c;我的账户里到底是赚了还是亏了多少钱&#xff1f;要搞清楚这个问题&#xff0c;其实很简单&#xff0c;只需要了解两个关键信息&#xff1a;股指期货的“交易单位”&#xff0…...

AI图片售卖:是暴利新风口还是虚幻泡沫?哪些平台适合售卖AI图片

还记得去年大火的Midjourney吗&#xff1f;今年4月&#xff0c;Midjourney又发布了备受期待的V7版本&#xff0c;带来了更高的图像质量和创新功能。使用Midjourney、Stable Diffusion、DALLE等AI图片生成工具&#xff0c;创作者只需输入关键词即可获得高质量的原创图片。这一变…...

caliper config.yaml 文件配置,解释了每个配置项的作用和注意事项

以下是添加了详细备注的 config.yaml 文件配置,解释了每个配置项的作用和注意事项: # Caliper 性能测试主配置文件 # 文档参考: https://hyperledger.github.io/caliper/# 测试轮次配置 - 可以定义多个测试轮次,每个轮次测试不同的合约或场景 rounds:# 第一个测试轮次 - 测试…...

Elasticsearch 海量数据写入与高效文本检索实践指南

Elasticsearch 海量数据写入与高效文本检索实践指南 一、引言 在大数据时代&#xff0c;企业和组织面临着海量数据的存储与检索需求。Elasticsearch&#xff08;以下简称 ES&#xff09;作为一款基于 Lucene 的分布式搜索和分析引擎&#xff0c;凭借其高可扩展性、实时搜索和…...