CentOS7安装部署Zookeeper
文章目录
- CentOS7安装部署Zookeeper
- 一、前言
- 1.简介
- 2.架构
- 3.集群角色
- 4.特点
- 5.环境
- 二、正文
- 1.部署服务器
- 2.基础环境
- 1)主机名
- 2)Hosts文件
- 3)关闭防火墙
- 4)JDK 安装部署
- 3.单机部署
- 1)下载和解压
- 2)配置文件
- 3)数据目录
- 4)单机启动
- 5)测试
- 6)自启动
- 4.集群部署
- 1)下载和解压
- 2)配置文件
- 3)拷贝ZK
- 4)数据目录
- 5)集群启动
- 6)测试
- 7)自启动
- 5.图形化客户端
- 1)PrettyZoo
- 2)ZooInspector
- 6.ZK监控平台
- 1)修改ZK配置文件
- 2)安装 Prometheus
- (1)下载和安装
- (2)修改配置文件
- (3)启动
- (4)自启动
- 3)安装 Grafana
- (1)添加YUM仓库
- (2)安装Grafana
- (3)启动
- 4)配置监控面板
- (1)配置数据源
- (2)导入监控面板
- 三、其它
- 1.常用命令
CentOS7安装部署Zookeeper
一、前言
1.简介
Apache ZooKeeper 是一个分布式应用程序协调服务;用于维护配置信息、命名、提供分布式同步和组服务。
2.架构
- 客户端-服务器模型:ZooKeeper 遵循客户端-服务器模型,客户端可以向任何服务器节点发起请求。
- 数据模型:采用类似文件系统的树形结构来存储数据,每个节点称为 ZNode。
- 请求处理:所有写请求都通过一个主服务器(Leader)来保证数据的一致性,而读请求可以由任何服务器(Follower 或 Observer)处理。
3.集群角色
- Leader:负责处理所有更新请求,保证集群数据的一致性。在任何给定时间,一个 ZooKeeper 集群只有一个 Leader。
- Follower:处理客户端的非写入请求,并参与 Leader 选举和数据同步过程。
- Observer(可选):与 Follower 类似,但不参与 Leader 选举和写操作的投票过程。Observer 可以提升读取性能,因为它们不会增加写请求的投票负担。
4.特点
- 一致性:保证集群中所有服务器的数据状态一致。
- 可靠性:通过复制数据到所有服务器来确保高可用性。
- 顺序一致性:所有更新都是全局有序的。
5.环境
- Linux 发行版:CentOS-7-x86_64-DVD-1804.iso
- JDK 版本:Java SE Development Kit 11.0.19
- Zookeeper 版本:3.8.3
Zookeeper 官网:https://zookeeper.apache.org/
Zookeeper 3.8.3:https://zookeeper.apache.org/doc/r3.8.3/index.html
Zookeeper Getting Started:https://zookeeper.apache.org/doc/r3.8.3/zookeeperStarted.html
Prometheus 官网:https://prometheus.io/
Prometheus 文档:https://prometheus.io/docs/introduction/overview/
Grafana 官网:https://grafana.com/oss/grafana/
Grafana 文档:https://grafana.com/docs/grafana/latest/?pg=oss-graf&plcmt=hero-btn-2
ZooKeeper Monitor:https://zookeeper.apache.org/doc/r3.6.4/zookeeperMonitor.html
CentOS7安装部署Java11:https://blog.csdn.net/u011424614/article/details/132418561
CentOS基础操作命令:https://blog.csdn.net/u011424614/article/details/94555916
二、正文
1.部署服务器
- Zookeeper 默认端口
端口 | 作用 |
---|---|
2181 | 客户端连接端口,用于客户端与 ZooKeeper 集群通信 |
2888 | 用于集群内部服务器之间的 Leader 选举 |
3888 | 用于集群内部服务器之间的复制(数据同步) |
- 服务器
机器名 | IP | 节点部署 |
---|---|---|
zk-cluster-01 | 192.168.249.141 | zk 节点 |
zk-cluster-02 | 192.168.249.142 | zk 节点 |
zk-cluster-03 | 192.168.249.143 | zk 节点 |
zk-cluster-04 | 192.168.249.144 | 监控节点(Prometheus + Grafana) |
2.基础环境
1)主机名
- 修改 4 台服务器的主机名
# 141 执行
hostnamectl set-hostname zk-cluster-01 --static
hostnamectl set-hostname zk-cluster-01 --transient# 142 执行
hostnamectl set-hostname zk-cluster-02 --static
hostnamectl set-hostname zk-cluster-02 --transient# 143 执行
hostnamectl set-hostname zk-cluster-03 --static
hostnamectl set-hostname zk-cluster-03 --transient# 144 执行
hostnamectl set-hostname zk-cluster-04 --static
hostnamectl set-hostname zk-cluster-04 --transient# 查询状态
hostnamectl status
2)Hosts文件
- 修改 4 台服务器的 hosts 文件
cat > /etc/hosts <<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.249.141 zk-cluster-01
192.168.249.142 zk-cluster-02
192.168.249.143 zk-cluster-03
192.168.249.144 zk-cluster-04
EOF
3)关闭防火墙
在 4 台服务器上执行
- 可禁用防火墙,或配置开放的端口,后者比较安全
#--关闭防火墙
systemctl stop firewalld.service
#--开机禁用防火墙
systemctl disable firewalld.service
#--防火墙状态
systemctl status firewalld.service
4)JDK 安装部署
在 4 台服务器上安装JDK
- 安装参考:《CentOS7安装部署Java11》
- 安装目录:
/opt/java/jdk-11.0.19
3.单机部署
在 141 服务器上执行
1)下载和解压
- 创建安装目录,并下载
mkdir /opt/zookeeper
cd /opt/zookeeper# 下载
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.tar.gz --no-check-certificate
# 解压
tar -xzf apache-zookeeper-3.8.3-bin.tar.gz# 修改文件夹名称
mv /opt/zookeeper/apache-zookeeper-3.8.3-bin /opt/zookeeper/apache-zookeeper-3.8.3# 进入安装目录
cd /opt/zookeeper/apache-zookeeper-3.8.3
2)配置文件
- 创建 zoo.cfg 配置文件
cat > /opt/zookeeper/apache-zookeeper-3.8.3/conf/zoo.cfg <<EOF
# ZooKeeper 基本时间单位,单位毫秒
tickTime=2000
# Follower 启动和连接到 Leader 的最长时间(数值乘以tickTime)
initLimit=10
# Follower 与 Leader 同步的最长时间(数值乘以tickTime)
syncLimit=5
# 存储快照和事务日志的路径
dataDir=/data/zookeeper
# 客户端连接端口
clientPort=2181
# 单个客户端与单个服务器之间的最大并发连接数
maxClientCnxns=1200
# 自动清理时保留的快照数量
autopurge.snapRetainCount=10
# 自动清理任务的执行间隔时间,单位小时
autopurge.purgeInterval=24
EOF
3)数据目录
- whoami 表示当前登录用户
mkdir -p /data/zookeeper
chown -R `whoami` /data/zookeeper
4)单机启动
- 启动
cd /opt/zookeeper/apache-zookeeper-3.8.3
# 启动
bin/zkServer.sh start
# 停止
bin/zkServer.sh stop
- 查看运行情况
bin/zkServer.sh status
5)测试
- 进入安装目录
cd /opt/zookeeper/apache-zookeeper-3.8.3
- 连接 zk 客户端
bin/zkCli.sh -server 192.168.249.141:2181
- 测试数据
# 创建数据
create /test mydata
# 获取数据
get /test
# 列出全部节点
ls /
# 更新数据
set /test newdata
# 删除数据
delete /test
# 退出客户端
quit
6)自启动
- 创建 zookeeper.service
cat > /etc/systemd/system/zookeeper.service <<EOF
[Unit]
Description=Apache ZooKeeper Server
Requires=network.target
After=network.target[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=forking
WorkingDirectory=/opt/zookeeper/apache-zookeeper-3.8.3
ExecStart=/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh start
ExecStop=/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh stop
ExecReload=/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh restart
User=root[Install]
WantedBy=multi-user.target
EOF
- 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start zookeeper.service
systemctl enable zookeeper.service
- 查询进程状态
systemctl status zookeeper.service
4.集群部署
1)下载和解压
在 141 服务器上执行
- 创建安装目录,并下载
mkdir /opt/zookeeper
cd /opt/zookeeper# 下载
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.tar.gz --no-check-certificate
# 解压
tar -xzf apache-zookeeper-3.8.3-bin.tar.gz# 修改文件夹名称
mv /opt/zookeeper/apache-zookeeper-3.8.3-bin /opt/zookeeper/apache-zookeeper-3.8.3# 进入安装目录
cd /opt/zookeeper/apache-zookeeper-3.8.3
2)配置文件
在 141 服务器上执行
- 创建 zoo.cfg 配置文件
cat > /opt/zookeeper/apache-zookeeper-3.8.3/conf/zoo.cfg <<EOF
# ZooKeeper 基本时间单位,单位毫秒
tickTime=2000
# Follower 启动和连接到 Leader 的最长时间(数值乘以tickTime)
initLimit=10
# Follower 与 Leader 同步的最长时间(数值乘以tickTime)
syncLimit=5
# 存储快照和事务日志的路径
dataDir=/data/zookeeper
# 客户端连接端口
clientPort=2181
# 单个客户端与单个服务器之间的最大并发连接数
maxClientCnxns=1200
# 自动清理时保留的快照数量
autopurge.snapRetainCount=10
# 自动清理任务的执行间隔时间,单位小时
autopurge.purgeInterval=24# 集群配置
server.1=zk-cluster-01:2888:3888
server.2=zk-cluster-02:2888:3888
server.3=zk-cluster-03:2888:3888
EOF
3)拷贝ZK
在 142、143 服务器上执行
- 142 和 143 服务器创建目录
mkdir /opt/zookeeper
在 141 服务器上执行
- 拷贝 Zookeeper 到其它服务器
scp -r /opt/zookeeper/apache-zookeeper-3.8.3 root@192.168.249.142:/opt/zookeeper
scp -r /opt/zookeeper/apache-zookeeper-3.8.3 root@192.168.249.143:/opt/zookeeper
4)数据目录
在 141、142、143 服务器上执行
- whoami 表示当前登录用户
mkdir -p /data/zookeeper
chown -R `whoami` /data/zookeeper
- 创建 myid 文件
# 141 服务器
echo "1" > /data/zookeeper/myid# 142 服务器
echo "2" > /data/zookeeper/myid# 143 服务器
echo "3" > /data/zookeeper/myid
5)集群启动
在 141、142、143 服务器上执行
- 启动
cd /opt/zookeeper/apache-zookeeper-3.8.3
# 启动
bin/zkServer.sh start
# 停止
bin/zkServer.sh stop
- 查看运行情况
bin/zkServer.sh status
6)测试
在 141 服务器上执行
- 进入安装目录
cd /opt/zookeeper/apache-zookeeper-3.8.3
- 连接 zk 客户端
bin/zkCli.sh -server 192.168.249.141:2181
- 测试数据
# 创建数据
create /test mydata
# 获取数据
get /test
# 列出全部节点
ls /
# 更新数据
set /test newdata
# 删除数据
delete /test
# 退出客户端
quit
7)自启动
在 141、142、143 服务器上执行
- 创建 zookeeper.service
cat > /etc/systemd/system/zookeeper.service <<EOF
[Unit]
Description=Apache ZooKeeper Server
Requires=network.target
After=network.target[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=forking
WorkingDirectory=/opt/zookeeper/apache-zookeeper-3.8.3
ExecStart=/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh start
ExecStop=/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh stop
ExecReload=/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh restart
User=root[Install]
WantedBy=multi-user.target
EOF
- 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start zookeeper.service
systemctl enable zookeeper.service
- 查询进程状态
systemctl status zookeeper.service
5.图形化客户端
1)PrettyZoo
PrettyZoo-GitHub:https://github.com/vran-dev/PrettyZoo
PrettyZoo 是一个基于 Apache Curator 和 JavaFX 实现的 Zookeeper 图形化管理客户端。
2)ZooInspector
ZooInspector:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
Apache ZooKeeper 官方提供的一个简单的 GUI 工具,用于浏览和编辑存储在 ZooKeeper 中的数据。
6.ZK监控平台
Prometheus 官网:https://prometheus.io/
Prometheus 文档:https://prometheus.io/docs/introduction/overview/
Grafana 官网:https://grafana.com/oss/grafana/
Grafana 文档:https://grafana.com/docs/grafana/latest/?pg=oss-graf&plcmt=hero-btn-2
ZooKeeper Monitor:https://zookeeper.apache.org/doc/r3.6.4/zookeeperMonitor.html
-
Zookeeper 从 3.6.0 开始支持 Prometheus 和 Grafana 进行监控。
-
Prometheus 是一个开源系统监控和警报工具包。
-
Grafana 是一款多平台开源分析和交互式可视化网络应用程序。
1)修改ZK配置文件
在 141、142、143 服务器上执行
- 修改 conf/zoo.cfg 配置文件
cat > /opt/zookeeper/apache-zookeeper-3.8.3/conf/zoo.cfg <<EOF
# ZooKeeper 基本时间单位,单位毫秒
tickTime=2000
# Follower 启动和连接到 Leader 的最长时间(数值乘以tickTime)
initLimit=10
# Follower 与 Leader 同步的最长时间(数值乘以tickTime)
syncLimit=5
# 存储快照和事务日志的路径
dataDir=/data/zookeeper
# 客户端连接端口
clientPort=2181
# 单个客户端与单个服务器之间的最大并发连接数
maxClientCnxns=1200
# 自动清理时保留的快照数量
autopurge.snapRetainCount=10
# 自动清理任务的执行间隔时间,单位小时
autopurge.purgeInterval=24# 集群配置
server.1=zk-cluster-01:2888:3888
server.2=zk-cluster-02:2888:3888
server.3=zk-cluster-03:2888:3888# 指标
metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
metricsProvider.httpHost=0.0.0.0
metricsProvider.httpPort=7000
metricsProvider.exportJvmInfo=true
EOF
- 重启 ZK 集群
systemctl stop zookeeper.service
systemctl daemon-reload
systemctl start zookeeper.service
2)安装 Prometheus
在 144 服务器上执行
(1)下载和安装
# 安装目录
mkdir /opt/prometheus
cd /opt/prometheus# 下载
wget https://github.com/prometheus/prometheus/releases/download/v2.48.1/prometheus-2.48.1.linux-amd64.tar.gz --no-check-certificate# 解压
tar xvfz prometheus-*.tar.gz# 修改文件夹名称
mv /opt/prometheus/prometheus-2.48.1.linux-amd64 /opt/prometheus/prometheus-2.48.1# 进入安装目录
cd /opt/prometheus/prometheus-2.48.1
(2)修改配置文件
vim prometheus.yml
- 内容(scrape_configs: 下添加配置)
- job_name: "Zookeeper-QuarumPeermain"static_configs:- targets: ['zk-cluster-01:7000','zk-cluster-02:7000','zk-cluster-03:7000']
(3)启动
./prometheus --config.file=prometheus.yml
- 浏览器访问:
-
http://192.168.249.144:9090/status
-
http://192.168.249.144:9090/targets
(4)自启动
- 创建 prometheus.service
cat > /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target[Service]
User=root
ExecStart=/opt/prometheus/prometheus-2.48.1/prometheus \--config.file=/opt/prometheus/prometheus-2.48.1/prometheus.yml \--storage.tsdb.path=/opt/prometheus/prometheus-2.48.1/data[Install]
WantedBy=default.target
EOF
- 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start prometheus.service
systemctl enable prometheus.service
- 查询进程状态
systemctl status prometheus.service
3)安装 Grafana
在 144 服务器上执行
(1)添加YUM仓库
tee /etc/yum.repos.d/grafana.repo <<EOF
[grafana]
name=Grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
(2)安装Grafana
yum install grafana
(3)启动
- 启动服务,并设置开机自启动
systemctl start grafana-server
systemctl enable grafana-server.service
- 查询进程状态
systemctl status grafana-server
- 浏览器访问:
http://192.168.249.144:3000
- 首次登录:admin / admin
4)配置监控面板
(1)配置数据源
- 左侧菜单 - Data Source
- Add Data Source
- 选择 Prometheus
- 填写 Connection
- 最下方点击【Save & test】按钮
(2)导入监控面板
- 下载监控面板的 json 文件(也可以使用面板ID:10465)
zookeeper-by-prometheus:https://grafana.com/grafana/dashboards/10465-zookeeper-by-prometheus/
- 导入面板
- 选择文件,或者输入面板ID
- 点击【Import】按钮
- 导入完成
三、其它
1.常用命令
命令 | 说明 |
---|---|
systemctl daemon-reload | 重新加载服务配置 |
systemctl start zookeeper.service | 启动服务 |
systemctl enable zookeeper.service | 开机自启动服务 |
systemctl status zookeeper.service | 查询服务状态 |
systemctl stop zookeeper.service | 停止服务 |
systemctl restart zookeeper.service | 重启服务 |
systemctl disable zookeeper.service | 禁用开机自启动服务 |
相关文章:

CentOS7安装部署Zookeeper
文章目录 CentOS7安装部署Zookeeper一、前言1.简介2.架构3.集群角色4.特点5.环境 二、正文1.部署服务器2.基础环境1)主机名2)Hosts文件3)关闭防火墙4)JDK 安装部署 3.单机部署1)下载和解压2)配置文件3&…...

OceanBase入选Gartner®云数据库管理系统魔力象限“荣誉提及”
近日,全球IT市场研究和咨询公司Gartner发布最新报告《Magic Quadrant™ for Cloud Database Management Systems》(全球云数据库管理系统魔力象限)。全自研分布式数据库 OceanBase 入选“荣誉提及”,2022 年推出的云数据库 OB Clo…...
Oracle 19C DBA管理常用命令
登入数据库主机,查看 CRS 资源状态: 集群资源启动完毕后,在任意一节点上利用crsctl查看集群状态。 查看:/u01/app/19c/grid/bin/crsctl status res -t 集群资源管理命令: 启动:/u01/app/19c/grid/bin/cr…...

BIO和NIO编程(待完善)
目录 IO模型 BIO NIO 常见问题 IO模型 Java共支持3种网络编程IO模式:BIO,NIO,AIO BIO 同步阻塞模型,一个客户端连接对应一个处理线程 代码示例: Server端: public class BioServer {private static …...

基于RocketMQ实现分布式事务
前言 在上一篇文章Spring Boot自动装配原理以及实践我们完成了服务通用日志监控组件的开发,确保每个服务都可以基于一个注解实现业务功能的监控。 而本文我们尝试基于RocketMQ实现下单的分布式的事务。可能会有读者会有疑问,之前我们不是基于Seata完成了…...

TikTok社会学:短视频如何塑造社会认知?
TikTok,作为一款全球性的短视频平台,正在深刻地影响着用户的社会认知。在这个数字时代,短视频不仅仅是娱乐的载体,更是塑造和反映社会认知的一面镜子。本文将深入探讨TikTok是如何通过短视频影响社会认知,以及这种影响…...
小秋SLAM入门实战深度学习所有文章汇总
如何用python代码实现虚拟拖拽 MediaPipe Losses 损失函数 深度学习激活函数Activation Functions 【深度学习Regularization正则化】 深度学习: 数据扩充 (Data Augmentation) 【keras-yolo3】 【YOLO源码解读】 caffe源码解读系列 Python中的异常处理 精确率、精度ÿ…...
linux搭建git仓库
git安装与配置 # git安装 yum install -y git# git配置(以下为root用户下配置) # 添加git组 groupadd git# 添加账号、密码(账号zdtest可根据自己需求修改) useradd zdtest -g git passwd zdtest创建远程仓库(linux端) 创建个人文件夹 mkdir -p /home/data/zdtestcd /home/d…...
19. Mysql 循环语句
文章目录 概念循环语句while 循环语句repeat 循环语句loop 循环语句iterate 和 leave 语句 精选示例总结参考资料 概念 循环结构是编程中常见的控制结构,它允许我们重复执行一段代码,直到满足特定条件为止。 在 Mysql 中,常用来实现各种复杂…...

【qt】解决qt里编辑qss后失效问题(qt编码问题)
1、先创建qss文本stylesheet.qss 以按钮为例 QPushButton {background-color:rgb(240,255,255);color: rgb(0, 0, 2);border-style: outset;border-color: beige;border-radius: 10px; }/* hover按钮悬浮,鼠标悬浮在按钮上的状态,按钮颜色 */QPushButto…...

MySQL数据库高级SQL语句及存储过程
目录 一、高级SQL语句 (一)case语句 1.语法定义 2.示例 (二)空值(NULL) 和 无值( ) 1.区别 2.示例 (1)字符长度 (2)判断方法 ① 空值(NULL) ② 无值( ) (3…...

使用idea构建父子类springboot项目教程
第一步创建一个父类java项目(最外层java项目) 1.点击File 然后点击new 再点击Project 2.点击Maven 配置Java版本 再点击next 3.GroupId:包结构,ArtifactId:项目名称,填写完,点击next 4.点击…...

TCP_可靠数据传输原理
引言 在网络通信中,TCP是确保数据可靠传输的关键协议。但在我们深入研究TCP拥塞控制技术之前,让我们先探索可靠数据传输的原理,特别是TCP头部中一些重要字段的作用。 网络层提供了点对点的通信服务,努力交付数据报,但…...
Python随机点名
python随机点名 # 生成 0 ~ 9 之间的随机数 # 导入 random(随机数) 模块 import random print(random.randint(0,9)) 执行以上代码输出结果为: 4 尝试一下 以上实例我们使用了 random 模块的 randint() 函数来生成随机数,你每次执行后都返回不同的数字&a…...

HarmonyOS4.0系统性深入开发07创建一个ArkTS卡片
创建一个ArkTS卡片 在已有的应用工程中,创建ArkTS卡片,具体操作方式如下。 创建卡片。 根据实际业务场景,选择一个卡片模板。 在选择卡片的开发语言类型(Language)时,选择ArkTS选项,然后单…...

胡润研究院发布《2023胡润中国最具历史文化底蕴品牌榜》
胡润研究院发布《2023胡润中国最具历史文化底蕴品牌榜》,前十名分别是片仔癀、同仁堂、贵州茅台、五粮液、中国银行、中华、黄山、农业银行、建设银行、汾酒。 榜单调研范围涵盖中国内地具有60年以上历史的为消费者提供产品或服务的品牌,综合考察品牌历史…...

MFC编程技巧与范例详解01
目录 1、MFC概述 (1)、MFC为什么不用C语言使用C (2)、MFC的开发模型文档-视图模型 (3)、一个完善的MFC程序应该包括 (4)、MFC常用的类 2、MFC的特性 (1)…...

TPS5430正负电源模块
TPS5430正负电源模块 Chapter1 TPS5430正负电源模块一、芯片重要参数二、tps5430参考电路讲解以及PCB布局1.正压降压(15V转12V)2.正压降负压(15V转-12V) Chapter2 使用tps5430制作正负DC-DC降压电源,tps7a47和tps7a33制…...
【LeetCode 面试经典150题】45. Jump Game II 跳跃游戏II
45. Jump Game II 题目大意 You are given a 0-indexed array of integers nums of length n. You are initially positioned at nums[0]. Each element nums[i] represents the maximum length of a forward jump from index i. In other words, if you are at nums[i], yo…...

RustDesk连接客户端提示key不匹配 Key Mismatch无法连接(已解决)
环境: RustDesk1.1.9 服务端docker部署 问题描述: RustDesk连接客户端提示key不匹配 Key Mismatch无法连接 解决方案: 1.docker部署RustDesk服务检查配置 networks:rustdesk-net:external: falsevolumes:hbbr:hbbs:services:hbbs:container_name: rustdesk-hbbsport…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...