全面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
- 如可以采用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']
- 重启prometheus加载。
- 在promethues的管理界面可以查看状态:

- 然后配置grafana来展示图表效果。
- 告警监控项,如下表供参考:
| 时间百分比 | 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消费滞后告警 | >1000 | sum(kafka_consumergroup _lag{topic!=“sop_free_study_fix-student_wechat_detail”}) by (consumergroup, topic) > 1000 |
| kafka-exporter停止 | < 1 | kafka_exporter_build_info |
| kafka server停止 | <1 | kafka_brokers |
| kafka监控topic实时生产速率 | >= 0 | sum(irate(kafka_topic_partition_current_ offset{topic !~ "__consumer_offsets |
| Kafka消费者端分区偏移量 | 5m >= 0 | sum(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.性能指标
系统相关指标
- 系统信息收集 java.lang:type=OperatingSystem
- Thread信息收集 java.lang:type=Threading
- 获取mmaped和direct空间
- 通过BufferPoolMXBean获取used、capacity、count
GC相关指标
- Young GC
java.lang:type=GarbageCollector,name=G1 Young Generation - Old GC
java.lang:type=GarbageCollector,name=G1 Old Generation
JVM相关指标
通过MemoryMXBean获取JVM相关信息HeapMemoryUsage和NonHeapMemoryUsage;通过MemoryPoolMXBean获取其他JVM内存空间指标,例如:Metaspace、Codespace等
Topic相关指标
- Topic消息入站速率(Byte)
kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec,topic=" + topic - Topic消息出站速率(Byte)
kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec,topic=" + topic - Topic请求被拒速率
kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec,topic=" + topic - Topic失败拉去请求速率
kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec,topic=" + topic; - Topic发送请求失败速率
kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=" + topic - Topic消息入站速率(message)
kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec,topic=" + topic
Broker相关指标
- Log flush rate and time
kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs - 同步失效的副本数
kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions - 消息入站速率(消息数)
kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec - 消息入站速率(Byte)
kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec - 消息出站速率(Byte)
kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec - 请求被拒速率
kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec - 失败拉去请求速率
kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec - 发送请求失败速率
kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec - Leader副本数
kafka.server:type=ReplicaManager,name=LeaderCount - Partition数量
kafka.server:type=ReplicaManager,name=PartitionCount - 下线Partition数量
kafka.controller:type=KafkaController,name=OfflinePartitionsCount - Broker网络处理线程空闲率
kafka.server:type=KafkaRequestHandlerPool,name=RequestHandlerAvgIdlePercent - Leader选举比率
kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs - Unclean Leader选举比率
kafka.controller:type=ControllerStats,name=UncleanLeaderElectionsPerSec - Controller存活数量
kafka.controller:type=KafkaController,name=ActiveControllerCount - 请求速率
kafka.network:type=RequestMetrics,name=RequestsPerSec,request=Produce - Consumer拉取速率
kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchConsumer - Follower拉去速率
kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchFollower - Request total time
kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce - Consumer fetch total time
kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchConsumer - Follower fetch total time
kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchFollower - Time the follower fetch request waits in the request queue
kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=FetchFollower - Time the Consumer fetch request waits in the request queue
kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=FetchConsumer - Time the Produce fetch request waits in the request queue
kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=Produce - Broker I/O工作处理线程空闲率
kafka.network:type=SocketServer,name=NetworkProcessorAvgIdlePercent - ISR变化速率
kafka.server:type=ReplicaManager,name=IsrShrinksPerSec
1.4.性能指标说明
| 指标 | 单位 | 具体含义 |
|---|---|---|
| kafka.broker_offset offsets | broker | 上当前消息的偏移量(offset) |
| kafka.consumer.bytes_in | bytes/second | consumer 字节率(bytes in rate) |
| kafka.consumer.delayed_requests | requests | 延迟的 consumer 请求数 |
| kafka.consumer.expires_per_second | evictions/second | 延迟 consumer 的请求到期(expiration)速率 |
| kafka.consumer.fetch_rate | requests | consumer 向 broker 发送提取请求(fetch requests)的最低速率 |
| kafka.consumer.kafka_commits | writes/second | 面向 Kafka 的 offset commits 速率 |
| kafka.consumer.max_lag | offsets | 最大消费滞后(consumer lag) |
| kafka.consumer.messages_in | messages/second | consumer 消息消费(consumption)的速率 |
| kafka.consumer.zookeeper_commits | writes/second | 面向 ZooKeeper 的 offset commits 速率 |
| kafka.consumer_lag | offsets | consumer 和 broker 之间的消息滞后(lag) |
| kafka.consumer_offset | offsets | consumer 的当前消息偏移量(current message offset) |
| kafka.expires_sec | evictions/second | 延迟生产者(delayed producer)的请求到期(request expiration)速率 |
| kafka.follower.expires_per_second | evictions/second | 关注者(followers)的请求到期(request expiration)速率 |
| kafka.log.flush_rate | flushes/second | 日志刷新速率 |
| kafka.messages_in | messages | 传入(incoming)信息速率 |
| kafka.net.bytes_in | bytes/second | 传入(incoming)字节速率 |
| kafka.net.bytes_out | bytes/second | 传出(outgoing)字节速率 |
| kafka.net.bytes_rejected | bytes/second | 被拒绝(rejected)的字节速率 |
| kafka.producer.bytes_out | bytes/second | producer 字节输出速率 |
| kafka.producer.delayed_requests | requests | 延迟的 producer 请求数 |
| kafka.producer.expires_per_seconds | evictions/second | producer 请求到期率 |
| kafka.producer.io_wait | nanoseconds | Producer I/O 等待时间 |
| kafka.producer.message_rate | messages/second | Producer 消息速率 |
| kafka.producer.request_latency_avg | milliseconds | Producer 平均请求延迟 |
| kafka.producer.request_rate | requests/second | producer 每秒钟的请求数 |
| kafka.producer.response_rate | responses/second | producer 每秒钟的响应数 |
| kafka.replication.isr_expands | nodes/second | 副本加入 ISR 池的速率 |
| kafka.replication.isr_shrinks | nodes/second | 副本离开 ISR 池的速率 |
| kafka.replication.leader_elections | events/second | 领导选举(Leader election)频率 |
| kafka.replication.unclean_leader_elections | events/second | Unclean 的领导选举(Leader election)频率 |
| kafka.replication.under_replicated_partitions | 未使用的分区数 | |
| kafka.request.fetch.failed | requests | 客户端获取请求(fetch request)失败次数 |
| kafka.request.fetch.failed_per_second | requests/second | 每秒钟的客户端获取请求(fetch request)失败率 |
| kafka.request.fetch.time.99percentile | requests/second | 获取请求(fetch request)时间的第 99 百分位的值 |
| kafka.request.fetch.time.avg | requests/second | 获取请求(fetch request)时间的平均值 |
| kafka.request.handler.avg.idle.pct | fractions | 请求处理程序线程(request handler threads)的平均空闲时间占比 |
| kafka.request.metadata.time.99percentile | milliseconds | 元数据(metadata)请求时间的第 99 百分位的值 |
| kafka.request.metadata.time.avg | milliseconds | 元数据(metadata)请求时间的的平均值 |
| kafka.request.offsets.time.99percentile | milliseconds | offset 请求时间的第 99 百分位的值 |
| kafka.request.offsets.time.avg | milliseconds | offset 请求时间的平均值 |
| kafka.request.produce.failed | requests | 失败的产品请求(produce requests)数 |
| kafka.request.produce.failed_per_second | requests/second | 每秒钟的产品请求(produce requests)失败率 |
| kafka.request.produce.time.99percentile | requests/second | 产品请求(produce requests)时间的第 99 百分位的值 |
| kafka.request.produce.time.avg | requests/second | 产品请求(produce requests)平均时间 |
| kafka.request.update_metadata.time.99percentile | milliseconds | 更新元数据请求(update metadata requests)时间的第 99 百分位的值 |
| kafka.request.update_metadata.time.avg | milliseconds | 更新元数据请求(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服务端口:kafka基本分为broker、producer、consumer三个子项,每一项的启动都需要…...
kipotix4靶机实战
信息收集 1.判断靶机ip 原理:开靶机之前nmap扫一次网段,再开靶机之后扫一次,查看多出来的ip就是靶机ip ip192.168.98.1742.判断端口服务,系统版本 a.确定端口 b.-p指定端口进一步收集 c.信息筛选 1.端口:22,80,139,…...
我的秋招总结
我的秋招总结 个人背景 双非本,985硕,科班 准备情况 以求职为目的学习Java的时间大概一年。 八股,一开始主要是看B站黑马的八股文课程,背JavaGuide和小林coding还有面试鸭。 算法,250,刷了3遍左右 项目&…...
广义线性模型(GLM)全面解析
引言 广义线性模型(Generalized Linear Model, GLM)是统计学中一种重要的建模工具,它扩展了传统线性回归模型,能够处理响应变量的非正态分布和非线性关系。GLM 的灵活性和广泛的应用范围使其在金融、医学、社会科学等领域中成为数…...
C++ OCR 文字识别
一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…...
PHP实现登录和注册(附源码)
前言 本博客主要讲述利用php环境实现一个简单的前后端结合的用户登录和注册功能。phpstudy是PHP调试环境的集成包,该程序包集成了 ApachePHPMySQLphpMyAdmin 等多个工具,是很好用的调试环境的程序集成包。 目录 前言 1. 准备工作 1.1 工具 1.2 php…...
AEO海关认证的注意事项
AEO海关认证的注意事项繁多且至关重要,企业需细致准备,确保万无一失。 首先,企业需深入研读相关政策文件,如《中华人民共和国海关注册登记和备案企业信用管理办法》及《海关高级认证企业标准》,以政策为指引࿰…...
ElasticSearch 分布式部署
一、引言 在当今大数据时代,数据呈爆炸式增长,如何高效地存储、检索数据成为了众多企业面临的关键挑战。ElasticSearch 作为一款强大的分布式搜索引擎,凭借其卓越的性能、灵活的扩展性以及强大的全文检索能力,在日志分析、数据分…...
Vue中动态样式绑定+CSS变量实现切换明暗主题功能——从入门到进阶
1.直接借助Vue的动态绑定样式绑定 Vue动态样式绑定 在Vue中,动态样式绑定是一种强大的功能,它允许开发者根据数据的变化动态地更新元素的样式。以下是对Vue动态样式绑定的详细知识梳理与详解: 一、基础知识 Vue的动态样式绑定主要通过v-b…...
vue3 video 播放rtmp视频?(360浏览器支持)
** 注意:目前只能在360浏览器播放rtmp视频** 谷歌浏览器不支持Flash Player的问题 试过上面这个方法,目前没能实现(没解决),如果有更好的解决方法,告诉我一下 需要下载版本较低的video.js版本库࿰…...
RK356x bsp 7 - PCF8563 RTC调试记录
文章目录 1、环境介绍2、目标3、PCF85634、dts配置5、内核配置6、测试验证 1、环境介绍 硬件:飞凌ok3568-c开发板 软件:原厂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开发: web,网页的意思,www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化! 动态 web 淘宝,几乎是所有的网站;提供给所有人看的数据始终会发生变化…...
python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶
【1】引言 前序已经掌握了使用cv2.circle()绘制圆形的基本操作,相关链接为: python学opencv|读取图像(二十)使用cv2.circle()绘制圆形-CSDN博客 由于圆形本身绘制起来比较简单,因此可以自由操作的空间也就大&#x…...
CLIP:连接文本与图像, 从自然语言监督中学习可迁移的视觉模型
CLIP:连接文本与图像, 从自然语言监督中学习可迁移的视觉模型 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,后文中所有操作都按挂载/dev/sdb 操作 1.2. 分区管理 小硬盘 fdisk /dev/sdb大硬盘(2TB以上) gdisk /dev/sdb1.3. 编辑分…...
基于 Slf4j 和 AOP 的自动化方法执行时间日志记录方案
前言 其实这个需求很简单,但是这个需求又是项目中必不可少的,尤其对于性能调优这块,但是使用哪种方式更加方便呢,这就是本篇博文需要讨论的重点 系统时间 可以通过 System.currentTimeMillis() 或 System.nanoTime() 来实现。 …...
关于 K8s 的一些基础概念整理-补充【k8s系列之二】
〇、前言 本文继续整理下 K8s 的一些基础概念,作为前一篇概念汇总的补充。 前一篇博文链接:关于 K8s 的一些基础概念整理【k8s系列之一】_集群 master节点 控制节点 宿主机-CSDN博客 一、详情 1.1 Label Label 在 k8s 中是一个非常核心的概念…...
FPGA的DMA应用——pcileech
硬件通过pcie总线,访存本机的内存,并进行修改,可以进行很多操作。 学习视频:乱讲DMA及TLP 1-pcileech项目简介和自定义模块介绍_哔哩哔哩_bilibili vivado2024.1的下载文章链接和地址:AMD-Xilinx Vivado™ 2024.1 现…...
信息安全管理:运行管理checklist
运行管理checklist内容包括日常操作与维护管理、变更管理、备份与故障恢复、应急与业务连续性管理等内容。 一、日常操作与维护管理 ▼▼制度与流程 是否建立日常运行操作制度与流程?包括网络、主机、应用等方面的操作制度与流程? 是否明确相关部门和人…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
