当前位置: 首页 > 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…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...