三主机部署HP Anyware Manager服务
一、序言
在部署拓扑和方案方面,HP Anyware Manager 非常灵活,可以部署在单个主机中,也可以部署在多个主机中,具体取决于组织的网络环境和运营要求。
二、单主机部署
2.1 描述
此部署配置是当 Anyware Manager 和 MongoDB 以及 Vault 服务器在单个主机上运行时,可将其部署在任何云或本地的虚拟机上。
可以使用与 Anyware Manager 进行初始原型设计或小规模生产部署。如果用于生产环境,则必须确保有备份和恢复过程。这对于最大限度地减少数据丢失和最大限度地减少停机时间是必要的。
2.2 虚拟机系统需求
- 操作系统:RHEL 8 和 Rocky Linux 8。
- 最低 8 GB RAM
- 4 CPU
- 60 GB 存储空间:如果您使用 LVM并/var安装在单独的卷上,则该卷必须具有 30GB 或更多空间才能成功安装并且 Anyware Manager 才能正常运行。
- Active Directory 权限设置为列出内容和读取所有属性。如果不设置这些权限,您将无法连接到特定的远程工作站。
- VM的主机名应符合RFC1123中定义的标准,并且必须:
-仅包含 253 个字符。
-仅包含小写字母数字字符、“-”或“。”。
-以字母数字字符开头。
-以字母数字字符结尾。
默认安装过程链接
三、两/三台主机部署
3.1 描述
此部署配置适用于 Anyware Manager、MongoDB 和 Vault 服务器在单独的主机上运行的情况。
通过在单独的计算机上托管数据库和机密存储,可以降低 Anyware Manager 服务器发生故障时数据丢失的风险。
此配置通过部署多个 Anyware Manager 实例来实现 Anyware Manager 的高可用性和可扩展性。此配置具有以下限制:
- 如果仅部署一个 MongoDB 和 Vault 实例,数据持久层无法实现高可用性,并且必须为托管 MongoDB 和 Vault 的服务器制定备份和恢复过程,以最大限度地减少数据丢失。
- 可以在本地或任何云上托管的虚拟机上配置此部署。 此配置需要一定程度的 MongoDB 和 Vault 技术知识,才能正确部署和操作这些外部组件。
四、三主机安装 之 为外部DB和Vault创建自签名证书
这些命令的目的是生成一个自签名的根证书颁发机构 (CA) 证书和一个由该根CA签署的服务器证书,并包括特定的Subject Alternative Name (SAN) 条目。每个命令的详细功能如下:
-
生成根CA私钥:
openssl genrsa -out rootCA.key 4096
- 生成一个4096位的RSA私钥并将其保存在
rootCA.key
文件中。 - 这个私钥将用于签署根CA证书。
- 生成一个4096位的RSA私钥并将其保存在
-
生成自签名根CA证书:
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt -subj "/C=CA/ST=BC/O=Team Voltron/CN=Voltron Test CA"
- 使用生成的私钥
rootCA.key
创建一个新的自签名根CA证书,并将其保存为rootCA.crt
。 -x509
表示生成一个自签名证书。-days 1024
指定证书的有效期为1024天。-subj
提供证书的主题信息(国家、州/省、组织和通用名称)。
- 使用生成的私钥
-
设置Subject Alternative Name (SAN) 环境变量:
export SAN="subjectAltName=DNS:DBVault-10-47,IP:192.168.10.47,IP:192.168.10.47,IP:127.0.0.1"
- 将特定的SAN值存储在
SAN
环境变量中。 - SAN包含DNS名称和多个IP地址,用于扩展证书的主机名验证。
- 将特定的SAN值存储在
-
生成服务器私钥:
openssl genrsa -out mycert.key 2048
- 生成一个2048位的RSA私钥并将其保存在
mycert.key
文件中。 - 这个私钥将用于生成服务器证书签名请求 (CSR)。
- 生成一个2048位的RSA私钥并将其保存在
-
生成证书签名请求 (CSR):
openssl req -new -sha256 \ -key mycert.key \ -subj "/C=CA/ST=BC/O=Team Voltron/CN=localhost" \ -reqexts SAN \ -config <(cat /etc/pki/tls/openssl.cnf <(printf "\n[SAN]\n${SAN}")) \ -out mycert.csr
- 使用
mycert.key
生成一个新的CSR,并将其保存为mycert.csr
。 -subj
提供CSR的主题信息。-reqexts SAN
和-config <(cat /etc/pki/tls/openssl.cnf <(printf "\n[SAN]\n${SAN}"))
用于将SAN信息添加到CSR中。-sha256
指定使用SHA-256哈希算法。
- 使用
-
使用根CA签署服务器证书:
openssl x509 -req -in mycert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out mycert.crt -days 500 -sha256 -extfile <(printf "${SAN}")
- 使用根CA证书
rootCA.crt
和根CA私钥rootCA.key
签署CSRmycert.csr
,生成服务器证书mycert.crt
。 -CAcreateserial
生成一个序列号文件(默认为rootCA.srl
)。-days 500
指定证书的有效期为500天。-extfile <(printf "${SAN}")
包含SAN信息的扩展文件。
- 使用根CA证书
-
将服务器证书追加到 PEM 文件:
cat mycert.crt >> myserver.pem
- 将生成的服务器证书 (
mycert.crt
) 的内容追加到myserver.pem
文件中。 myserver.pem
文件将包含服务器证书的公钥。
- 将生成的服务器证书 (
-
将服务器私钥追加到 PEM 文件:
cat mycert.key >> myserver.pem
- 将生成的服务器私钥 (
mycert.key
) 的内容追加到myserver.pem
文件中。 myserver.pem
文件现在包含了服务器的公钥和私钥。
通过这两个步骤,你将服务器证书和私钥组合到一个 PEM 文件 (
myserver.pem
) 中,这个文件可以方便地用于配置支持 SSL/TLS 的服务。 - 将生成的服务器私钥 (
-
验证服务器证书:
openssl verify -CAfile rootCA.crt mycert.crt
- 使用根CA证书 (
rootCA.crt
) 验证服务器证书 (mycert.crt
) 的有效性。 -CAfile rootCA.crt
指定用于验证的根CA证书。- 如果证书有效且由指定的根CA签署,OpenSSL 会输出
mycert.crt: OK
。 - 如果证书无效或不匹配,OpenSSL 会输出相应的错误信息。
- 使用根CA证书 (
总结
这些命令的整体操作流程如下:
- 创建一个根CA证书及其私钥。
- 为服务器生成一个私钥和一个包含SAN的CSR。
- 使用根CA证书和私钥签署该CSR,生成一个包含SAN的服务器证书。
- 将服务器证书和私钥组合到一个 PEM 文件中 (
myserver.pem
)。 - 使用根CA证书验证服务器证书的有效性,确保服务器证书是由指定的根CA签署的,并且没有问题。
这些步骤通常用于准备证书和密钥,以便在配置支持SSL/TLS的服务(如MongoDB、HashiCorp Vault等)时使用。
五、三主机安装之 HashiCorp Vault 1.11 安装配置
安装和配置 Vault
-
安装
yum-utils
工具包:sudo yum install -y yum-utils
- 安装
yum-utils
,这是一个提供各种 YUM 命令的工具包,用于管理和维护 YUM 仓库及软件包。
- 安装
-
添加 HashiCorp 的 YUM 仓库:
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
- 将 HashiCorp 官方的 YUM 仓库添加到系统中,以便安装 HashiCorp 的软件包,包括 Vault。
-
安装 Vault:
sudo yum -y install vault-1.11.6-1.x86_64
- 从刚刚添加的 YUM 仓库安装 Vault 1.11.6 版本。
-
运行 Vault 命令以验证安装:
vault
- 运行 Vault 命令行工具以确认 Vault 已正确安装并能够启动。
配置 Vault
-
复制服务器证书到 Vault 目录:
sudo cp myserver.pem /opt/vault/tls/myserver.pem
- 将之前生成的服务器证书 (
myserver.pem
) 复制到 Vault 的 TLS 目录中。
- 将之前生成的服务器证书 (
-
备份现有的 Vault 配置文件:
sudo mv /etc/vault.d/vault.hcl /etc/vault.d/vault.hcl.old
- 将现有的 Vault 配置文件重命名为备份文件,以便后续创建新的配置文件。
-
编辑 Vault 配置文件:
vi /etc/vault.d/vault.hcl
- 打开 Vault 配置文件进行编辑。
Vault 配置文件 (/etc/vault.d/vault.hcl
)
# Full configuration options can be found at https://www.vaultproject.io/docs/configurationui = truestorage "raft" {path = "/opt/vault/data"node = "node1"
}# HTTP listener
listener "tcp" {address = "0.0.0.0:8200"tls_cert_file = "/opt/vault/tls/myserver.pem"tls_key_file = "/opt/vault/tls/myserver.pem"
}api_addr = "https://127.0.0.1:8200"
cluster_addr = "https://127.0.0.1:8201"
ui = true
: 启用 Vault 的 Web 用户界面。storage "raft"
: 配置 Raft 存储后端,数据存储在/opt/vault/data
目录。listener "tcp"
: 配置 TCP 监听器,在 8200 端口上启用 TLS 加密,使用指定的证书和密钥文件。api_addr
和cluster_addr
: 配置 Vault 的 API 地址和集群地址,均使用 HTTPS。
配置 Vault 服务
-
编辑 Vault 服务文件:
sudo vi /etc/systemd/system/vault.service
Vault 服务文件内容 (
/etc/systemd/system/vault.service
):[Unit] Description="HashiCorp Vault - A tool for managing secrets" Documentation=https://www.vaultproject.io/docs/ Requires=network-online.target After=network-online.target ConditionFileNotEmpty=/etc/vault.d/vault.hcl StartLimitIntervalSec=60 StartLimitBurst=3[Service] User=vault Group=vault ProtectSystem=full ProtectHome=read-only PrivateTmp=yes PrivateDevices=yes SecureBits=keep-caps AmbientCapabilities=CAP_IPC_LOCK Capabilities=CAP_IPC_LOCK+ep CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK NoNewPrivileges=yes ExecStart=/usr/bin/vault server -config=/etc/vault.d/vault.hcl ExecReload=/bin/kill --signal HUP $MAINPID KillMode=process KillSignal=SIGINT Restart=on-failure RestartSec=5 TimeoutStopSec=30 StartLimitInterval=60 StartLimitIntervalSec=60 StartLimitBurst=3 LimitNOFILE=65536 LimitMEMLOCK=infinity[Install] WantedBy=multi-user.target
- 定义了 Vault 的系统服务单元,配置了启动、重启、权限、安全设置等。
-
启用 Vault 服务:
sudo systemctl enable vault
- 设置 Vault 服务在系统启动时自动启动。
-
启动 Vault 服务:
sudo systemctl start vault
- 启动 Vault 服务。
-
检查 Vault 服务状态:
sudo systemctl status vault
- 检查 Vault 服务是否正在运行并且工作正常。
初始化和解封 Vault
以下命令需要重新开一个SSH执行
-
设置 Vault 地址:
export VAULT_ADDR='https://192.168.10.47:8200'
- 设置环境变量
VAULT_ADDR
指定 Vault 的 API 地址。
- 设置环境变量
-
设置 CA 证书路径:
export VAULT_CACERT=/opt/vault/tls/myserver.pem
- 设置环境变量
VAULT_CACERT
指定 Vault 的 CA 证书路径。
- 设置环境变量
-
初始化 Vault:
vault operator init
初始化输出示例:
Unseal Key 1: 6vcvTn+oLnFirU9f4Ehrc88RWphgavO5fgdhiH4/DYDg Unseal Key 2: r+ZFy2KipZxnJec5O6geU4DFTXxiVZbLfuD5YDvSbbvl Unseal Key 3: COGjZgfPBlKS0Ok+6vLtIlfui2WA7LHmS5BC9ipXx7vD Unseal Key 4: Vee++P6EkdnW7Hs85KtY3Zo8sWfMNqG8RAMLHpin9MHU Unseal Key 5: s7eu5VWbjqaSAZZKI+ejdEIa7bDKbIoIT6rc7+jQ5XtZInitial Root Token: hvs.QIdivPRK0dUrycWFrh1gQe8Z
- 初始化 Vault 并生成解封密钥和 Root Token。
-
解封 Vault:
vault operator unseal
- 需要执行三次,输入不同的解封密钥。
-
登录 Vault:
vault login hvs.QIdivPRK0dUrycWFrh1gQe8Z
- 使用 Root Token 登录 Vault。
-
启用密钥值 (KV) 存储引擎:
vault secrets enable -path=secret/ kv
-
创建 Vault 策略:
vault policy write casm-policy - << EOF path "secret/data/*" { capabilities = ["create", "update", "read", "delete", "list"] } EOF
-
创建角色和 token:
vault write auth/token/roles/casm-role allowed_policies="casm-policy" period="768h" vault token create -role=casm-role -orphan
创建 token 输出示例:
Key Value --- ----- token hvs.CAESIDA0kcPwDitAjXPtrKjckEj1qJA8DQAl8fEyHo_z7g1WGh4KHGh2cy5lU2pLdU1tb1FWbFgyUE1nVUw0OVlYUzU
-
设置 Vault 跳过证书验证(仅用于测试环境):
export VAULT_SKIP_VERIFY=True
-
重新解封 Vault:
vault operator unseal
- 在 Vault 重启后,执行解封操作。
六、三主机安装之 MongoDB 4.2 安装配置
下面是这些系统命令的详细解释及其功能:
配置 MongoDB YUM 仓库
-
创建并编辑 MongoDB 仓库文件:
sudo vi /etc/yum.repos.d/mongodb-org-4.2.repo
MongoDB 仓库配置文件内容 (
/etc/yum.repos.d/mongodb-org-4.2.repo
):[mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
name
: 为仓库指定名称。baseurl
: 指定 MongoDB 软件包的下载地址。gpgcheck
: 启用 GPG 签名检查,以确保软件包的完整性和来源可靠性。enabled
: 启用这个仓库。gpgkey
: 指定用于验证软件包签名的 GPG 密钥的 URL。
-
安装 MongoDB 相关包:
yum install -y mongodb-org-4.2.14 mongodb-org-server-4.2.14 mongodb-org-shell-4.2.14 mongodb-org-mongos-4.2.14 mongodb-org-tools-4.2.14
- 安装 MongoDB 4.2.14 及其所有相关组件,包括服务器、Shell、Mongos 和工具。
配置 MongoDB
-
移动和设置证书权限:
mv myserver.pem /etc/myserver.pem chmod 755 /etc/myserver.pem
- 将证书文件
myserver.pem
移动到/etc
目录,并设置文件权限为 755(所有者可读写执行,其他用户可读)。
- 将证书文件
-
备份并编辑 MongoDB 配置文件:
sudo mv /etc/mongod.conf /etc/mongod.conf.orig sudo vi /etc/mongod.conf
MongoDB 配置文件内容 (
/etc/mongod.conf
):#mongod.conf#for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/# where to write logging data. systemLog:destination: filelogAppend: truepath: /var/log/mongodb/mongod.log# Where and how to store data. storage:dbPath: /var/lib/mongojournal:enabled: true # engine: # wiredTiger:# how the process runs processManagement:fork: true # fork and run in backgroundpidFilePath: /var/run/mongodb/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfo# network interfacesnet:port: 27017bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.tls:# mode allowTLS allows connections to be either TLS or non-TLS, but requireTLS means all connections must be TLSmode: requireTLS # All connections MUST be TLScertificateKeyFile: /etc/myserver.pemsecurity:authorization: "enabled"
systemLog
: 配置日志记录,包括日志文件位置和是否追加日志。storage
: 配置数据存储,包括数据文件位置和启用日志。processManagement
: 配置 MongoDB 进程管理,包括后台运行、PID 文件路径等。net
: 配置网络接口,包括端口号、绑定 IP 地址和 TLS 设置。security
: 启用 MongoDB 的认证授权。
-
重新加载系统服务管理器配置:
sudo systemctl daemon-reload
- 使系统服务管理器重新加载服务配置文件。
-
设置证书的 SELinux 上下文:
chcon system_u:object_r:mongod_var_lib_t:s0 /etc/myserver.pem
- 设置证书文件的 SELinux 上下文,以便 MongoDB 服务可以访问它。
-
启动 MongoDB 服务并检查状态:
sudo systemctl start mongod sudo systemctl status mongod
- 启动 MongoDB 服务,并检查其运行状态。
配置和使用 MongoDB
-
以 TLS 连接到 MongoDB:
mongo --tls --tlsAllowInvalidCertificates
- 使用 TLS 连接到 MongoDB 实例,即使证书无效也允许连接(用于测试)。
-
切换到
casm
数据库:use casm
-
创建用户并设置权限:
db.createUser( { user: "sunia", pwd: "Hc@2024", roles: [ {db: "casm", role: "readWrite"} ], // user only needs readWrite Access to cam DB,authenticationRestrictions: [{serverAddress: ["192.168.10.47"] // IP for the MongoDB server}] });
- 在
casm
数据库中创建一个用户sunia
,密码为Hc@2024
,并赋予readWrite
权限。用户只能从 IP 地址192.168.10.47
进行认证。
- 在
注意事项:
1, 完成MongoDB安装后登录第一次创建用户,会出现问题是: 无权限在casm总增加用户
2024-07-18T20:04:42.959+0800 E QUERY [js] uncaught exception: Error: couldn’t add user: not authorized on casm to execute command { createUser: “sunia”, pwd: “xxx”, roles: [ { db: “casm”, role: “readWrite” } ], authenticationRestrictions: [ { serverAddress: [ “192.168.10.47” ] } ], digestPassword: true, writeConcern: { w: “majority”, wtimeout: 600000.0 }, lsid: { id: UUID(“05fe2644-2cdd-4e33-9476-e4e29ba5cbdb”) }, $db: “casm” } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1413:11
@(shell):1:1
解决办法:
第一次安装mongodb后,需要增加一个账户,如果创建账户的时候报这个错误,是因为启动mongod的时候,指定的配置文件mongodb.conf中,需要先用noauth = true启动,注释掉auth = true
-------------------防火墙打开-----------------------------
sudo firewall-cmd --list-all
sudo firewall-cmd --add-port=27017/tcp --permanent #MongoDB
sudo firewall-cmd --add-port=8200/tcp --permanent #Vault
sudo firewall-cmd --reload
总结
这些命令完成了 MongoDB 的安装、配置和启动,包括:
- 配置 MongoDB YUM 仓库,并安装 MongoDB 4.2 版本。
- 配置 MongoDB 使其支持 TLS 和启用认证。
- 设置 MongoDB 服务并启动,确保服务正常运行。
- 创建 MongoDB 用户并设置权限,以便进行访问控制。
七、三主机安装之 Manager配置刷新
在虚机安装完成Manager之后,需要配置Manager使用外部安装的MongoDB和Vault服务上面。
如下是配置命令:
cat /opt/manager.conf
{"vault-type": "vault","vault-url": "https://192.168.10.47:8200","vault-token": "hvs.CAESIEAIMGzQFyc3ts2WJsjvA-YcavVXizkdFdLFML0cw0bSGh4KHGh2cy5yeXFKTVFsekZDZlFwMUZ2UDJ5ejdjdmw","vault-secret-path": "secret/data","vault-skip-verify-cert": true,"db-connection-string": "mongodb://sunia:Hc%402024@192.168.10.47/casm","db-enable-tls": true,"db-skip-verify-cert": true
}sudo /usr/local/bin/anyware-manager configure --config-file /opt/manager.conf
相关文章:

三主机部署HP Anyware Manager服务
一、序言 在部署拓扑和方案方面,HP Anyware Manager 非常灵活,可以部署在单个主机中,也可以部署在多个主机中,具体取决于组织的网络环境和运营要求。 二、单主机部署 2.1 描述 此部署配置是当 Anyware Manager 和 MongoDB 以及…...

Grafana :利用Explore方式实现多条件查询
背景 日志统一推送到Grafana上管理。所以,有了在Grafana上进行日志搜索的需求,而进行日志搜索通常需要多条件组合。 解决方案 通过Grafana的Explore的方式实现多条件查询。 直接看操作步骤: 在主页搜索框中输入“Explore” 进入这个界面…...

腾讯技术创作特训营 -- SUPERWINNIE -- AI重塑社交内容
目录 1 什么是AI社交内容 2 案例拆解 3 用LLM做爆文选题 4 用LLM出爆文脚本提示词 1 什么是AI社交内容 任何一个因素被AI取代都是AI社交内容 2 案例拆解 数字人 资讯素材 录屏产品的素材(小红书测试AI产品) 脚本 素材 剪辑 3 用LLM做爆文选题 &…...

AV1技术学习: Compound Prediction
一、双向 Compound Prediction AV1支持两个参考帧的预测通过多种复合模式线性组合。复合预测公式为 其中,权重m(x, y) is scaled by 64 以进行整数计算,R1(x, y)和R2(x, y)表示两个参考块中位于(x, y)的像素。P(x, y)将按比例缩小 1/64 以形成最终的预测…...
watch监听vue2与vue3的写法
watch的属性值 handler:回调函数, 即监听到变化时应该执行的函数,可以是单独的函数或带有 immediate 和 deep 属性的对象watch: {someProperty: function(newVal, oldVal) {// 处理逻辑}}deep: 其值是true或false, 当属性值是对象或数组时,深度观察会监…...

docker搭建普罗米修斯监控gpu
ip8的服务器监控ip110和ip111的服务器 被监控的服务器110和111只需要安装node-export和nvidia-container-toolkit 下载镜像包 docker pull prom/node-exporter docker pull prom/prometheus docker pull grafana/grafana新建目录 mkdir /opt/prometheus cd /opt/prometheus/…...

像 MvvmLight 一样使用 CommunityToolkit.Mvvm 工具包
文章目录 简介一、安装工具包二、实现步骤1.按照MvvmLight 的结构创建对应文件夹和文件2.编辑 ViewModelLocator3.引用全局资源二、使用详情1.属性2.命令3. 消息通知4. 完整程序代码展示运行结果简介 CommunityToolkit.Mvvm 包(又名 MVVM 工具包,以前称为 Microsoft.Toolkit…...
python入门课程Pro(2)--循环
循环 第1课 for循环的基本操作1.循环2.遍历3.for 循环遍历字典(1) 遍历字典的键(2)遍历字典的值(3)遍历字典的键和值 4.练习题(1)班级成绩单(2)最出名的城市(3)修改成绩(…...
今日总结:雪花算法,拉取在线用户
雪花算法: public class SnowflakeIdGenerator {private final long epoch 1626804000000L; // 定义起始时间戳,这里设置为2021-07-21 00:00:00 UTCprivate final long workerIdBits 5L; // 机器ID所占的位数private final long sequenceBits 10L; /…...

前瞻断言与后瞻断言:JavaScript 正则表达式的秘密武器
JavaScript 中的前瞻断言(lookahead)和后瞻断言(lookbehind)相信用过的小伙伴就知道它的威力了,在一些特定的需求场景下,可以做到四两拨千斤的作用,今天让我们来盘点一下在 JavaScript 正则表达…...

昇思MindSpore学习总结十六 —— 基于MindSpore的GPT2文本摘要
1、mindnlp 版本要求 !pip install tokenizers0.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple # 该案例在 mindnlp 0.3.1 版本完成适配,如果发现案例跑不通,可以指定mindnlp版本,执行!pip install mindnlp0.3.1 !pip install mindnlp …...
React Router 6笔记
一个路由就是一个映射关系 key为路径,value可能是function或component 路由分类 后端路由(node) value是function,用来处理客户端提交的请求注册路由:router.get(path, function(req, res))工作过程:当…...
Android init 中的wait_for_property指令
Android开机优化系列文档-CSDN博客 Android 14 开机时间优化措施汇总-CSDN博客Android 14 开机时间优化措施-CSDN博客根据systrace报告优化系统时需要关注的指标和优化策略-CSDN博客Android系统上常见的性能优化工具-CSDN博客Android上如何使用perfetto分析systrace-CSDN博客A…...
智能合约语言(eDSL)—— 并行化方案——调度算法
3、调度算法 处理区块的时候,我们会同时启动多个线程去执行多个交易,这个时候我们需要一个良好的调度策略,来决定当前的线程是应该执行交易还是验证交易、提前结束还是立刻重新执行交易等,只有有一个良好调度策略才能保证所有交易都稳定有序的执行; 线程数量 这是一个不…...
vue2.0中如何实现数据监听
vue2中实现数据监听的原理 在Vue 2中,数据监听是通过ES5的Object.defineProperty实现的。Vue在初始化数据对象时,会遍历data对象,并使用Object.defineProperty为每个属性设置getter和setter。当你尝试读取或修改数据属性时,这些g…...

kafka开启kerberos和ACL
作者:恩慈 一、部署kafka-KB包 1.上传软件包 依次点击 部署中心----部署组件----上传软件包 选择需要升级的kafka版本并点击确定 2.部署kafka 依次点击部署中心----部署组件----物理/虚拟机部署----选择集群----下一步 选择手动部署-…...
QT+winodow 代码适配调试总结(三)
问题描述: 1、开发测试环境为: A: window10 64位 B: QT版本为4.8.6 C:采用VS2017 C++ Compiler 9.0 (x86)编译器版本 根据总结(二)经验,开发环境的可执行程序显示正常; 2、新的环境运行的时候显示乱码; 经过查阅资料,还是代码环境编码配置的问题,下面为解…...

Linux之旅:常用的指令,热键和权限管理
目录 前言 1. Linux指令 (1) ls (2) pwd 和 cd (3)touch 和 mkdir (4) rmdir 和 rm (5)cp (6)mv (7)…...

简单实用的企业舆情安全解决方案
前言:企业舆情安全重要吗?其实很重要,尤其面对负面新闻,主动处理和应对,可以掌握主动权,避免股价下跌等,那么如何做使用简单实用的企业舆情解决方案呢? 背景 好了,提取词…...

【中项】系统集成项目管理工程师-第2章 信息技术发展-2.1信息技术及其发展-2.1.1计算机软硬件与2.1.2计算机网络
前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...

链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
深入理解 React 样式方案
React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...