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

【zookeeper】zookeeper监控指标查看

zookeeper 监控指标

日常工作中,我们有时候需要对zookeeper集群的状态进行检查,下面分享一些常用的方法。
zookeeper获取监控指标已知的有两种方式:

  • 通过zookeeper自带的四字命令 (four letter words command )获取各种各样的监控指标
  • 通过JMX Client连接zookeeer对外提供的MBean来 获取监控指标 (需要修改启动脚本,使其支持远程JMX连接)

上述两种方式获取的指标大体上一样的。

常用的四字命令

下面罗列出来了能获取到监控指标的常用命令:
zookeeper的四字命令zookeeper的四字命令是指它们的命令长度都是4个英文字母。运维人员可以在不使用zookeeper客户端命令的前提下,简单而便捷地使用四字命令来查看zookeeper当前的状态等信息。

  • stat 查看状态信息(来查看哪个节点被选择作为follower或者leader)
  • ruok 查看zookeeper是否启动(若回复imok表示已经启动)
  • dump 列出没有处理的会话,临时节点
  • conf 查看服务器配置信息
  • cons 显示连接到服务端的信息(列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息)
  • envi 显示环境变量信息(区别于 conf 命令)
  • mntr 查看zk的健康信息
  • wchs 列出服务器 watch 的详细信息
  • wchc 通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。 ·
  • wchp 通过path路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。
  • crst 重置连接状态,重置关于链接/session的统计信息
  • srst 重置zookeeper服务的状态。
  • srvr 服务的一些状态信息,和stat有一些信息重合。

常用的四字命令测试

正常使用前提

要使用以上的四字命令,需要在zookeeper的配置里面添加以下参数4lw.commands.whitelist=*,添加后重启所有命令就可以使用了,不然会报如下的错误。

# 首先要安装nc服务
[root@k8s-m1 bin]# yum install nc -y
[root@k8s-m1 bin]# echo ruok |nc localhost 2181
ruok is not executed because it is not in the whitelist.

stat

可以查看一些状态信息和连接信息,包括本节点角色,客户端连接情况等:

[root@k8s-m1 bin]# echo stat |nc localhost 2181
Zookeeper version: 3.7.1-a2fb57c55f8e59cdd76c34b357ad5181df1258d5, built on 2022-05-07 06:45 UTC
Clients:/127.0.0.1:33254[0](queued=0,recved=1,sent=0)Latency min/avg/max: 0/0.0/0
Received: 2
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x300000008
Mode: follower
Node count: 10

ruok

ruok 查看zookeeper是否启动

[root@k8s-m1 bin]# echo ruok |nc localhost 2181
imok[root@k8s-m1 bin]#

dump

列出所有等待队列中的会话和临时节点的信息。

[root@k8s-m1 bin]# echo dump |nc localhost 2181
SessionTracker dump:
Global Sessions(2):
0x200267383e50001       30000ms
0x300267355120000       30000ms
ephemeral nodes dump:
Sessions with Ephemerals (0):
Connections dump:
Connections Sets (1)/(1):
1 expire at Fri Sep 01 10:35:47 CST 2023:ip: /127.0.0.1:34502 sessionId: 0x0

conf

能够获取到zookeeper的配置信息,包括客户端端口clientPort;数据以及日志路径;间隔单位时间;单台server与单个client端的连接数限制;超时时间minSessionTimeout、maxSessionTimeout等。

Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许follower在initLimit时间内完成这个工作。

在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。

[root@k8s-m1 bin]# echo conf |nc localhost 2181
clientPort=2181
secureClientPort=-1
dataDir=/zookeeperData/version-2
dataDirSize=402653232
dataLogDir=/zookeeperDataLog/version-2
dataLogSize=899
tickTime=2000
maxClientCnxns=1000
minSessionTimeout=30000
maxSessionTimeout=60000
clientPortListenBacklog=-1
serverId=1
initLimit=10
syncLimit=5
electionAlg=3
electionPort=3888
quorumPort=2888
peerType=0
membership: 
server.1=192.168.2.140:2888:3888:participant
server.2=192.168.2.141:2888:3888:participant
server.3=192.168.2.142:2888:3888:participant

cons

显示连接到服务端的信息(列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息)
[root@k8s-m1 bin]# echo cons |nc localhost 2181
/127.0.0.1:511040
我这测试环境没有其他程序连接使用。

具体使用中更多详细信息的参数描述:
  • 连接信息的总览,
  • 连接ip
  • 端口号
  • 该连接的发包数
  • 该连接的收包数
  • 连接的session Id
  • 最后操作方式/命令
  • 连接的时间戳
  • 超时时间(未确认)
  • 最后的zxid
  • 最后的响应时间戳
  • 连接的时间延时信息

envi

显示环境变量信息(区别于 conf 命令)

[root@k8s-m1 bin]# echo envi  |nc localhost 2181
Environment:
zookeeper.version=3.7.1-a2fb57c55f8e59cdd76c34b357ad5181df1258d5, built on 2022-05-07 06:45 UTC
host.name=k8s-m1
java.version=1.8.0_65
java.vendor=Oracle Corporation
java.home=/opt/jdk1.8.0_65/jre
java.class.path=/opt/apache-zookeeper-3.7.1-bin/bin/../zookeeper-server/target/classes:/opt/apache-zookeeper-3.7.1-bin/bin/../build/classes:/opt/apache-zookeeper-3.7.1-bin/bin/../zookeeper-server/target/lib/*.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../build/lib/*.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/zookeeper-prometheus-metrics-3.7.1.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/zookeeper-jute-3.7.1.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/zookeeper-3.7.1.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/snappy-java-1.1.7.7.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/slf4j-reload4j-1.7.35.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/slf4j-api-1.7.35.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/simpleclient_servlet-0.9.0.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/simpleclient_hotspot-0.9.0.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/simpleclient_common-0.9.0.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/simpleclient-0.9.0.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/reload4j-1.2.19.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/netty-transport-native-unix-common-4.1.76.Final.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/netty-transport-native-epoll-4.1.76.Final.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/netty-transport-classes-epoll-4.1.76.Final.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/netty-transport-4.1.76.Final.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/netty-resolver-4.1.76.Final.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/netty-handler-4.1.76.Final.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/netty-common-4.1.76.Final.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/netty-codec-4.1.76.Final.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/netty-buffer-4.1.76.Final.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/metrics-core-4.1.12.1.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jline-2.14.6.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jetty-util-ajax-9.4.43.v20210629.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jetty-util-9.4.43.v20210629.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jetty-servlet-9.4.43.v20210629.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jetty-server-9.4.43.v20210629.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jetty-security-9.4.43.v20210629.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jetty-io-9.4.43.v20210629.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jetty-http-9.4.43.v20210629.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jackson-databind-2.13.2.1.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jackson-core-2.13.2.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/jackson-annotations-2.13.2.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/commons-cli-1.4.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../lib/audience-annotations-0.12.0.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../zookeeper-*.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/opt/apache-zookeeper-3.7.1-bin/bin/../conf:
java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.io.tmpdir=/tmp
java.compiler=<NA>
os.name=Linux
os.arch=amd64
os.version=3.10.0-957.el7.x86_64
user.name=root
user.home=/root
user.dir=/
os.memory.free=96MB
os.memory.max=889MB
os.memory.total=119MB
参数描述
  • 当前server的环境信息:
  • 版本信息
  • 主机的host
  • jvm相关参数:version,classpath,lib等等
  • os相关参数:name,version等等
  • 当前host用户信息:name,dir等等

mntr

查看zk的健康信息

[root@k8s-m1 bin]# echo mntr  |nc localhost 2181|more
zk_version      3.7.1-a2fb57c55f8e59cdd76c34b357ad5181df1258d5, built on 2022-05-07 06:45 UTC
zk_server_state follower
zk_peer_state   following - broadcast
zk_ephemerals_count     0
zk_num_alive_connections        1
zk_avg_latency  0.0
zk_outstanding_requests 0
zk_znode_count  10
zk_global_sessions      1
zk_non_mtls_remote_conn_count   0
zk_last_client_response_size    -1
zk_packets_sent 14
zk_packets_received     13
zk_max_client_response_size     -1
zk_connection_drop_probability  0.0
zk_watch_count  0
zk_auth_failed_count  
......
参数描述:
  • 版本
  • 延时
  • 收包
  • 发包
  • 连接数
  • 未完成客户端请求数
  • leader/follower 状态
  • znode 数
  • watch 数
  • 临时节点数
  • 近似数据大小 应该是一个总和的值
  • 打开文件描述符 数
  • 最大文件描述符 数
  • fllower数等等

wchs:

列出服务器 watch 的详细信息,包括有watch path的连接数 以及watch的path数 和 watcher数

[root@k8s-m1 bin]# echo wchs |nc localhost 2181
0 connections watching 0 paths
Total watches:0

wchc

通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。 ·

[root@k8s-m1 bin]# echo wchc  |nc localhost 2181

wchp

通过path路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。

[root@k8s-m1 bin]# echo wchp  |nc localhost 2181

crst:

重置连接状态,重置关于链接/session的统计信息,是一个execute操作 不是一个select操作,执行后返回一个状态信息:

[root@k8s-m1 bin]# echo crst  |nc localhost 2181
Connection stats reset.
[root@k8s-m1 bin]# 

srst:

同样是一个execute操作而不是select,重置server状态:

[root@k8s-m1 bin]# echo srst  |nc localhost 2181
Server stats reset.
[root@k8s-m1 bin]# 

srvr:

服务的一些状态信息,和stat有一些信息重合。

[root@k8s-m1 bin]# echo srvr  |nc localhost 2181
Zookeeper version: 3.7.1-a2fb57c55f8e59cdd76c34b357ad5181df1258d5, built on 2022-05-07 06:45 UTC
Latency min/avg/max: 0/0.0/0
Received: 1
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x300000009
Mode: follower
Node count: 10
[root@k8s-m1 bin]#
参数描述:
  • server的简要信息:
  • 版本
  • 延时
  • 收包数
  • 发包数
  • 连接数
  • 状态等信息

以上是基于3.7.1版本的zookeeper 的四字命令的一些监控指标,我们可以通过这些命令查看当前集群的一些状态。

更多关于zookeeper的知识分享,请前往博客主页。编写过程中,能力有限难免出现差错,敬请指正

相关文章:

【zookeeper】zookeeper监控指标查看

zookeeper 监控指标 日常工作中&#xff0c;我们有时候需要对zookeeper集群的状态进行检查&#xff0c;下面分享一些常用的方法。 zookeeper获取监控指标已知的有两种方式&#xff1a; 通过zookeeper自带的四字命令 &#xff08;four letter words command &#xff09;获取各…...

Flink 如何处理反压?

分析&回答 什么是反压&#xff08;backpressure&#xff09; 反压通常是从某个节点传导至数据源并降低数据源&#xff08;比如 Kafka consumer&#xff09;的摄入速率。反压意味着数据管道中某个节点成为瓶颈&#xff0c;处理速率跟不上上游发送数据的速率&#xff0c;而…...

JAVA基础-JDBC

本博客记录JAVA基础JDBC部分的学习内容 JDBC基本概念 JDBC : JAVA链接数据库&#xff0c;是JAVA链接数据库的技术的统称&#xff0c;包含如下两部分&#xff1a; 1. JAVA提供的JDBC规范&#xff08;即各种数据库接口&#xff09;存储在java.sql 和 javax.sql中的api 2. 各个数…...

嵌入式学习笔记(1)ARM的编程模式和7种工作模式

ARM提供的指令集 ARM态-ARM指令集&#xff08;32-bit&#xff09; Thumb态-Thumb指令集&#xff08;16-bit&#xff09; Thumb2态-Thumb2指令集&#xff08;16 & 32 bit&#xff09; Thumb指令集是对ARM指令集的一个子集重新编码得到的&#xff0c;指令长度为16位。通常在…...

[NSSCTF Round #15NSSCTF 2nd]——Web、Misc、Crypto方向 详细Writeup

前言 虽然师傅们已经尽力了&#xff0c;但是没拿到前十有点可惜&#xff0c;题很好吃&#xff0c;明年再来&#xff08;&#xff09; 关于wp&#xff1a; 因为我没有学过misc&#xff0c;但是比赛的时候还是运气好出了三道&#xff0c;所以wp就只把做题步骤给出&#xff0c;也…...

Metasploit“MSF”连接postgresql时因排序规则版本不匹配导致无法连接

一、问题 更新Kali之后使用Metasploit时出现一个问题&#xff0c;连接postgresql时因排序规则版本不匹配导致无法连接 警告: database "msf" has a collation version mismatch DETAIL: The database was created using collation version 2.36, but the operati…...

CCF CSP题解:矩阵运算(202305-2)

链接和思路 OJ链接&#xff1a;传送门 本题要求计算1个公式&#xff1a; ( W ⋅ ( Q K T ) ) V \left(\mathbf{W} \cdot (\mathbf{Q} \times \mathbf{K}^{T})\right) \times \mathbf{V} (W⋅(QKT))V 其中&#xff0c; Q \mathbf{Q} Q、 K \mathbf{K} K和 V \mathbf{V} V均…...

划分字母区间【贪心算法】

划分字母区间 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。…...

低代码的探索之路

Gartner发布报告指出&#xff0c;2023年全球低代码开发平台市场规模将达到345亿美元&#xff0c;比2022年增长20%。 目前&#xff0c;国内外已经有许多低代码平台&#xff0c;包括OutSystems、Mendix、Appian、Microsoft Power App等。这些平台提供了丰富的功能和工具&#xff…...

easyUI combobox不可手动输入和禁用

combobox //下拉可用 $("#selectId").combobox(enable); //下拉不可用 $("#selectId").combobox(disable); //该元素可用 $("#selectId").combobox({ disabled: false }); //该元素不可用 $("#selectId").combobox({ disabled: tru…...

RV64和ARM64栈结构差异

RV64和ARM64栈结构差异 1 RV64和ARM64栈结构差异示意图1.1 RV64和ARM64寄存器介绍1.1.1 RV64寄存器1.1.2 ARM64寄存器 1.2 RV64和ARM64栈结构差异示意图 2 RV64和ARM64栈使用示例2.1 测试的程序2.2 RV64反汇编的汇编程序2.3 ARM64反汇编的汇编程序2.4 RV64和ARM64测试程序的栈结…...

将 Python 与 RStudio IDE 配合使用(R与Python系列第一篇)

目录 前言&#xff1a; 1-安装reticulate包 2-安装Python 3-选择Python的默认版本&#xff08;配置Python环境&#xff09; 4-使用Python 4.1 运行一个简单的Python脚本 4.2 在RStudio上安装Python模块 4.3 在 R 中调用 Python 模块 4.4 在RStudio上调用Python脚本写的…...

数据库访问性能优化

目录 IO性能分析数据库性能优化漏斗法则1、减少数据访问&#xff08;减少磁盘访问&#xff09;(1) 正确的创建并使用索引索引生效场景索引失效场景判断索引是否生效--执行计划 2、返回更少数据&#xff08;减少网络传输或磁盘访问&#xff09;(1) 数据分页处理(减少行数)客户端…...

vue 预览 有token验证的 doc、docx、pdf、xlsx、csv、图片 并下载

预览 doc我也不会 //docx <div v-if"previewType docx" ref"iframeDom" style"border: none; width: 100%; height: 100%"></div> import { renderAsync } from "docx-preview"; let iframeDom: any ref(); axios({url…...

WPF数据视图

将集合绑定到ItemsControl控件时&#xff0c;会不加通告的在后台创建数据视图——位于数据源和绑定的控件之间。数据视图是进入数据源的窗口&#xff0c;可以跟踪当前项&#xff0c;并且支持各种功能&#xff0c;如排序、过滤、分组。 这些功能和数据对象本身是相互独立的&…...

C++ new/delete 与 malloc/free 的区别?

new/delete 与 malloc/free 的区别&#xff1f; 分配内存的位置 malloc是从堆上动态分配内存new是从自由存储区为对象动态分配内存。自由存储区的位置取决于operator new的实现。自由存储区不仅可以为堆&#xff0c;还可以是静态存储区&#xff0c;这都看operator new在哪里为…...

【数学建模】常微分,偏微分方程

1.常微分方程 普通边界 已知t0时刻的初值 ode45() 龙格-库塔法 一阶&#xff0c;高阶都一样 如下: s(1) y , s(2)y s(3) x , s(4)x //匿名函数 下为方程组 核心函数 s_chuzhi [0;0;0;0]; //初值 分别两个位移和速度的初值 t0 0:0.2:180; f (t,s)[s(2);(…...

浙大数据结构之09-排序1 排序

题目详情&#xff1a; 给定N个&#xff08;长整型范围内的&#xff09;整数&#xff0c;要求输出从小到大排序后的结果。 本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下&#xff1a; 数据1&#xff1a;只有1个元素&#xff1b;数据2&#xf…...

Pydantic 学习随笔

这里是零散的记录一些学习过程中随机的理解&#xff0c;因此这里的记录不成体系。如果是想学习 Pydantic 建议看官方文档&#xff0c;写的很详细并且成体系。如果有问题需要交流&#xff0c;欢迎私信或者评论。 siwa 报 500 Pydantic 可以和 siwa 结合使用&#xff0c;这样既…...

11 mysql float/double/decimal 的数据存储

前言 这里主要是 由于之前的一个 datetime 存储的时间 导致的问题的衍生出来的探究 探究的主要内容为 int 类类型的存储, 浮点类类型的存储, char 类类型的存储, blob 类类型的存储, enum/json/set/bit 类类型的存储 本文主要 的相关内容是 float, decimal 类类型的相关数据…...

Ubuntu20.04下HPC_SDK加速库安装避坑指南(附OpenACC测试代码)

Ubuntu 20.04下HPC_SDK加速库深度实战指南&#xff1a;从安装到OpenACC性能调优 在当今高性能计算领域&#xff0c;GPU加速已成为提升计算效率的关键技术。NVIDIA HPC SDK作为一套全面的开发工具包&#xff0c;为开发者提供了从编译器到性能分析的全套解决方案。本文将带您深入…...

Windows下OpenClaw安装全攻略:对接ollama的GLM-4.7-Flash模型

Windows下OpenClaw安装全攻略&#xff1a;对接ollama的GLM-4.7-Flash模型 1. 为什么选择OpenClawGLM-4.7-Flash组合 去年我在尝试自动化办公流程时&#xff0c;发现市面上的RPA工具要么功能臃肿&#xff0c;要么需要复杂的图形化编程。直到遇见OpenClaw这个开源智能体框架&am…...

RRT*算法进阶:从理论证明到PyTorch工程化调优与前沿探索

1. RRT*算法核心原理与数学证明 RRT*&#xff08;快速探索随机树星&#xff09;作为路径规划领域的里程碑算法&#xff0c;其核心价值在于同时满足概率完备性和渐进最优性。我第一次在仓储机器人项目中使用它时&#xff0c;发现传统RRT算法规划的路径总是像醉汉走路一样曲折&am…...

从拒稿到录用:一个生物医学工程研究生的UMB投稿实战复盘(含完整时间线与避坑点)

从拒稿到录用&#xff1a;一个生物医学工程研究生的UMB投稿实战复盘 第一次收到CIBM编辑部的秒拒邮件时&#xff0c;我正在实验室熬夜跑数据。屏幕上的"reject"字样像一盆冷水浇下来——这个被我寄予厚望的期刊&#xff0c;从投稿到拒稿只用了17天。作为生物医学工程…...

API平台选型指南:从RapidAPI、聚合数据到幂简集成的实战考量

1. 为什么API平台选型如此重要&#xff1f; 想象一下你正在开发一款智能天气应用&#xff0c;需要接入实时气象数据、空气质量指数和灾害预警接口。如果每个API都要单独注册账号、申请密钥、阅读不同风格的文档&#xff0c;光是集成工作就可能耗掉两周时间。这就是为什么选择一…...

文脉定序系统处理多语言语义排序实战:跨语言检索效果展示

文脉定序系统处理多语言语义排序实战&#xff1a;跨语言检索效果展示 你有没有遇到过这样的烦恼&#xff1f;想找一份关于“机器学习”的日文资料&#xff0c;却只能用中文关键词去搜&#xff0c;结果要么搜不到&#xff0c;要么搜出来的东西完全不对路。或者&#xff0c;你手…...

BilibiliDown完整指南:三步掌握B站视频批量下载技巧

BilibiliDown完整指南&#xff1a;三步掌握B站视频批量下载技巧 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/…...

避开这些坑!海康威视嵌入式HR面常见‘送命题’与应答策略(附真实案例)

海康威视嵌入式HR面试避坑指南&#xff1a;6类高频"送命题"拆解与实战话术 在技术岗位的招聘流程中&#xff0c;HR面试往往是最容易被轻视却暗藏最多陷阱的环节。许多嵌入式开发者在技术面表现出色&#xff0c;却在看似轻松的HR面中意外折戟。通过对海康威视近三年嵌…...

STM32F407+UCOSIII实战:手把手教你从零搭建一个能走会避障的六足机器人(附完整源码/PCB/Solidworks图纸)

STM32F407UCOSIII实战&#xff1a;从零构建智能六足机器人全流程解析 六足机器人作为仿生机器人中的经典形态&#xff0c;其稳定性和地形适应能力远超轮式与四足结构。本文将带你完整实现一个基于STM32F407和UCOSIII的智能六足机器人&#xff0c;涵盖机械设计、电路开发、运动…...

高效音频获取与资源管理:喜马拉雅下载工具全解析

高效音频获取与资源管理&#xff1a;喜马拉雅下载工具全解析 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 在数字内容消费时代&a…...