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

kafka-11-kafka的监控工具和常用配置参数

kafka官方文档
参考Kafka三款监控工具比较

1 查看kafka的版本

进入kafka所在目录,通过查看libs目录下的jar包。
2.11是scala的版本,2.0.0是kafka的版本。

测试环境
#systemctl start zookeeper
#systemctl start kafkka

2 kafka的常用配置

Kafka使用属性文件格式的键值对进行配置。这些值可以从文件或以编程方式提供。

2.1 Broker配置

*************************
*****Importance:	high
advertised.listeners						null
auto.create.topics.enable					true
auto.leader.rebalance.enable				true
background.threads							10
broker.id									-1
compression.type							producer
control.plane.listener.name					null
controller.listener.names					null
controller.quorum.election.backoff.max.ms	1000
controller.quorum.election.timeout.ms		1000
controller.quorum.fetch.timeout.ms			2000
controller.quorum.voters					""
delete.topic.enable							true
early.start.listeners						null
leader.imbalance.check.interval.seconds		300
leader.imbalance.per.broker.percentage		10	
listeners									PLAINTEXT://:9092
log.dir										/tmp/kafka-logs
log.dirs									null
log.flush.interval.messages					9223372036854775807
log.flush.interval.ms						null
log.flush.offset.checkpoint.interval.ms		60000
log.flush.scheduler.interval.ms				9223372036854775807
log.flush.start.offset.checkpoint.interval.ms	60000
log.retention.bytes								-1
log.retention.hours								168
log.retention.minutes							null
log.retention.ms								null
log.roll.hours									168
log.roll.jitter.hours							0
log.roll.jitter.ms								null
log.roll.ms										null
log.segment.bytes								1073741824 (1 gibibyte)
log.segment.delete.delay.ms						60000 (1 minute)
message.max.bytes								1048588
metadata.log.dir								null
metadata.log.max.record.bytes.between.snapshots	20971520
metadata.log.segment.bytes						1073741824 (1 gibibyte)
metadata.log.segment.ms							604800000 (7 days)
metadata.max.retention.bytes					-1
metadata.max.retention.ms						604800000 (7 days)
min.insync.replicas								1
node.id											-1
num.io.threads									8
num.network.threads								3
num.recovery.threads.per.data.dir				1
num.replica.alter.log.dirs.threads				null
num.replica.fetchers							1
offset.metadata.max.bytes						4096 (4 kibibytes)
offsets.commit.required.acks					-1
offsets.commit.timeout.ms						5000 (5 seconds)
offsets.load.buffer.size						5242880
offsets.retention.check.interval.ms				600000 (10 minutes)
offsets.retention.minutes						10080
offsets.topic.compression.codec					0
offsets.topic.num.partitions					50
offsets.topic.replication.factor				3
offsets.topic.segment.bytes						104857600 (100 mebibytes)
process.roles									""
queued.max.requests								500
replica.fetch.min.bytes							1
replica.fetch.wait.max.ms						500
replica.high.watermark.checkpoint.interval.ms	5000 (5 seconds)
replica.lag.time.max.ms							30000 (30 seconds)
replica.socket.receive.buffer.bytes				65536 (64 kibibytes)
replica.socket.timeout.ms						30000 (30 seconds)
request.timeout.ms								30000 (30 seconds)
sasl.mechanism.controller.protocol				GSSAPI
socket.receive.buffer.bytes						102400 (100 kibibytes)
socket.request.max.bytes						104857600 (100 mebibytes)
socket.send.buffer.bytes						102400 (100 kibibytes)
transaction.max.timeout.ms						900000 (15 minutes)
transaction.state.log.load.buffer.size			5242880
transaction.state.log.min.isr					2
transaction.state.log.num.partitions			50
transaction.state.log.replication.factor		3
transaction.state.log.segment.bytes				104857600 (100 mebibytes)
transactional.id.expiration.ms					604800000 (7 days)
unclean.leader.election.enable					false
zookeeper.connect								null
zookeeper.connection.timeout.ms					null
zookeeper.max.in.flight.requests				10
zookeeper.session.timeout.ms					18000 (18 seconds)
zookeeper.set.acl								false*************************
*****Importance:	medium
broker.heartbeat.interval.ms					2000 (2 seconds)
broker.id.generation.enable						true
broker.rack										null
broker.session.timeout.ms						9000 (9 seconds)
connections.max.idle.ms							600000 (10 minutes)
connections.max.reauth.ms						0
controlled.shutdown.enable						true
controlled.shutdown.max.retries					3
controlled.shutdown.retry.backoff.ms			5000 (5 seconds)
controller.quorum.append.linger.ms				25
controller.quorum.request.timeout.ms			2000 (2 seconds)
controller.socket.timeout.ms					30000 (30 seconds)
default.replication.factor						1
delegation.token.expiry.time.ms					86400000 (1 day)
delegation.token.master.key						null
delegation.token.max.lifetime.ms				604800000 (7 days)
delegation.token.secret.key						null
delete.records.purgatory.purge.interval.requests	1
fetch.max.bytes										57671680 (55 mebibytes)
fetch.purgatory.purge.interval.requests				1000
group.initial.rebalance.delay.ms					3000 (3 seconds)
group.max.session.timeout.ms						1800000 (30 minutes)
group.max.size										2147483647
group.min.session.timeout.ms						6000 (6 seconds)
initial.broker.registration.timeout.ms				60000 (1 minute)
inter.broker.listener.name							null
inter.broker.protocol.version
log.cleaner.backoff.ms								15000 (15 seconds)
log.cleaner.dedupe.buffer.size						134217728
log.cleaner.delete.retention.ms						86400000 (1 day)
log.cleaner.enable									true
log.cleaner.io.buffer.load.factor					0.9
log.cleaner.io.buffer.size							524288
log.cleaner.io.max.bytes.per.second					1.7976931348623157E308
log.cleaner.max.compaction.lag.ms					9223372036854775807
log.cleaner.min.cleanable.ratio						0.5
log.cleaner.min.compaction.lag.ms					0
log.cleaner.threads									1
log.cleanup.policy									delete
log.index.interval.bytes							4096 (4 kibibytes)
log.index.size.max.bytes							10485760 (10 mebibytes)
log.message.format.version
log.message.timestamp.difference.max.ms				9223372036854775807
log.message.timestamp.type							CreateTime
log.preallocate										false
log.retention.check.interval.ms						300000 (5 minutes)
max.connection.creation.rate						2147483647
max.connections										2147483647
max.connections.per.ip								2147483647
max.connections.per.ip.overrides					""
max.incremental.fetch.session.cache.slots			1000
num.partitions										1
password.encoder.old.secret							null
password.encoder.secret								null
principal.builder.class	
producer.purgatory.purge.interval.requests			1000
queued.max.request.bytes							-1
replica.fetch.backoff.ms							1000 (1 second)
replica.fetch.max.bytes								1048576 (1 mebibyte)
replica.fetch.response.max.bytes					10485760 (10 mebibytes)
replica.selector.class								null
reserved.broker.max.id								1000
sasl.client.callback.handler.class					null
sasl.enabled.mechanisms								GSSAPI
sasl.jaas.config									null
sasl.kerberos.kinit.cmd								/usr/bin/kinit
sasl.kerberos.min.time.before.relogin				60000
sasl.kerberos.principal.to.local.rules				DEFAULT
sasl.kerberos.service.name							null
sasl.kerberos.ticket.renew.jitter					0.05
sasl.kerberos.ticket.renew.window.factor			0.8
sasl.login.callback.handler.class					null
sasl.login.class									null
sasl.login.refresh.buffer.seconds					300
sasl.login.refresh.min.period.seconds				60
sasl.login.refresh.window.factor					0.8
sasl.login.refresh.window.jitter					0.05
sasl.mechanism.inter.broker.protocol				GSSAPI
sasl.oauthbearer.jwks.endpoint.url					null
sasl.oauthbearer.token.endpoint.url					null
sasl.server.callback.handler.class					null
sasl.server.max.receive.size						524288
security.inter.broker.protocol						PLAINTEXT
socket.connection.setup.timeout.max.ms				30000 (30 seconds)
socket.connection.setup.timeout.ms					10000 (10 seconds)
socket.listen.backlog.size							50
ssl.cipher.suites									""
ssl.client.auth										none
ssl.enabled.protocols								TLSv1.2,TLSv1.3
ssl.key.password									null
ssl.keymanager.algorithm							SunX509
ssl.keystore.certificate.chain						null
ssl.keystore.key									null
ssl.keystore.location								null
ssl.keystore.password								null
ssl.keystore.type									JKS
ssl.protocol										TLSv1.3
ssl.provider										null
ssl.trustmanager.algorithm							PKIX
ssl.truststore.certificates							null
ssl.truststore.location								null
ssl.truststore.password								null
ssl.truststore.type									JKS
zookeeper.clientCnxnSocket							null
zookeeper.ssl.client.enable							false
zookeeper.ssl.keystore.location						null
zookeeper.ssl.keystore.password						null
zookeeper.ssl.keystore.type							null
zookeeper.ssl.truststore.location					null
zookeeper.ssl.truststore.password					null
zookeeper.ssl.truststore.type						null*************************
*****Importance:	low
alter.config.policy.class.name						null
alter.log.dirs.replication.quota.window.num			11
alter.log.dirs.replication.quota.window.size.seconds	1
authorizer.class.name								""
client.quota.callback.class							null
connection.failed.authentication.delay.ms			100
controller.quorum.retry.backoff.ms					20
controller.quota.window.num							11
controller.quota.window.size.seconds				1
create.topic.policy.class.name						null
delegation.token.expiry.check.interval.ms			3600000 (1 hour)
kafka.metrics.polling.interval.secs					10
kafka.metrics.reporters								""
listener.security.protocol.map						PLAINTEXT:PLAINTEXT
log.message.downconversion.enable					true
metadata.max.idle.interval.ms						500
metric.reporters									""
metrics.num.samples									2
metrics.recording.level								INFO
metrics.sample.window.ms							30000 (30 seconds)
password.encoder.cipher.algorithm					AES/CBC/PKCS5Padding
password.encoder.iterations							4096
password.encoder.key.length							128
password.encoder.keyfactory.algorithm				null
quota.window.num									11
quota.window.size.seconds							1
replication.quota.window.num						11
replication.quota.window.size.seconds				1
sasl.login.connect.timeout.ms						null
sasl.login.read.timeout.ms							null
sasl.login.retry.backoff.max.ms						10000 (10 seconds)
sasl.login.retry.backoff.ms							100
sasl.oauthbearer.clock.skew.seconds					30
sasl.oauthbearer.expected.audience					null
sasl.oauthbearer.expected.issuer					null
sasl.oauthbearer.jwks.endpoint.refresh.ms			3600000 (1 hour)
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms	10000 (10 seconds)
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms		100
sasl.oauthbearer.scope.claim.name					scope
sasl.oauthbearer.sub.claim.name						sub
security.providers									null
ssl.endpoint.identification.algorithm				https
ssl.engine.factory.class							null
ssl.principal.mapping.rules							DEFAULT
ssl.secure.random.implementation					null
transaction.abort.timed.out.transaction.cleanup.interval.ms		10000 (10 seconds)
transaction.remove.expired.transaction.cleanup.interval.ms		3600000 (1 hour)
zookeeper.ssl.cipher.suites							null
zookeeper.ssl.crl.enable							false
zookeeper.ssl.enabled.protocols						null
zookeeper.ssl.endpoint.identification.algorithm		HTTPS
zookeeper.ssl.ocsp.enable							false
zookeeper.ssl.protocol								TLSv1.2

2.2 Topic配置

*****Importance:	medium
cleanup.policy					delete
compression.type				producer
delete.retention.ms				86400000 (1 day)
file.delete.delay.ms			60000 (1 minute)
flush.messages					9223372036854775807
flush.ms						9223372036854775807
follower.replication.throttled.replicas		""
index.interval.bytes						4096 (4 kibibytes)
leader.replication.throttled.replicas		""
max.compaction.lag.ms						9223372036854775807
max.message.bytes							1048588
message.format.version						3.0-IV1
message.timestamp.difference.max.ms			9223372036854775807
message.timestamp.type						CreateTime
min.cleanable.dirty.ratio					0.5
min.compaction.lag.ms						0
min.insync.replicas							1
preallocate									false
retention.bytes								-1
retention.ms								604800000 (7 days)
segment.bytes								1073741824 (1 gibibyte)
segment.index.bytes							10485760 (10 mebibytes)
segment.jitter.ms							0
segment.ms									604800000 (7 days)
unclean.leader.election.enable				false*****Importance:	low
message.downconversion.enable				true

2.3 Producer配置

*************************
*****Importance:	high
key.serializer
value.serializer
bootstrap.servers			""
buffer.memory				33554432
compression.type			none
retries						2147483647
ssl.key.password			null
ssl.keystore.certificate.chain		null
ssl.keystore.key					null
ssl.keystore.location				null
ssl.keystore.password				null
ssl.truststore.certificates			null
ssl.truststore.location				null
ssl.truststore.password				null*************************
*****Importance:	medium
batch.size							16384
client.dns.lookup					use_all_dns_ips
client.id							""
connections.max.idle.ms				540000 (9 minutes)
delivery.timeout.ms					120000 (2 minutes)
linger.ms							0
max.block.ms						60000 (1 minute)
max.request.size					1048576
partitioner.class					null
partitioner.ignore.keys				false
receive.buffer.bytes				32768 (32 kibibytes)
request.timeout.ms					30000 (30 seconds)
sasl.client.callback.handler.class	null
sasl.jaas.config					null
sasl.kerberos.service.name			null
sasl.login.callback.handler.class	null
sasl.login.class					null
sasl.mechanism						GSSAPI
sasl.oauthbearer.jwks.endpoint.url	null
sasl.oauthbearer.token.endpoint.url	null
security.protocol					PLAINTEXT
send.buffer.bytes					131072 (128 kibibytes)
socket.connection.setup.timeout.max.ms		30000 (30 seconds)
socket.connection.setup.timeout.ms			10000 (10 seconds)
ssl.enabled.protocols						TLSv1.2,TLSv1.3
ssl.keystore.type							JKS
ssl.protocol								TLSv1.3
ssl.provider								null
ssl.truststore.type							JKS*************************
*****Importance:	low
acks					all
enable.idempotence		true
interceptor.classes		""
max.in.flight.requests.per.connection		5
metadata.max.age.ms							300000 (5 minutes)
metadata.max.idle.ms						300000 (5 minutes)
metric.reporters							""
metrics.num.samples							2
metrics.recording.level						INFO
metrics.sample.window.ms					30000 (30 seconds)
partitioner.adaptive.partitioning.enable	true
partitioner.availability.timeout.ms			0
reconnect.backoff.max.ms					1000 (1 second)
reconnect.backoff.ms						50
retry.backoff.ms							100
sasl.kerberos.kinit.cmd						/usr/bin/kinit
sasl.kerberos.min.time.before.relogin		60000
sasl.kerberos.ticket.renew.jitter			0.05
sasl.kerberos.ticket.renew.window.factor	0.8
sasl.login.connect.timeout.ms				null
sasl.login.read.timeout.ms					null
sasl.login.refresh.buffer.seconds			300
sasl.login.refresh.min.period.seconds		60
sasl.login.refresh.window.factor			0.8
sasl.login.refresh.window.jitter			0.05
sasl.login.retry.backoff.max.ms				10000 (10 seconds)
sasl.login.retry.backoff.ms					100
sasl.oauthbearer.clock.skew.seconds			30
sasl.oauthbearer.expected.audience			null
sasl.oauthbearer.expected.issuer			null
sasl.oauthbearer.jwks.endpoint.refresh.ms	3600000 (1 hour)
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms		10000 (10 seconds)
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms			100
sasl.oauthbearer.scope.claim.name						scope
sasl.oauthbearer.sub.claim.name							sub
security.providers										null
ssl.cipher.suites										null
ssl.endpoint.identification.algorithm					https
ssl.engine.factory.class								null
ssl.keymanager.algorithm								SunX509
ssl.secure.random.implementation						null
ssl.trustmanager.algorithm								PKIX
transaction.timeout.ms									60000 (1 minute)
transactional.id										null

2.4 Consumer配置

*************************
*****Importance:	high
key.deserializer
value.deserializer
bootstrap.servers					""
fetch.min.bytes						1
group.id							null
heartbeat.interval.ms				3000 (3 seconds)
max.partition.fetch.bytes			1048576 (1 mebibyte)
session.timeout.ms					45000 (45 seconds)
ssl.key.password					null
ssl.keystore.certificate.chain		null
ssl.keystore.key					null
ssl.keystore.location				null
ssl.keystore.password				null
ssl.truststore.certificates			null
ssl.truststore.location				null
ssl.truststore.password				null*************************
*****Importance:	medium
allow.auto.create.topics			true
auto.offset.reset					latest
client.dns.lookup					use_all_dns_ips
connections.max.idle.ms				60000 (1 minute)
enable.auto.commit					true
exclude.internal.topics				true
fetch.max.bytes						52428800 (50 mebibytes)
group.instance.id					null
isolation.level						read_uncommitted
max.poll.interval.ms				300000 (5 minutes)
max.poll.records					500
partition.assignment.strategy
receive.buffer.bytes				65536 (64 kibibytes)
request.timeout.ms					30000 (30 seconds)
sasl.client.callback.handler.class	null
sasl.jaas.config					null
sasl.kerberos.service.name			null
sasl.login.callback.handler.class	null
sasl.login.class					null
sasl.mechanism						GSSAPI
sasl.oauthbearer.jwks.endpoint.url	null
sasl.oauthbearer.token.endpoint.url	null
security.protocol					PLAINTEXT
send.buffer.bytes					131072 (128 kibibytes)
socket.connection.setup.timeout.max.ms		30000 (30 seconds)
socket.connection.setup.timeout.ms			10000 (10 seconds)
ssl.enabled.protocols						TLSv1.2,TLSv1.3
ssl.keystore.type							JKS
ssl.protocol								TLSv1.3
ssl.provider								null
ssl.truststore.type							JKS*************************
*****Importance:	low
auto.commit.interval.ms					5000 (5 seconds)
check.crcs								true
client.id								""
client.rack								""
fetch.max.wait.ms						500
interceptor.classes						""
metadata.max.age.ms						300000 (5 minutes)
metric.reporters						""
metrics.num.samples						2
metrics.recording.level					INFO
metrics.sample.window.ms				30000 (30 seconds)
reconnect.backoff.max.ms				1000 (1 second)
reconnect.backoff.ms					50
retry.backoff.ms						100
sasl.kerberos.kinit.cmd					/usr/bin/kinit
sasl.kerberos.min.time.before.relogin	60000
sasl.kerberos.ticket.renew.jitter		0.05
sasl.kerberos.ticket.renew.window.factor	0.8
sasl.login.connect.timeout.ms				null
sasl.login.read.timeout.ms					null
sasl.login.refresh.buffer.seconds			300
sasl.login.refresh.min.period.seconds		60
sasl.login.refresh.window.factor			0.8
sasl.login.refresh.window.jitter			0.05
sasl.login.retry.backoff.max.ms				10000 (10 seconds)
sasl.login.retry.backoff.ms					100
sasl.oauthbearer.clock.skew.seconds			30
sasl.oauthbearer.expected.audience			null
sasl.oauthbearer.expected.issuer			null
sasl.oauthbearer.jwks.endpoint.refresh.ms	3600000 (1 hour)
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms		10000 (10 seconds)
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms			100
sasl.oauthbearer.scope.claim.name						scope
sasl.oauthbearer.sub.claim.name							sub
security.providers										null
ssl.cipher.suites										null
ssl.endpoint.identification.algorithm					https
ssl.engine.factory.class								null
ssl.keymanager.algorithm								SunX509
ssl.secure.random.implementation						null
ssl.trustmanager.algorithm								PKIX

2.5 Kafka Connect配置

2.6 Kafka Streams配置

2.7 AdminClient配置

3 KafkaOffsetMonitor

KafkaOffsetMonitor是Kafka的一款客户端消费监控工具,用来实时监控Kafka服务的Consumer以及它们所在的Partition中的Offset,我们可以浏览当前的消费者组,并且每个Topic的所有Partition的消费情况都可以一目了然。

KafkaOffsetMonitor,它是由Kafka开源社区提供的一款Web管理界面,是Kafka的一款客户端消费监控工具,用来实时监控Kafka服务的Consumer以及它们所在的Partition中的Offset,通过KafkaOffsetMonitor,我们可以很直观的知道,每个Partition的Message是否消费掉,有没有阻塞等。

通过web界面,可以方便的得知以下信息:
(1)对Consumer的消费监控,并列出每个Consumer的Offset数据。
(2)保护消费者组列表信息。
(3)每个Topic的所有Partition列表包含:Topic、Pid、Offset、LogSize、Lag以及Owner等。
(4)浏览查阅Topic的历史消费信息。

3.1 下载

KafkaOffsetMonitor托管在Github上,可以通过Github下载。
下载地址:https://github.com/gunsid/KafkaOffsetMonitor.git。

在这里插入图片描述

3.2 启动

将下载下来的KafkaOffsetMonitor jar包上传到linux上,可以新建一个目录KafkaMonitor,用于存放KafkaOffsetMonitor-assembly-0.2.1.jar进入到KafkaMonitor目录下,通过java编译命令来运行这个jar包:

java -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb 
--zk 10.0.0.50:12181,10.0.0.60:12181,10.0.0.70:12181 
--port 8088  
--refresh 5.seconds 
--retain 1.days

如果没有指定端口,则默认会开启一个随机端口。

zk :zookeeper主机地址,如果有多个,用逗号隔开
port :应用程序端口
refresh :应用程序在数据库中刷新和存储点的频率
retain :在db中保留多长时间
dbName :保存的数据库文件名,默认为offsetapp

编辑启动脚本
#vi kafka-monitor-start.sh
#chmod a+x kafka-monitor-start.sh

java -Xms512M -Xmx512M -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m  -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--port 8089 \
--zk 10.23.241.202:2181 \
--refresh 5.minutes \
--retain 1.day >/dev/null 2>&1;

#nohup /root/mm/kafka-monitor-start.sh & 启动
#netstat -lnp | grep 8089 查看端口占用情况

3.3 web UI

在游览器中输入:http://ip:port即可以查看KafkaOffsetMonitor Web UI。
http://10.23.241.202:8089/。
在这里插入图片描述

相关文章:

kafka-11-kafka的监控工具和常用配置参数

kafka官方文档 参考Kafka三款监控工具比较 1 查看kafka的版本 进入kafka所在目录,通过查看libs目录下的jar包。 2.11是scala的版本,2.0.0是kafka的版本。 测试环境 #systemctl start zookeeper #systemctl start kafkka 2 kafka的常用配置 Kafka使用…...

前端PWA渐进式加载技术

1.什么是PWA? 渐进式网络应用(PWA)是谷歌在2015年底提出的概念。基本上算是web应用程序,但在外观和感觉上与原生app类似。支持PWA的网站可以提供脱机工作、推送通知和设备硬件访问等功能。 2.PWA有那些优点? 更小更…...

【ubuntu 22.04不识别ch340串口】

这个真是挺无语的,发现国内厂商普遍对开源环境不感兴趣,ch340官方linux驱动好像被厂家忘了,现在放出来的驱动还是上古内核版本: 于是,驱动居然要用户自己编译安装。。还好网上有不少大神:链接,…...

解决:eclipse绿化版Resource注解报Resource cannot be resolved to a type问题

如图: 网上解决教程很多,我的eclipse是绿化版的,不需要安装 解决办法如下: 1、在eclipse中,进入到Window->Preferences->Java->Installed JREs中 默认显示如下: 2、点击Add-->Standard VM--…...

初识Cookie和Session

Cookie和Session出于安全考虑,浏览器不让网页直接操作文件系统,而Cookie就是一个折中的方案,可以让网页暂存一些数据在本地,不能存复杂的对象,只能存字符串。Cookie是按照域名分类的,这个很好理解。如何理解…...

vue3的七种路由守卫使用

路由守卫有哪几种? 路由守卫(导航守卫)分为三种:全局守卫(3个)、路由独享守卫(1个)、组件的守卫(3个)。 路由守卫的三个参数 to:要跳转到的目标路由 from:…...

华测导航GPCHC协议ROS驱动包,CGI610、410接收机,NavSatStatus、GPSFix和普通格式

目录一、消息类型1.1 sensor_msgs/NavSatFix1.2 sensor_msgs/NavSatStatus1.3 gps_common::GPSFix1.4 sensor_msgs::Imu二、部分源码2.1 相关的依赖和库2.2 文件结构2.3 字段分割函数2.4 定义消息话题Ubuntu 20.04 noetic 华测CGI 610——RS232-C——GPCHC 一、消息类型 1.1 …...

算法实战应用案例精讲-【图像处理】Pillow图像处理(python代码实战)

目录 操作图像 计算机图像基础 颜色和RGBA值 坐标和 Box 元组 CMYK 和 RGB着色...

C语言通讯录【动态+文件】

目录定义结构体基础操作部分文件操作部分定义结构体 我们要做一个通讯录,里面的信息有一个人的名字,年龄,性别,地址和电话号 对于姓名,年龄等字符串,为了日后方便调整其长度,需要预定义一下它…...

Linux驱动开发详细解析

Linux驱动开发详细解析 驱动概念 驱动与底层硬件直接打交道,充当了硬件与应用软件中间的桥梁。 具体任务 读写设备寄存器(实现控制的方式)完成设备的轮询、中断处理、DMA通信(CPU与外设通信的方式)进行物理内存向虚…...

Java Character 类,超详细整理,适合新手入门

目录 一、什么是Java Character 类? 二、Character类有哪些常用的静态方法? 1、将一个字符分别转换为大写字母和小写字母 2、如何判断一个字符是否是数字? 3、如何将一个字符转换为数字? 4、如何将一个字符串转换为字符数组…...

Python量化入门:关于收益率的一些概念

今天我们简单地介绍关于收益率的一些概念,方便大家理解我们后续的量化教程的分享。这些都很简单,但是请有经验的读者理解,毕竟有些读者没有这些基础,后边理解起来可能会有些吃力。 一、收益率简介 在金融领域,收益率是我们耳熟能详的一个名词。资产的收益率是指投入资产…...

微搭使用笔记(三) 数据模型介绍及初步使用

基于数据模型实现表单页面的生成和数据的保存、查看 表单应用是微搭的一个重要的使用场景,我们举下面一个简单的问卷调查的例子: 基于以上问卷,本文我们采取数据模型的方式生成表单页面并完成数据的保存及查看。 数据模型概述 先看下官方文档对于数据…...

JavaScript刷LeetCode心得

各类题的解决方案 话不多说,系统整理下解题的一些算法和解决方案 二叉树 二叉树大多使用递归的方式左右两个元素向下递归。比如: 计算二叉树最大深度 var maxDepth function (root) {if (root null) return 0return 1 Math.max(maxDepth(root.le…...

浙江工商大学2023年硕士研究生 入学考试初试成绩查询通知及说明

根据往年的情况,2023浙江工商大学MBA考试初试成绩可能将于2月21日下午两点公布,为了广大考生可以及时查询到自己的分数,杭州达立易考教育为大家汇总了信息。一、成绩查询考生可以登录中国研究生招生信息网(http://yz.chsi.com.cn/…...

华为OD机试题 - 子序列长度(JavaScript)

最近更新的博客 华为OD机试题 - 任务总执行时长(JavaScript) 华为OD机试题 - 开放日活动(JavaScript) 华为OD机试 - 最近的点 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试题 - 最小步骤数(JavaScript) 华为OD机试题 - 任务混部(JavaScript) 华为OD机试题 - N 进…...

Simulink 自动代码生成电机控制:STM32 Encoder编码器使用总结

目录 Encoder 原理 STM32 Encoder 计数原理 模型仿真 模拟Encoder 基于Encoder计算角度和速度 关于启动的仿真 代码生成 运行演示 总结 总结一下基于STM32的Encoder接口的电机运行,相应的仿真和实验都是基于一个1024脉冲的增量式光电编码器,关于…...

《计算机系统基础》——计算机系统导论

文章目录《计算机系统基础》——计算机系统导论计算机的基本组成程序开发与执行过程机器语言汇编语言高级语言程序的转换处理程序的数据流动计算机系统层次结构早期计算机系统1GL2GL现代计算机系统3GL4GL指令集体系结构《计算机系统基础》——计算机系统导论 🚀接下…...

华为OD机试 - 获取最大软件版本号(JavaScript) | 机试题算法思路 【2023】

获取最大软件版本号 题目 Maven版本号定义,<主版本>.<次版本>.<增量版本>-<里程碑版本> 举例3.1.4-beta 其中,主版本和次版本都是必须的,主版本,次版本,增量版本由多位数字组成,可能包含前导零,里程碑版本由字符串组成。 <主版本>.<…...

python--pygame实现各级菜单栏目设置

随着学期的开始&#xff0c;同学们也即将进入计算机相关课程的课程设计了&#xff0c;对于python课程设计的小伙伴&#xff0c;可能有些是需要利用pygame来写应该小游戏的&#xff0c;因为最近很多小伙伴同学也在想我要一些基于python的pygame模块做的游戏项目&#xff0c;此外…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...