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

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.架构

  1. 客户端-服务器模型:ZooKeeper 遵循客户端-服务器模型,客户端可以向任何服务器节点发起请求。
  2. 数据模型:采用类似文件系统的树形结构来存储数据,每个节点称为 ZNode。
  3. 请求处理:所有写请求都通过一个主服务器(Leader)来保证数据的一致性,而读请求可以由任何服务器(Follower 或 Observer)处理。

在这里插入图片描述

3.集群角色

  1. Leader:负责处理所有更新请求,保证集群数据的一致性。在任何给定时间,一个 ZooKeeper 集群只有一个 Leader。
  2. Follower:处理客户端的非写入请求,并参与 Leader 选举和数据同步过程。
  3. 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-01192.168.249.141zk 节点
zk-cluster-02192.168.249.142zk 节点
zk-cluster-03192.168.249.143zk 节点
zk-cluster-04192.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
  • 浏览器访问:
  1. http://192.168.249.144:9090/status

  2. 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&#xff09;主机名2&#xff09;Hosts文件3&#xff09;关闭防火墙4&#xff09;JDK 安装部署 3.单机部署1&#xff09;下载和解压2&#xff09;配置文件3&…...

OceanBase入选Gartner®云数据库管理系统魔力象限“荣誉提及”

近日&#xff0c;全球IT市场研究和咨询公司Gartner发布最新报告《Magic Quadrant™ for Cloud Database Management Systems》&#xff08;全球云数据库管理系统魔力象限&#xff09;。全自研分布式数据库 OceanBase 入选“荣誉提及”&#xff0c;2022 年推出的云数据库 OB Clo…...

Oracle 19C DBA管理常用命令

登入数据库主机&#xff0c;查看 CRS 资源状态&#xff1a; 集群资源启动完毕后&#xff0c;在任意一节点上利用crsctl查看集群状态。 查看&#xff1a;/u01/app/19c/grid/bin/crsctl status res -t 集群资源管理命令&#xff1a; 启动&#xff1a;/u01/app/19c/grid/bin/cr…...

BIO和NIO编程(待完善)

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

基于RocketMQ实现分布式事务

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

TikTok社会学:短视频如何塑造社会认知?

TikTok&#xff0c;作为一款全球性的短视频平台&#xff0c;正在深刻地影响着用户的社会认知。在这个数字时代&#xff0c;短视频不仅仅是娱乐的载体&#xff0c;更是塑造和反映社会认知的一面镜子。本文将深入探讨TikTok是如何通过短视频影响社会认知&#xff0c;以及这种影响…...

小秋SLAM入门实战深度学习所有文章汇总

如何用python代码实现虚拟拖拽 MediaPipe Losses 损失函数 深度学习激活函数Activation Functions 【深度学习Regularization正则化】 深度学习: 数据扩充 (Data Augmentation) 【keras-yolo3】 【YOLO源码解读】 caffe源码解读系列 Python中的异常处理 精确率、精度&#xff…...

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 语句 精选示例总结参考资料 概念 循环结构是编程中常见的控制结构&#xff0c;它允许我们重复执行一段代码&#xff0c;直到满足特定条件为止。 在 Mysql 中&#xff0c;常用来实现各种复杂…...

【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按钮悬浮&#xff0c;鼠标悬浮在按钮上的状态&#xff0c;按钮颜色 */QPushButto…...

MySQL数据库高级SQL语句及存储过程

目录 一、高级SQL语句 &#xff08;一&#xff09;case语句 1.语法定义 2.示例 &#xff08;二&#xff09;空值(NULL) 和 无值( ) 1.区别 2.示例 &#xff08;1&#xff09;字符长度 &#xff08;2&#xff09;判断方法 ① 空值(NULL) ② 无值( ) &#xff08;3…...

使用idea构建父子类springboot项目教程

第一步创建一个父类java项目&#xff08;最外层java项目&#xff09; 1.点击File 然后点击new 再点击Project 2.点击Maven 配置Java版本 再点击next 3.GroupId&#xff1a;包结构&#xff0c;ArtifactId&#xff1a;项目名称&#xff0c;填写完&#xff0c;点击next 4.点击…...

TCP_可靠数据传输原理

引言 在网络通信中&#xff0c;TCP是确保数据可靠传输的关键协议。但在我们深入研究TCP拥塞控制技术之前&#xff0c;让我们先探索可靠数据传输的原理&#xff0c;特别是TCP头部中一些重要字段的作用。 网络层提供了点对点的通信服务&#xff0c;努力交付数据报&#xff0c;但…...

Python随机点名

python随机点名 # 生成 0 ~ 9 之间的随机数 # 导入 random(随机数) 模块 import random print(random.randint(0,9)) 执行以上代码输出结果为: 4 尝试一下 以上实例我们使用了 random 模块的 randint() 函数来生成随机数&#xff0c;你每次执行后都返回不同的数字&a…...

HarmonyOS4.0系统性深入开发07创建一个ArkTS卡片

创建一个ArkTS卡片 在已有的应用工程中&#xff0c;创建ArkTS卡片&#xff0c;具体操作方式如下。 创建卡片。 根据实际业务场景&#xff0c;选择一个卡片模板。 在选择卡片的开发语言类型&#xff08;Language&#xff09;时&#xff0c;选择ArkTS选项&#xff0c;然后单…...

胡润研究院发布《2023胡润中国最具历史文化底蕴品牌榜》

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

MFC编程技巧与范例详解01

目录 1、MFC概述 &#xff08;1&#xff09;、MFC为什么不用C语言使用C &#xff08;2&#xff09;、MFC的开发模型文档-视图模型 &#xff08;3&#xff09;、一个完善的MFC程序应该包括 &#xff08;4&#xff09;、MFC常用的类 2、MFC的特性 &#xff08;1&#xff09…...

TPS5430正负电源模块

TPS5430正负电源模块 Chapter1 TPS5430正负电源模块一、芯片重要参数二、tps5430参考电路讲解以及PCB布局1.正压降压&#xff08;15V转12V&#xff09;2.正压降负压&#xff08;15V转-12V&#xff09; Chapter2 使用tps5430制作正负DC-DC降压电源&#xff0c;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…...

puppeteer入门指南

一、简介 Puppeteer 是一个 Node 库&#xff0c;它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或 Chrome。 二、使用 1、安装nodejs最新版 2、安装puppeteer-core npm install puppeteer-core 3、编写main.js const puppeteer require(puppeteer-core);(as…...

vue3按钮点击频率控制

现有一个按钮&#xff0c;如下图 点击时 再次点击 刷新窗口再次点击 刷新窗口依然可以实现点击频率控制。 代码实现&#xff1a; <template><!--<el-config-provider :locale"locale"><router-view/></el-config-provider>--><el…...

(一)Matlab数值计算基础

目录 1.2Matlab中的数据类型 1.2Matlab中的数据类型 逻辑型 逻辑型变量值为1或0字符型 MATLAB的字符型输入使用单引号括起来&#xff0c;字符串存储为字符数组&#xff0c;每个元素占一个ASCII字符数值型 数值型分为整型&#xff08;int&#xff09;、单精度浮点型&#xff0…...

《MySQL系列-InnoDB引擎02》InnoDB存储引擎介绍

文章目录 第二章 InnoDB存储引擎1 InnoDB存储引擎概述2 InnoDB存储引擎的版本3 InnoDB体系架构3.1 后台线程3.2 内存 4 Checkpoint技术5 Master Thread 工作方式5.1 InnoDB 1.0.x版本之前的Master Thread5.2 InnoDB 1.2.x版本之前的Master Thread5.3 InnoDB 1.2.x版本的Master …...

单片机大小端模式

单片机大小端模式 参考链接 单片机干货-什么是大小端_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Ju4y1M7Tx/?spm_id_from333.337.search-card.all.click&vd_sourcee821a225c7ba4a7b85e5aa6d013ac92e 特此记录 anlog 2024年1月2日...

Codeforces Good Bye 2023 A~E

A.2023(思维) 题意&#xff1a; 有一个序列 A a 1 , a 2 , . . . , a n k A a_1, a_2, ..., a_{n k} Aa1​,a2​,...,ank​&#xff0c;且这个序列满足 ∏ i 1 n k a i 2023 \prod\limits_{i 1}^{n k}a_i 2023 i1∏nk​ai​2023&#xff0c;而这个序列中的 k k k个…...

【蓝桥杯】比赛大纲整理

枚举[1-3] 排序 &#xff08;1&#xff09;冒泡排序[2] &#xff08;2&#xff09;选择排序[3] &#xff08;3&#xff09;插入排序[3] 搜索(bfs, dfs)[1-5] 贪心[1-5] 模拟[1-3] 二分[2-5] DP(普通一维问题)[3-5] 高精度[1-5] 数据结构 &#xff08;1&#xff09;栈[2-4]&…...

探索 CodeWave低代码技术的魅力与应用

目录 前言1 低代码平台2 CodeWave简介3 CodeWave 的独特之处3.1 高保真还原交互视觉需求3.2 擅长复杂应用开发3.3 支持应用导出&独立部署3.4 金融级安全要求3.5 可集成性高3.6 可拓展性强 4 平台架构和核心功能4.1 数据模型设计4.2 页面设计4.3 逻辑设计4.4 流程设计4.5 接…...

《2023我的编程之旅》

一、背景 自从踏入编程的世界&#xff0c;我就像乘坐了一辆无法停下的列车&#xff0c;穿行在数据的丛林中&#xff0c;寻找解决问题的答案。编程不仅是我的职业&#xff0c;更是我表达自我、解决问题的工具。在这篇文章中&#xff0c;我将分享一段令人印象深刻的实战经历&…...

C++ 二进制图片的读取和blob插入mysql_stmt_init—新年第一课

关于二进制图片的读取和BLOB插入一共包含五步 第一步&#xff1a;初始化 MYSQL_STMT* stmt mysql_stmt_init(&mysql); 第二步&#xff1a;预处理sql语句 mysql_stmt_prepare(stmt,sql,sqllen); 第三步&#xff1a;绑定字段 mysql_stmt_bind_param(stmt,bind); 第四…...

全国最大的源码平台/seo博客教程

Express 框架入门&#xff08;二&#xff09;Cookie、session、应用程序生成器一、Cookie 简介二、Cookie 特点三、Cookie 的使用四、加密Cookie五、cookie 综合案例六、Session 简单介绍七、Session 的工作流程八、express-session 的使用九、 express-session 的常用参数十、…...

贵阳个人做网站/国内seo排名

如何使用&#xff1f; 请尽可能用比较新的 Composer 版本。 使用 Composer 镜像加速有两种选项&#xff1a; 选项一&#xff1a;全局配置&#xff0c;这样所有项目都能惠及&#xff08;推荐&#xff09;&#xff1b; 选项二&#xff1a;单独项目配置&#xff1b; 选项一、全局…...

做视频网站 版权怎么解决/南通企业网站制作

简介 虚树&#xff0c;顾名思义就是不真实的树。 它往往出现在一类树形动态规划问题中。 换句话说&#xff0c;虚树实际就是为了解决一类树形动态规划问题而诞生的&#xff01; 我们从一道经典的虚树题目入手 [SDOI2011]消耗战 链接&#xff1a;https://www.luogu.org/problemn…...

深圳app开发公司哪家比较靠谱/西安关键词优化软件

计算(calc.cpp) 【问题描述】 小明在你的帮助下&#xff0c;破密了Ferrari设的密码门&#xff0c;正要往前走&#xff0c;突然又出现了一个密码门&#xff0c;门上有一个算式&#xff0c;其中只有“(”&#xff0c;“)”&#xff0c;“0-9”&#xff0c;“”&#xff0c;“-”&…...

wordpress 联系地图/百度搜索高级搜索技巧

最近博客更新的少了&#xff0c;相对而言&#xff0c;我在自己的个人公众号里还是挺活跃的&#xff0c;大家可以扫描旁边的二维码&#xff0c;或者微信搜索公众号&#xff1a;“编程一生”加关注。 在分布式的年代&#xff0c;一个应用需要部署到多台服务器上。那么要查看日志文…...

芜湖酒店网站建设/枸橼酸西地那非片的作用及功效

1. 先给手机刷root权限&#xff0c;执行命令&#xff1a;adb root adb remountok后&#xff1a;把tcpdump放到c盘根目录下&#xff1a;C:\2. 执行命令&#xff1a;adb push c:/tcpdump /data/local/tcpdump&#xff08;这个命令是把tcpdump拷到手机中去 &#xff09;3. adb sh…...