Flink State面试题和参考答案-(下)

如何监控 Flink 作业的状态大小?

监控 Flink 作业的状态大小是确保作业性能和稳定性的重要方面。以下是一些监控状态大小的方法:

  1. 使用 Flink Web UI:  Flink 提供了一个 Web 用户界面,可以展示作业的当前状态大小,包括每个操作符的状态大小。
  2. 状态大小指标:Flink 的 metrics 系统提供了状态大小的指标,可以通过这些指标监控特定操作符的状态大小。
  3. 日志记录:可以在 Flink 作业中添加日志记录,记录状态的大小,尤其是在 Checkpoint 操作期间。
  4. 外部监控系统:集成外部监控系统(如 Prometheus、Grafana)来收集和可视化状态大小的指标。
  5. 定期检查:定期检查 Flink 作业的状态大小,分析其增长趋势,以便及时发现潜在的问题。
  6. 配置警告:设置警告阈值,当状态大小超过预定阈值时,通过邮件、短信或其他方式通知相关人员。
  7. 分析 Checkpoint 数据:分析存储在持久化存储中的 Checkpoint 数据的大小,了解状态随时间的增长情况。
  8. 资源使用情况:监控与状态相关的资源使用情况,如内存和磁盘使用,以评估状态大小对资源的影响。
  9. 代码审查:定期审查作业代码,特别是状态的使用和更新逻辑,以确保状态大小得到合理控制。
  10. 测试和模拟:在开发和测试阶段模拟不同的数据量,测试状态大小的增长情况,评估其对性能的影响。

Flink 作业的状态如何进行版本控制?

Flink 作业的状态版本控制是指管理不同版本的状态数据,以便在升级或迁移作业时能够正确地处理状态。以下是一些版本控制的方法:

  1. 使用 Savepoint:Flink 的 Savepoint 是一种状态和配置的快照,可以用于版本控制。通过定期创建 Savepoint,可以保存作业的特定状态。
  2. 命名规范:在创建 Savepoint 时,使用包含版本信息或时间戳的命名规范,以便于识别和恢复。
  3. Savepoint 兼容性:设计作业以确保 Savepoint 的兼容性,使得在升级作业时可以恢复旧版本的 Savepoint。
  4. 状态模式:实现状态模式,允许作业在运行时根据 Savepoint 的版本应用不同的状态处理逻辑。
  5. 元数据存储:在 Savepoint 中存储状态的元数据,包括版本信息,以便在恢复时使用正确的版本。
  6. 版本迁移策略:制定版本迁移策略,包括如何处理不同版本的 Savepoint,以及在升级过程中如何迁移状态。
  7. 自动化工具:使用或开发自动化工具来管理 Savepoint 的版本,包括创建、存储、检索和恢复。
  8. 文档和记录:记录作业的版本变化和 Savepoint 的创建过程,以便于理解和跟踪状态的版本。
  9. 测试:在升级或迁移作业之前,测试不同版本的 Savepoint 恢复,确保状态的一致性和正确性。
  10. 备份策略:制定 Savepoint 的备份策略,确保在需要时可以恢复到任何版本的作业状态。

Flink 作业的状态如何进行备份和恢复?

Flink 作业的状态备份和恢复是确保高可用性和容错能力的关键。以下是一些备份和恢复的方法:

  1. 使用 Savepoint:Savepoint 是 Flink 作业状态和配置的快照,可以用于备份和恢复。
  2. 定期创建 Savepoint:定期自动或手动创建 Savepoint,以备份作业的状态。
  3. 存储 Savepoint:将 Savepoint 存储在可靠的持久化存储中,如分布式文件系统或对象存储。
  4. Savepoint 的版本控制:通过版本控制 Savepoint,可以恢复到作业的特定状态。
  5. 故障恢复:在作业失败时,使用最近的 Savepoint 进行恢复。
  6. 状态后端的持久化:配置状态后端以持久化状态数据,如使用 FsStateBackend 或 RocksDBStateBackend。
  7. 增量 Checkpoint:使用增量 Checkpoint 减少备份所需的数据量和恢复时间。
  8. 外部系统备份:如果状态数据存储在外部系统中,确保这些系统也进行定期备份。
  9. 测试备份和恢复:定期测试备份和恢复流程,确保在需要时可以成功恢复作业。
  10. 监控和告警:监控 Savepoint 的创建和恢复过程,并在出现问题时发出告警。

如何诊断 Flink 作业状态相关的性能问题?

诊断 Flink 作业状态相关的性能问题需要对作业的运行情况进行深入分析。以下是一些诊断方法:

  1. 监控指标:监控与状态相关的性能指标,如状态访问延迟、状态大小、Checkpoint 时间等。
  2. 日志分析:分析 Flink 作业的日志,查找与状态操作相关的错误或警告信息。
  3. 性能测试:进行性能测试,模拟不同的负载情况,观察状态操作对作业性能的影响。
  4. 资源监控:监控作业的资源使用情况,如 CPU、内存、磁盘和网络,以确定是否存在资源瓶颈。
  5. 瓶颈识别:使用 Flink 提供的诊断工具,如 TaskManager 的监控数据,识别性能瓶颈。
  6. 代码审查:审查作业代码,特别是状态的使用和更新逻辑,以查找可能导致性能问题的代码。
  7. 调试和跟踪:使用调试工具或添加额外的日志记录,跟踪状态操作的执行过程。
  8. 优化建议:根据监控和分析结果,提出优化建议,如改进状态数据结构、调整 Checkpoint 配置等。
  9. 社区和文档:参考 Flink 社区的讨论和官方文档,了解常见的性能问题和解决方案。
  10. 专业工具:使用专业的性能分析工具,如 Java Flight Recorder 或其他 APM 工具,进行深入的性能分析。

在 Flink 中如何使用 RichMapFunction 管理状态?

RichMapFunction 是 Flink API 中的一个有状态的函数,可以在其中使用 Flink 的状态 API 来管理状态。以下是使用 RichMapFunction 管理状态的一些步骤:

  1. 获取运行时上下文:在 RichMapFunction 中,可以通过 getRuntimeContext() 方法获取到运行时上下文。
  2. 创建状态描述符:使用状态描述符(如 ValueStateDescriptor、ListStateDescriptor 等)来定义状态的类型和行为。
  3. 获取状态实例:通过运行时上下文的 getState() 方法,传入状态描述符来获取状态实例。
  4. 状态的读写:使用状态实例提供的方法来读写状态,如 value()、update()、add() 等。
  5. 生命周期方法:利用 RichMapFunction 提供的生命周期方法,如 open()、close(),在这些方法中进行状态的初始化和清理工作。
  6. 处理函数逻辑:在 map() 方法中实现业务逻辑,并在适当的时候读写状态。
  7. 状态的本地化:注意状态的本地化访问,避免不必要的网络传输。
  8. 状态的序列化:确保状态数据可以被序列化和反序列化,以支持 Checkpoint 和恢复。
  9. 状态的版本控制:在状态迁移或升级时,处理状态的版本控制,确保状态的兼容性。
  10. 异常处理:在状态操作中添加异常处理逻辑,确保在发生错误时可以正确地恢复或清理状态。

使用 RichMapFunction 管理状态时,需要考虑作业的容错性、状态的一致性和性能。通过合理地使用 Flink 的状态 API,可以在 Flink 作业中实现复杂的有状态计算。

Flink 状态在 Window 函数中如何使用?

在 Flink 中,状态与 Window 函数紧密集成,用于在窗口计算中累积和处理数据。以下是状态在 Window 函数中的使用方式:

  1. 累积数据:在窗口操作中,状态用于累积窗口期内到达的数据。例如,在滚动窗口中计算总和或均值,状态会保存累加值。
  2. 使用 RichFunction:通过使用 RichFlatMapFunction、RichWindowFunction 等富函数,可以访问和修改状态。
  3. 状态描述符:在函数的 open() 方法中,通过状态描述符(如 ValueStateDescriptor)获取状态实例。
  4. 更新状态:在窗口函数中,根据处理逻辑更新状态。例如,在处理窗口数据时,可能需要更新计数器或累加值。
  5. 窗口触发:当窗口触发时,根据触发条件处理状态数据。例如,可能需要将累积的值输出或应用某些聚合函数。
  6. 状态清理:在窗口数据过期后,清理状态以释放资源。例如,在滚动窗口中,当数据不再属于当前窗口时,应从状态中移除。
  7. 时间特性:Flink 支持基于事件时间、处理时间或摄取时间的窗口,状态的使用需要与时间特性保持一致。
  8. 状态的一致性:在窗口操作中,状态的更新需要保证一致性,尤其是在有状态后端(如 RocksDB)的情况下。
  9. 窗口类型:Flink 提供了多种窗口类型,包括滚动窗口、滑动窗口、会话窗口和全局窗口,每种窗口类型在状态使用上有所不同。
  10. 性能优化:在窗口操作中使用状态时,需要考虑性能优化,如选择合适的状态后端和调整窗口触发策略。

如何在 Flink 中实现自定义的 Window 函数?

在 Flink 中实现自定义 Window 函数,可以遵循以下步骤:

  1. 定义窗口逻辑:首先确定窗口的类型和逻辑,例如滚动窗口、滑动窗口或会话窗口。
  2. 使用WindowFunction:实现 WindowFunction 接口,定义窗口操作的逻辑。
  3. 处理窗口数据:在 WindowFunction 的实现中,处理窗口中的数据,可能包括聚合、过滤或其他自定义逻辑。
  4. 使用状态:在 WindowFunction 中,可以通过 getRuntimeContext().getState() 方法访问和更新状态。
  5. 触发条件:定义窗口触发的条件,例如基于时间戳或数据量。
  6. 窗口分配器:实现 WindowAssigner 接口,定义如何将数据分配到窗口中。
  7. 窗口策略:使用 WindowAssigner 的 assignWindows() 方法来分配窗口和触发器。
  8. 自定义触发器:如果需要,可以实现自定义触发器来控制窗口的触发行为。
  9. 测试:在实现自定义窗口函数后,进行充分的测试以确保其按预期工作。
  10. 性能调优:根据性能测试结果,对窗口函数进行调优,以优化资源使用和处理速度。

解释一下 Flink 的增量 Checkpoint。

Flink 的增量 Checkpoint 是一种优化的 Checkpoint 机制,用于减少 Checkpoint 过程中的数据复制和存储开销。以下是增量 Checkpoint 的关键特点:

  1. 仅保存变化:与传统 Checkpoint 保存完整状态不同,增量 Checkpoint 只保存自上次 Checkpoint 以来发生变化的部分。
  2. 状态的版本控制:增量 Checkpoint 为状态数据维护多个版本,以便在恢复时能够访问到一致的状态。
  3. 状态的压缩:增量 Checkpoint 可以压缩状态数据,减少存储需求。
  4. 状态的存储效率:通过仅保存状态的增量变化,增量 Checkpoint 提高了状态后端的存储效率。
  5. 状态的一致性:即使在 Checkpoint 过程中发生故障,增量 Checkpoint 也能保证状态的一致性。
  6. 与状态后端的集成:增量 Checkpoint 需要与支持该特性的状态后端(如 RocksDBStateBackend)集成。
  7. 性能优化:增量 Checkpoint 减少了网络传输和 I/O 操作,从而提高了 Checkpoint 的性能。
  8. 配置和使用:Flink 允许通过配置启用增量 Checkpoint,并根据作业的需求调整相关参数。
  9. 兼容性:增量 Checkpoint 需要考虑与现有作业和状态后端的兼容性。
  10. 故障恢复:在故障恢复时,增量 Checkpoint 能够利用保存的增量状态快速恢复到故障前的状态。

Flink 的状态是如何支持异步 I/O 操作的?

Flink 的状态可以通过异步 I/O 操作来提高性能,尤其是在处理需要外部数据源访问的流处理作业时。以下是 Flink 状态支持异步 I/O 操作的方式:

  1. 异步函数:Flink 提供了 AsyncFunction 接口,允许在函数中执行异步 I/O 操作。
  2. 状态访问:在异步函数中,可以在等待 I/O 操作完成时访问和更新状态。
  3. 回调机制:异步 I/O 操作完成后,通过回调函数将结果写入状态或触发进一步的处理。
  4. 线程模型:Flink 的异步 I/O 操作通常在单独的线程池中执行,避免阻塞主处理线程。
  5. 状态的一致性:在异步操作中,需要确保状态更新的一致性和原子性。
  6. 错误处理:在异步 I/O 操作中,需要妥善处理可能发生的错误,并更新状态以反映操作结果。
  7. 性能优化:异步 I/O 操作可以提高作业的性能,尤其是在高延迟的外部系统访问中。
  8. 与状态后端的集成:异步 I/O 操作需要与状态后端(如 RocksDBStateBackend)集成,以支持高效的异步访问。
  9. 流控制:在异步 I/O 操作中,可能需要实现流控制机制,以避免过多的并发请求导致的性能问题。
  10. 监控和调优:监控异步 I/O 操作的性能,并根据需要进行调优,以优化状态操作的效率。

Flink 的状态如何支持有界和无界数据流?

Flink 的状态管理机制支持有界(有限)和无界(无限)数据流的处理,以下是状态在这两种数据流中的使用方式:

  1. 有界数据流:在有界数据流中,状态用于在作业的整个生命周期内累积和处理数据。例如,在批处理作业中,状态可以用于全局聚合计算。
  2. 无界数据流:在无界数据流中,状态用于持续处理实时数据。状态允许 Flink 作业记住历史信息并对新数据做出响应。
  3. 状态大小管理:在无界数据流中,需要特别关注状态大小的管理,以避免状态无限增长导致资源耗尽。
  4. 状态 TTL:通过设置状态 TTL,可以为状态数据设置生存时间,过期的状态将被自动清理。
  5. 状态后端的选择:根据数据流的特性选择合适的状态后端。例如,对于大规模状态,可以使用 RocksDBStateBackend。
  6. 状态的一致性:无论是有界还是无界数据流,都需要保证状态更新的一致性和原子性。
  7. 状态的恢复:在作业失败时,状态可以从 Checkpoint 或 Savepoint 中恢复,以保证数据流的连续性。
  8. 状态的迁移:当作业的并行度变化时,状态需要在不同的操作符实例之间迁移。
  9. 状态的版本控制:在状态更新或迁移时,需要考虑状态的版本控制,以支持向后兼容。
  10. 性能优化:根据数据流的特性和状态的使用模式,对状态操作进行性能优化,如使用增量 Checkpoint、异步 I/O 等技术。

Flink 的状态如何支持多分区的聚合操作?

Flink 的状态支持多分区的聚合操作主要通过 Keyed State 来实现。以下是详细的步骤和方法:

  1. 数据分区:首先,确保数据流根据聚合操作的键进行了分区。Flink 通过 keyBy 操作自动将数据分发到不同的分区。
  2. 使用 Keyed State:在每个分区中,使用 Keyed State 来存储每个键的状态。这意味着每个键在每个分区中都有其独立的 state。
  3. 状态描述:通过状态描述符(如 ValueStateDescriptor、ListStateDescriptor 等)定义所需状态的类型和行为。
  4. 状态访问:在处理函数中,通过 getRuntimeContext().getState() 方法访问状态实例,并进行读写操作。
  5. 聚合函数:实现聚合逻辑,如 sum、min、max 或自定义聚合函数。这些函数可以在每个分区独立运行,并使用状态来累积结果。
  6. 全分区聚合:如果需要在所有分区上进行全局聚合,可以在每个分区完成局部聚合后,使用 reduce 或 aggregate 函数进行全局聚合。
  7. 状态一致性:在多分区环境中,确保状态更新的一致性和原子性,特别是在并行度变化或故障恢复时。
  8. 性能优化:考虑性能影响,如网络传输和状态大小,使用合适的状态后端(如 RocksDB)来优化性能。
  9. 容错性:利用 Flink 的 Checkpoint 机制,定期保存状态快照,确保在发生故障时可以从 Checkpoint 恢复。
  10. 监控和调优:监控多分区聚合操作的性能,根据需要进行调优,如调整并行度、优化状态访问模式等。

在有状态的 Flink 流处理中,如何处理迟到的数据?

Flink 处理迟到数据主要依赖于 watermark 机制和允许一定程度的数据乱序:

  1. Watermark 机制:Watermark 是 Flink 中用于处理时间相关操作的机制,它可以表示事件时间的进度。
  2. 设置允许的乱序时间:通过设置 watermark 的延迟时间,Flink 可以处理在一定时间范围内迟到的数据。
  3. 状态保持活跃:对于可能迟到的数据,Flink 会保持相关状态的活跃,直到 watermark 超过该数据的事件时间加上允许的乱序时间。
  4. 数据缓存:在 watermark 到达之前到达的数据会被缓存,并在 watermark 之后处理。
  5. 更新状态:当迟到的数据到达时,Flink 会使用这些数据更新状态,保证计算结果的正确性。
  6. 时间语义:Flink 支持 event time 和 processing time 两种时间语义,对于 event time 语义,Flink 可以更好地处理迟到数据。
  7. 侧输出晚数据:对于无法处理的极端迟到数据,Flink 可以将其输出到侧输出,以供进一步分析或记录。
  8. 状态 TTL:通过设置状态 TTL,可以自动清理过时的状态,减少状态大小。
  9. 监控迟到数据:监控迟到数据的数量和模式,以评估 watermark 策略的有效性和作业的性能。
  10. 业务逻辑适应:在设计流处理作业时,考虑业务逻辑对迟到数据的容忍度和处理策略。

在 Flink 的事件时间(event time)语义下,状态如何处理乱序事件?

Flink 在 event time 语义下处理乱序事件主要依赖于 watermark 和状态的灵活管理:

  1. Watermark 定义进度:Watermark 用于定义事件时间的进度,即使数据乱序到达,Flink 也可以根据 watermark 判断事件时间是否已经过去。
  2. 状态保持:Flink 会保持状态直到 watermark 超过事件时间加上允许的乱序时间。
  3. 时间戳分配:每个事件都会被分配一个时间戳,Flink 根据时间戳和 watermark 来处理事件。
  4. 乱序容忍:通过设置 watermark 的延迟,Flink 可以容忍一定程度的乱序,确保即使事件晚到也能被正确处理。
  5. 状态更新:当乱序事件到达时,Flink 会使用这些事件更新状态,即使这些事件发生在 watermark 之前。
  6. 窗口计算:在窗口操作中,Flink 会根据事件时间对事件进行分组,并在窗口触发时使用正确的事件数据进行计算。
  7. 状态清理:对于已经处理的事件,Flink 会在 watermark 超过后清理状态,释放资源。
  8. 性能考虑:处理乱序事件可能会增加状态的存储需求和处理延迟,需要考虑性能优化。
  9. 监控乱序:监控乱序事件的数量和模式,以评估 watermark 策略的有效性和作业的性能。
  10. 业务逻辑适应:在设计流处理作业时,考虑业务逻辑对乱序事件的处理需求和策略。

在 Flink 的会话窗口(session window)中,状态如何管理?

Flink 的会话窗口(session window)用于处理一段时间内活跃的事件,然后在不活跃的时间段进行计算。以下是状态在会话窗口中的管理方式:

  1. 会话窗口定义:会话窗口由会话间隔定义,当事件在间隔内到达时,它们会被归为同一会话。
  2. 状态累积:在会话窗口期间,Flink 使用状态来累积窗口期间到达的事件数据。
  3. 窗口激活:当第一个事件到达并分配到会话窗口时,Flink 会激活该窗口的状态。
  4. 状态更新:在会话窗口期间,每当新事件到达时,Flink 都会更新窗口的状态。
  5. 窗口计算:在会话窗口结束时,Flink 会触发窗口并使用状态数据进行计算。
  6. 窗口合并:如果有多个会话窗口重叠,Flink 可能会合并这些窗口的状态以优化计算。
  7. 状态清理:在会话窗口计算完成后,Flink 会清理状态,为新的会话窗口做准备。
  8. 处理迟到数据:对于在会话窗口结束后到达的迟到数据,Flink 可以根据 watermark 和会话间隔决定是否处理。
  9. 状态 TTL:通过设置状态 TTL,可以自动清理长时间不活跃的会话窗口状态。
  10. 监控会话窗口:监控会话窗口的状态大小和计算性能,以评估窗口策略的有效性和作业的性能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/491666.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用CNN与多尺度特征、注意力机制的融合实现低分辨率人脸表情识别,并给出模型介绍与代码实现

大家好,我是微学AI,今天给大家介绍一下利用CNN与多尺度特征、注意力机制的融合实现低分辨率人脸表情识别,并给出模型介绍与代码实现。在当今社会,人脸识别技术已广泛应用,但特定场景下的低质量图像仍是一大挑战。 低分…

Scala—“==“和“equals“用法(附与Java对比)

Scala 字符串比较—""和"equals"用法 Scala 的 在 Scala 中, 是一个方法调用,实际上等价于调用 equals 方法。不仅适用于字符串,还可以用于任何类型,并且自动处理 null。 Demo: Java 的 在 J…

驱动开发-入门【1】

1.内核下载地址 Linux内核源码的官方网站为https://www.kernel.org/,可以在该网站下载最新的Linux内核源码。进入该网站之后如下图所示: 从上图可以看到多个版本的内核分支,分别为主线版本(mainline)、稳定版本&#…

Android Room 数据库使用详解

一、Room介绍 Android Room 是 Google 提供的一个 Android 数据持久化库,是 Android Jetpack 组成部分之一。它提供了一个抽象层,使得 SQLite 数据库的使用更为便捷。通过 Room,开发者可以轻松地操作数据库,不需要直接编写繁琐的…

使用k6进行Redis基准测试

1.安装环境 前提条件:已经安装go 安装xk6 go install go.k6.io/xk6/cmd/xk6latest 安装成功会在GOPATH目录生成xk6可执行文件 安装xk6-redis 切换到xk6工作目录,执行如下命令 cd /Users/wan/go/bin ./xk6 build --with github.com/grafana/xk6-re…

【期末复习】JavaEE(上)

1. Java EE概述 开发环境及开发工具 1.1. HTTP协议 开发模式 2. Java Web技术 JSP技术 2.1. Servlet技术 2.1.1. HttpServletRequest 常用方法 2.1.2. HttpServletRequest 请求乱码 tomcat7 及以下(对于每个参数单独进行编码转换): 2.…

KeyFormer:使用注意力分数压缩KV缓存

Keyformer: KV Cache Reduction through Key Tokens Selection for Efficient Generative Inference 202403,发表在Mlsys Introduction 优化KV cache的策略,主要是集中在系统级别的优化上,比如FlashAttention、PagedAttention,它…

Win11安装安卓子系统WSA

文章目录 简介一、启用Hyper-V二、安装WSA三、安装APKAPK商店参考文献 简介 WSA:Windows Subsystem For Android 一、启用Hyper-V 控制面板 → 程序和功能 → 启用或关闭 Windows 功能 → 勾选 Hyper-V 二、安装WSA 进入 Microsoft Store,下拉框改为 …

PHP排序算法:数组内有A~E,A移到C或者C移到B后排序,还按原顺序排序,循环

效果 PHP代码 public function demo($params){function moveNext($arr){$length count($arr);$lastElement $arr[$length - 1];for ($i $length - 1; $i > 0; $i--) {$arr[$i] $arr[$i - 1];}$arr[0] $lastElement;return $arr;}function moveAndReplace($array, $from…

【数字花园】个人知识库网站搭建:①netlify免费搭建数字花园

目录 [[数字花园]]的构建原理包括三个步骤:五个部署方案教程相关教程使用的平台 步骤信息管理 这里记录的自己搭建数字花园(在线个人知识库)的经历,首先尝试的是网上普遍使用的方法,也就是本篇文章介绍的。 后面会继续…

el-table表格嵌套子表格:展开所有内容;对当前展开行内容修改,当前行默认展开;

原文1 原文2 原文3 一、如果全部展开 default-expand-all"true" 二、设置有数据的行打开下拉 1、父table需要绑定两个属性expand-row-key和row-key <el-table:data"tableData":expand-row-keys"expends" //expends是数组&#xff0c;设置…

区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测。QRDNN模型…

用.Net Core框架创建一个Web API接口服务器

我们选择一个Web Api类型的项目创建一个解决方案为解决方案取一个名称我们这里选择的是。Net 8.0框架 注意&#xff0c;需要勾选的项。 我们找到appsetting.json配置文件 appsettings.json配置文件内容如下 {"Logging": {"LogLevel": {"Default&quo…

扩展SpringBoot中的SpringMVC的默认配置

SpringBoot默认已经给我们做了很多SpringMVC的配置&#xff0c;哪些配置&#xff1f; 视图解析器ViewResolver静态资料的目录默认首页index.html图标名字和图标所在目录&#xff0c;favicon.ico类型转换器Converter&#xff0c;格式转换器的Formatter消息转换器HttpMessageCon…

练习题:一维数组

练习题 第一题 键盘录入一组数列&#xff0c;利用冒泡排序将数据由大到小排序 代码 #include <stdio.h>int arr_home01() {int arr[10];int i,j,temp;printf("请输入10个测试整数&#xff1a;\n");int len sizeof(arr) / sizeof(arr[0]);for(i 0;i < …

2024安装hexo和next并部署到github和服务器最新教程

碎碎念 本来打算写点算法题上文所说的题目&#xff0c;结果被其他事情吸引了注意力。其实我之前也有过其他博客网站&#xff0c;但因为长期不维护&#xff0c;导致数据丢失其实是我懒得备份。这个博客现在部署在GitHub Pages上&#xff0c;github不倒&#xff0c;网站不灭&…

【鸿睿创智开发板试用】RK3568 NPU的人工智能推理测试

目录 引言 驱动移植 例程编译 修改build.sh 执行编译 运行测试 部署libc的库文件 执行测试程序 结语 引言 鸿睿创智的H01开发板是基于RK3568芯片的&#xff0c;瑞芯微芯片的一大特色就是提供了NPU推理的支持。本文将对其NPU推理进行测试。 驱动移植 H01的开发板已经…

概率论得学习和整理29: 用EXCEL 描述二项分布

目录 1 关于二项分布的基本内容 2 二项分布的概率 2.1 核心要素 2.2 成功K次的概率&#xff0c;二项分布公式 2.3 期望和方差 2.4 具体试验 2.5 概率质量函数pmf 和cdf 3 二项分布的pmf图的改进 3.1 改进折线图 3.2 如何生成这种竖线图呢 4 不同的二项分布 4.1 p0.…

数据结构(二叉树)

前言&#xff1a; 在数据结构那片浩瀚无垠、仿若神秘宇宙的天地里&#xff0c;二叉树宛如一颗散发着独特光辉、极为耀眼的星辰。它就像一位技艺精湛的建筑师&#xff0c;运用独特的二叉分支结构&#xff0c;精心构建起层次分明、秩序井然的数据组织 “大厦”。根节点仿若大厦的…

docker仓库数据传输加密

1.进行加密数据运算对配置文件底下的内容进行删除 [rootlocalhost ~]# vim /etc/docker/daemon.json 重新启动docker程序 [rootlocalhost ~]# systemctl restart docker 2.建立加密目录&#xff0c;生成认证key和证书 [rootlocalhost ~]# mkdir certs [rootlocalhost ~]# open…