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

全面Kafka监控方案:从配置到指标

文章目录

  • 1.1.监控配置
  • 1.2.监控工具
  • 1.3.性能指标
    • 系统相关指标
    • GC相关指标
    • JVM相关指标
    • Topic相关指标
    • Broker相关指标
  • 1.4.性能指标说明
  • 1.5.重要指标说明

1.1.监控配置

开启JMX服务端口:kafka基本分为broker、producer、consumer三个子项,每一项的启动都需要用到 $KAFKA_HOME/bin/kafka-run-class.sh 脚本,在该脚本中,存在以下语句:

if ...
KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false"fi
if ...KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT "
Fi

​ 在启动kafka的过程中,只要指定 JMX_PORT 的值,即可对broker、producer、consumer进行监控。目前有两种方法,在$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/bin/kafka-console-consumer.sh $KAFKA_HOME/bin/kafka-console producer.sh三个脚本中分别添加 $JMX_PORT=XXXX 语句,但是只适用于使用console方式对topic进行使用的情况。
修改$KAFKA_HOME/bin/kafka-run-class.sh 脚本中的上述语句,使其端口随机变化,可以通过 ps -ef |grep kafka 命令来获取随机的端口号,来进行监控。

1.2.监控工具

Prometheus监控Kafka

  1. 如可以采用docker部署
kafka-exporter:
docker run -ti -d --rm -p 9308:9308 danielqsj/kafka-exporter --kafka.server=192.168.0.4:9092
监控项名称阈值说明使用的公式
Kafka的Brokers在线1m !=1严重count(kafka_server_replicamanager_leadercount{job=~"$job"})
Kafka集群中副本处于同步失败或失效状态的分区数>0严重sum(kafka_topic_partition_under_replicated_
partition{topic=~"$topic", namespace=~"$kubernetes_namespace"})
Kafka集群中控制器的数量!=1严重sum(kafka_controller_kafkacontroller_activecontrollercount{job=~"$job"})
Kafka离线分区数>0严重sum(kafka_controller_kafkacontroller_offlinepartitionscount{job=~"$job"})
Kafka每秒入网络流量>=150中度avg_over_time(kafka_server_BrokerTopicMetrics_
OneMinuteRate{name="BytesInPerSec",topic=""}[1m]) / 1024 /1024
Kafka请求处理程序线程空闲的平均时间百分比<= 0.3中度avg_over_time(kafka_server_KafkaRequestHandlerPool_
OneMinuteRate{name="RequestHandlerAvgIdlePercent",}[1m])

在这里插入图片描述
2. 在prometheus.yml出添加kafka配置

  - job_name: 'kafka_exporter'static_configs:- targets: ['$node1:9308']
  1. 重启prometheus加载。
  2. 在promethues的管理界面可以查看状态:
    在这里插入图片描述
  3. 然后配置grafana来展示图表效果。
  4. 告警监控项,如下表供参考:
时间百分比rcent",}[1m])
Kafka请求处理程序线程空闲的平均时间百分比<= 0.3中度avg_over_time(kafka_server
_KafkaRequestHandlerPool
_OneMinuteRate{name=“
RequestHandlerAvgIdlePercent”,}[1m])
Kafka网络处理器线程空闲的平均时间百分比<= 0.3中度avg_over_time(kafka_network_
SocketServer_Value{name=“
NetworkProcessorAvgIdlePercent”,}[1m])
Kafka已建立的连接数> 3000中度> 5000严重sum(avg_over_time(kafka_
server_socket_server_metrics_
connection_count{listener=“PLAINTEXT”,}
[1m])) by (instance,app)
Kafka每秒新建连接数> 100中度> 200 严重sum(avg_over_time(kafka_server
_socket_server_metrics_connection
_creation_rate[1m])) by (instance)
Kafka请求在请求队列中等待的时间>5000中度avg_over_time(kafka_networ
k_RequestMetrics_999thPercentile
{name=“RequestQueueTimeMs”,
request=“Produce”,}[1m])
Kafka_leader处理请求的时间>5000中度avg_over_time(kafka_network_
RequestMetrics_999thPercentile
{name=“LocalTimeMs”,request=“Produce”,}[1m])
Kafka请求等待follower的时间>1000中度avg_over_time(kafka_network_
RequestMetrics_999thPercentile
{name=“RemoteTimeMs”,request=“Produce”,}[1m])
Kafka请求在响应队列中等待的时间>1000中度avg_over_time(kafka_network_
RequestMetrics_999thPercentile
{name=“ResponseQueueTimeMs”,request=“Produce”,}[1m])
Kafka发送响应的时间>1000中度avg_over_time(kafka_network_RequestMetrics
_999thPercentile{name=“ResponseSendTimeMs”,
request=“Produce”,}[1m])
Kafka汇总传入消息速率> 200000中度avg_over_time(kafka_server_
BrokerTopicMetrics_OneMinuteRate
{name=“MessagesInPerSec”,topic=“”}[1m])
kafka消费滞后告警>1000sum(kafka_consumergroup
_lag{topic!=“sop_free_study_fix-student_wechat_detail”})
by (consumergroup, topic) > 1000
kafka-exporter停止< 1kafka_exporter_build_info
kafka server停止<1kafka_brokers
kafka监控topic实时生产速率>= 0sum(irate(kafka_topic_partition_current_
offset{topic !~ "__consumer_offsets
Kafka消费者端分区偏移量5m >= 0sum(delta(kafka_consumergroup_current
_offset[5m])/5) by (consumergroup, topic)
Kafka消费者组的当前主题分区偏移汇总sum(delta(kafka_consumergroup_current
_offset_sum[5m])/5) by (consumergroup, topic)
Kafka某个消费组消费延迟5m >100000中度sum(kafka_consumergroup_lag)
by (consumergroup,partition,topic)
Kafka某个消费者组在某个主题分区的近似滞后情况汇总sum(kafka_consumergroup_lag_sum)
by (consumergroup,partition,topic)
某个消费组成员kafka_consumergroup_
members{instance=“$instance”}
Kafka分区的位移量汇总sum(kafka_topic_partition_current_offset) by (partition,topic)
Kafka分区的同步副本数1m =0 中度sum(kafka_topic_partition_in_sync_replica)
Kafka旧主题分区偏移sum(kafka_topic_partition_oldest
_offset{topic=~“$topic”}) by (partition,topic)
Kafka主题分区的副本数1m <3中度sum(kafka_topic_partition
_replicas{topic=~“$topic”})
Kafka主题分区复制不足的分区数sum(kafka_topic_partition_under
_replicated_partition{topic=~“$topic”})
Kafka 总分区数5m >1000中度sum(kafka_topic_partitions) by(topic)

1.3.性能指标

系统相关指标

  1. 系统信息收集 java.lang:type=OperatingSystem
  2. Thread信息收集 java.lang:type=Threading
  3. 获取mmaped和direct空间
  4. 通过BufferPoolMXBean获取used、capacity、count

GC相关指标

  1. Young GC
    java.lang:type=GarbageCollector,name=G1 Young Generation
  2. Old GC
    java.lang:type=GarbageCollector,name=G1 Old Generation

JVM相关指标

通过MemoryMXBean获取JVM相关信息HeapMemoryUsage和NonHeapMemoryUsage;通过MemoryPoolMXBean获取其他JVM内存空间指标,例如:Metaspace、Codespace等

Topic相关指标

  1. Topic消息入站速率(Byte)
    kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec,topic=" + topic
  2. Topic消息出站速率(Byte)
    kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec,topic=" + topic
  3. Topic请求被拒速率
    kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec,topic=" + topic
  4. Topic失败拉去请求速率
    kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec,topic=" + topic;
  5. Topic发送请求失败速率
    kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=" + topic
  6. Topic消息入站速率(message)
    kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec,topic=" + topic

Broker相关指标

  1. Log flush rate and time
    kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs
  2. 同步失效的副本数
    kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions
  3. 消息入站速率(消息数)
    kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
  4. 消息入站速率(Byte)
    kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec
  5. 消息出站速率(Byte)
    kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec
  6. 请求被拒速率
    kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec
  7. 失败拉去请求速率
    kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec
  8. 发送请求失败速率
    kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec
  9. Leader副本数
    kafka.server:type=ReplicaManager,name=LeaderCount
  10. Partition数量
    kafka.server:type=ReplicaManager,name=PartitionCount
  11. 下线Partition数量
    kafka.controller:type=KafkaController,name=OfflinePartitionsCount
  12. Broker网络处理线程空闲率
    kafka.server:type=KafkaRequestHandlerPool,name=RequestHandlerAvgIdlePercent
  13. Leader选举比率
    kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs
  14. Unclean Leader选举比率
    kafka.controller:type=ControllerStats,name=UncleanLeaderElectionsPerSec
  15. Controller存活数量
    kafka.controller:type=KafkaController,name=ActiveControllerCount
  16. 请求速率
    kafka.network:type=RequestMetrics,name=RequestsPerSec,request=Produce
  17. Consumer拉取速率
    kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchConsumer
  18. Follower拉去速率
    kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchFollower
  19. Request total time
    kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce
  20. Consumer fetch total time
    kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchConsumer
  21. Follower fetch total time
    kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchFollower
  22. Time the follower fetch request waits in the request queue
    kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=FetchFollower
  23. Time the Consumer fetch request waits in the request queue
    kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=FetchConsumer
  24. Time the Produce fetch request waits in the request queue
    kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=Produce
  25. Broker I/O工作处理线程空闲率
    kafka.network:type=SocketServer,name=NetworkProcessorAvgIdlePercent
  26. ISR变化速率
    kafka.server:type=ReplicaManager,name=IsrShrinksPerSec

1.4.性能指标说明

指标单位具体含义
kafka.broker_offset offsetsbroker上当前消息的偏移量(offset)
kafka.consumer.bytes_inbytes/secondconsumer 字节率(bytes in rate)
kafka.consumer.delayed_requestsrequests延迟的 consumer 请求数
kafka.consumer.expires_per_secondevictions/second延迟 consumer 的请求到期(expiration)速率
kafka.consumer.fetch_raterequestsconsumer 向 broker 发送提取请求(fetch requests)的最低速率
kafka.consumer.kafka_commitswrites/second面向 Kafka 的 offset commits 速率
kafka.consumer.max_lagoffsets最大消费滞后(consumer lag)
kafka.consumer.messages_inmessages/secondconsumer 消息消费(consumption)的速率
kafka.consumer.zookeeper_commitswrites/second面向 ZooKeeper 的 offset commits 速率
kafka.consumer_lagoffsetsconsumer 和 broker 之间的消息滞后(lag)
kafka.consumer_offsetoffsetsconsumer 的当前消息偏移量(current message offset)
kafka.expires_secevictions/second延迟生产者(delayed producer)的请求到期(request expiration)速率
kafka.follower.expires_per_secondevictions/second关注者(followers)的请求到期(request expiration)速率
kafka.log.flush_rateflushes/second日志刷新速率
kafka.messages_inmessages传入(incoming)信息速率
kafka.net.bytes_inbytes/second传入(incoming)字节速率
kafka.net.bytes_outbytes/second传出(outgoing)字节速率
kafka.net.bytes_rejectedbytes/second被拒绝(rejected)的字节速率
kafka.producer.bytes_outbytes/secondproducer 字节输出速率
kafka.producer.delayed_requestsrequests延迟的 producer 请求数
kafka.producer.expires_per_secondsevictions/secondproducer 请求到期率
kafka.producer.io_waitnanosecondsProducer I/O 等待时间
kafka.producer.message_ratemessages/secondProducer 消息速率
kafka.producer.request_latency_avgmillisecondsProducer 平均请求延迟
kafka.producer.request_raterequests/secondproducer 每秒钟的请求数
kafka.producer.response_rateresponses/secondproducer 每秒钟的响应数
kafka.replication.isr_expandsnodes/second副本加入 ISR 池的速率
kafka.replication.isr_shrinksnodes/second副本离开 ISR 池的速率
kafka.replication.leader_electionsevents/second领导选举(Leader election)频率
kafka.replication.unclean_leader_electionsevents/secondUnclean 的领导选举(Leader election)频率
kafka.replication.under_replicated_partitions未使用的分区数
kafka.request.fetch.failedrequests客户端获取请求(fetch request)失败次数
kafka.request.fetch.failed_per_secondrequests/second每秒钟的客户端获取请求(fetch request)失败率
kafka.request.fetch.time.99percentilerequests/second获取请求(fetch request)时间的第 99 百分位的值
kafka.request.fetch.time.avgrequests/second获取请求(fetch request)时间的平均值
kafka.request.handler.avg.idle.pctfractions请求处理程序线程(request handler threads)的平均空闲时间占比
kafka.request.metadata.time.99percentilemilliseconds元数据(metadata)请求时间的第 99 百分位的值
kafka.request.metadata.time.avgmilliseconds元数据(metadata)请求时间的的平均值
kafka.request.offsets.time.99percentilemillisecondsoffset 请求时间的第 99 百分位的值
kafka.request.offsets.time.avgmillisecondsoffset 请求时间的平均值
kafka.request.produce.failedrequests失败的产品请求(produce requests)数
kafka.request.produce.failed_per_secondrequests/second每秒钟的产品请求(produce requests)失败率
kafka.request.produce.time.99percentilerequests/second产品请求(produce requests)时间的第 99 百分位的值
kafka.request.produce.time.avgrequests/second产品请求(produce requests)平均时间
kafka.request.update_metadata.time.99percentilemilliseconds更新元数据请求(update metadata requests)时间的第 99 百分位的值
kafka.request.update_metadata.time.avgmilliseconds更新元数据请求(update metadata requests)时间的平均值

1.5.重要指标说明

参照kafka-manager管理工具
1.

kafka.replication.under_replicated_partitions:
Under Replicated Partitions

: 在一个运行健康的集群中,处于同步状态的副本数(ISR)应该与总副本数(简称AR:Assigned Repllicas)完全相等,如果分区的副本远远落后于leader,那这个follower将被ISR池删除,随之而来的是IsrShrinksPerSec(可理解为isr的缩水情况,后面会讲)的增加。由于kafka的高可用性必须通过副本来满足,所有有必要重点关注这个指标,让它长期处于大于0的状态。
2. Brokers Spread:
broker使用率,如kafka集群9个broker,某topic有7个partition,则broker spread: 7 / 9 = 77%
3. Brokers Leader Skew:
leader partition是否存在倾斜,如kafka集群9个broker,某topic14个partition,则正常每个broker有2个leader partition。若其中一个broker有0个leader partition,一个有4个leader partition,则broker leader skew: (4 - 2) / 14 = 14%
由于kafka所有读写都在leader上进行, broker leader skew会导致不同broker的读写负载不均衡,配置参数 auto.leader.rebalance.enable=true 可以使kafka每5min自动做一次leader的rebalance,消除这个问题。
4. Lag:
表示consumer的消费能力,计算公式为Lag = LogSize - Consumer Offset,Kafka Manager从zk获取LogSize,从kafka __consumer_offsets topic读取Offset。两步操作存在一个时间gap,因此吞吐很大的topic上会出现LogSize > Offset 的情况。导致Lag负数。

相关文章:

全面Kafka监控方案:从配置到指标

文章目录 1.1.监控配置1.2.监控工具1.3.性能指标系统相关指标GC相关指标JVM相关指标Topic相关指标Broker相关指标 1.4.性能指标说明1.5.重要指标说明 1.1.监控配置 开启JMX服务端口&#xff1a;kafka基本分为broker、producer、consumer三个子项&#xff0c;每一项的启动都需要…...

kipotix4靶机实战

信息收集 1.判断靶机ip 原理&#xff1a;开靶机之前nmap扫一次网段&#xff0c;再开靶机之后扫一次&#xff0c;查看多出来的ip就是靶机ip ip192.168.98.1742.判断端口服务&#xff0c;系统版本 a.确定端口 b.-p指定端口进一步收集 c.信息筛选 1.端口&#xff1a;22,80,139,…...

我的秋招总结

我的秋招总结 个人背景 双非本&#xff0c;985硕&#xff0c;科班 准备情况 以求职为目的学习Java的时间大概一年。 八股&#xff0c;一开始主要是看B站黑马的八股文课程&#xff0c;背JavaGuide和小林coding还有面试鸭。 算法&#xff0c;250&#xff0c;刷了3遍左右 项目&…...

广义线性模型(GLM)全面解析

引言 广义线性模型&#xff08;Generalized Linear Model, GLM&#xff09;是统计学中一种重要的建模工具&#xff0c;它扩展了传统线性回归模型&#xff0c;能够处理响应变量的非正态分布和非线性关系。GLM 的灵活性和广泛的应用范围使其在金融、医学、社会科学等领域中成为数…...

C++ OCR 文字识别

一.引言 文字识别&#xff0c;也称为光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;&#xff0c;是一种将不同形式的文档&#xff08;如扫描的纸质文档、PDF文件或数字相机拍摄的图片&#xff09;中的文字转换成可编辑和可搜索的数据的技术。随着技…...

PHP实现登录和注册(附源码)

前言 本博客主要讲述利用php环境实现一个简单的前后端结合的用户登录和注册功能。phpstudy是PHP调试环境的集成包&#xff0c;该程序包集成了 ApachePHPMySQLphpMyAdmin 等多个工具&#xff0c;是很好用的调试环境的程序集成包。 目录 前言 1. 准备工作 1.1 工具 1.2 php…...

AEO海关认证的注意事项

AEO海关认证的注意事项繁多且至关重要&#xff0c;企业需细致准备&#xff0c;确保万无一失。 首先&#xff0c;企业需深入研读相关政策文件&#xff0c;如《中华人民共和国海关注册登记和备案企业信用管理办法》及《海关高级认证企业标准》&#xff0c;以政策为指引&#xff0…...

ElasticSearch 分布式部署

一、引言 在当今大数据时代&#xff0c;数据呈爆炸式增长&#xff0c;如何高效地存储、检索数据成为了众多企业面临的关键挑战。ElasticSearch 作为一款强大的分布式搜索引擎&#xff0c;凭借其卓越的性能、灵活的扩展性以及强大的全文检索能力&#xff0c;在日志分析、数据分…...

Vue中动态样式绑定+CSS变量实现切换明暗主题功能——从入门到进阶

1.直接借助Vue的动态绑定样式绑定 Vue动态样式绑定 在Vue中&#xff0c;动态样式绑定是一种强大的功能&#xff0c;它允许开发者根据数据的变化动态地更新元素的样式。以下是对Vue动态样式绑定的详细知识梳理与详解&#xff1a; 一、基础知识 Vue的动态样式绑定主要通过v-b…...

vue3 video 播放rtmp视频?(360浏览器支持)

** 注意&#xff1a;目前只能在360浏览器播放rtmp视频** 谷歌浏览器不支持Flash Player的问题 试过上面这个方法&#xff0c;目前没能实现&#xff08;没解决&#xff09;&#xff0c;如果有更好的解决方法&#xff0c;告诉我一下 需要下载版本较低的video.js版本库&#xff0…...

RK356x bsp 7 - PCF8563 RTC调试记录

文章目录 1、环境介绍2、目标3、PCF85634、dts配置5、内核配置6、测试验证 1、环境介绍 硬件&#xff1a;飞凌ok3568-c开发板 软件&#xff1a;原厂rk356x sdk 2、目标 开发板断电后仍正常计时。 3、PCF8563 PCF8563 是由 NXP Semiconductors 公司生产的低功耗 CMOS 实时…...

定义Shape:打造属于你的独特图形

自定义Shape:打造属于你的独特图形 在Android开发中,自定义图形绘制是一个非常重要的技能,尤其是在需要实现复杂UI或特定设计需求时。Android提供了android.graphics.drawable.shapes包,其中包含了一些基本的形状类,如RectShape、OvalShape等。然而,有时这些基本形状无法…...

JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介

1. 基本概念 1.1、前言 web开发&#xff1a; web&#xff0c;网页的意思&#xff0c;www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化&#xff01; 动态 web 淘宝&#xff0c;几乎是所有的网站&#xff1b;提供给所有人看的数据始终会发生变化&#xf…...

python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶

【1】引言 前序已经掌握了使用cv2.circle()绘制圆形的基本操作&#xff0c;相关链接为&#xff1a; python学opencv|读取图像&#xff08;二十&#xff09;使用cv2.circle()绘制圆形-CSDN博客 由于圆形本身绘制起来比较简单&#xff0c;因此可以自由操作的空间也就大&#x…...

CLIP:连接文本与图像, 从自然语言监督中学习可迁移的视觉模型

CLIP&#xff1a;连接文本与图像&#xff0c; 从自然语言监督中学习可迁移的视觉模型 flyfish Learning Transferable Visual Models From Natural Language Supervision https://github.com/OpenAI/CLIP 摘要 CLIP Contrastive Language-Image Pre-Training Contrastive&…...

Linux 硬盘扩容 分区 挂载

Linux 硬盘扩容 分区 & 挂载 1. 添加分区 1.1. 查看新添加的硬盘 fdisk -l假设当前未挂载的盘符是/dev/sdb&#xff0c;后文中所有操作都按挂载/dev/sdb 操作 1.2. 分区管理 小硬盘 fdisk /dev/sdb大硬盘&#xff08;2TB以上&#xff09; gdisk /dev/sdb1.3. 编辑分…...

基于 Slf4j 和 AOP 的自动化方法执行时间日志记录方案

前言 其实这个需求很简单&#xff0c;但是这个需求又是项目中必不可少的&#xff0c;尤其对于性能调优这块&#xff0c;但是使用哪种方式更加方便呢&#xff0c;这就是本篇博文需要讨论的重点 系统时间 可以通过 System.currentTimeMillis() 或 System.nanoTime() 来实现。 …...

关于 K8s 的一些基础概念整理-补充【k8s系列之二】

〇、前言 本文继续整理下 K8s 的一些基础概念&#xff0c;作为前一篇概念汇总的补充。 前一篇博文链接&#xff1a;关于 K8s 的一些基础概念整理【k8s系列之一】_集群 master节点 控制节点 宿主机-CSDN博客 一、详情 1.1 Label Label 在 k8s 中是一个非常核心的概念&#xf…...

FPGA的DMA应用——pcileech

硬件通过pcie总线&#xff0c;访存本机的内存&#xff0c;并进行修改&#xff0c;可以进行很多操作。 学习视频&#xff1a;乱讲DMA及TLP 1-pcileech项目简介和自定义模块介绍_哔哩哔哩_bilibili vivado2024.1的下载文章链接和地址&#xff1a;AMD-Xilinx Vivado™ 2024.1 现…...

信息安全管理:运行管理checklist

运行管理checklist内容包括日常操作与维护管理、变更管理、备份与故障恢复、应急与业务连续性管理等内容。 一、日常操作与维护管理 ▼▼制度与流程 是否建立日常运行操作制度与流程&#xff1f;包括网络、主机、应用等方面的操作制度与流程&#xff1f; 是否明确相关部门和人…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...