6.4 数据处理架构模式和实践

news2024/11/25 20:23:34

6.4 数据处理架构模式和实践

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.批处理架构
      • 2.实时处理架构
      • 3.流处理架构
      • 4.微服务架构(重点)
      • 5.数据湖架构
      • 6.数据仓库架构
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

概述

本文重点讲述了数据处理架构模式,重点讲述微服务下的数据架构模式供大家参考。

需求:

设计思路

在这里插入图片描述

实现思路分析

1.批处理架构

批处理架构是一种计算机系统的架构模式,它用于处理一批相关的任务或数据。在批处理架构中,一组任务或数据被收集和处理,然后批量地进行处理和输出。批处理架构通常用于处理大量的数据、生成报告、执行定期的任务等。

在批处理架构中,通常涉及以下几个组件:

  1. 输入:批处理系统从外部获取输入数据,可能是从文件、数据库或其他系统中读取的数据。

  2. 处理器:处理器是批处理系统的核心组件,负责处理输入数据。它可以执行各种操作,如数据转换、计算、排序等。

  3. 存储:存储用于存储输入数据、中间结果和输出数据。它可以是磁盘、数据库或其他存储介质。

  4. 调度器:调度器用于管理和调度批处理任务的执行。它确定任务的顺序和优先级,并分配资源。

  5. 输出:处理器处理完数据后,将结果输出到指定的位置,可以是文件、数据库或其他系统。

数据架构模式是一种用于组织和管理数据的架构模式。它定义了数据的结构、存储方式、访问方法等。以下是一些常见的数据架构模式:

  1. 分层架构:数据被分为不同的层次,每个层次有不同的功能和访问方式。这种架构模式提供了灵活性和可扩展性。

  2. 客户端-服务器架构:数据被存储在中央服务器上,客户端通过网络访问和操作数据。

  3. 集中式架构:数据存储在一个中心位置,并由一个中央系统进行管理和访问。这种架构模式提供了集中化的管理和控制。

  4. 分布式架构:数据存储在不同的节点上,可以在多个地理位置进行访问。这种架构模式提供了高可用性和可扩展性。

批处理架构和数据架构模式可以结合使用,以实现高效的数据处理和管理。例如,批处理任务可以通过数据架构模式中的分层架构进行组织和管理,以提高任务执行的效率和可维护性。

2.实时处理架构

实时处理架构是一种架构模式,用于处理实时数据流。在这种架构中,数据被实时捕获并立即处理,以支持实时分析、实时决策等场景。

实时处理架构通常包括以下组件:

  1. 数据源:负责收集实时数据,可以是传感器、日志、消息队列等。
  2. 数据处理引擎:负责接收和处理实时数据流,可以进行数据的清洗、转换和聚合等操作。
  3. 数据存储:用于存储实时处理的结果数据,可以是内存数据库、分布式存储等。
  4. 实时分析和决策模块:通过对实时数据进行分析和决策,实现实时监控、预警、响应等功能。

数据架构模式是一种设计模式,用于组织和管理数据的结构和流动。常见的数据架构模式包括传统的关系型数据库模式、数据仓库模式、流数据存储模式等。

根据实时处理需求和数据特点,可以选择适合的数据架构模式。例如,在实时处理架构中,可以采用流数据存储模式,将实时数据流存储在内存数据库或分布式消息队列中,以支持实时处理和查询。同时,可以使用数据仓库模式,将处理后的数据存储在数据仓库中,以支持离线分析和报表生成。

综上所述,实时处理架构和数据架构模式是相互关联的概念,通过选择适合的数据架构模式,可以实现高效、可靠的实时处理。

3.流处理架构

流处理架构是一种处理大规模实时数据的架构设计模式,它可以实现数据的即时处理和分析。在流处理架构中,数据以流的形式传输,并经过一系列的处理步骤,包括数据提取、转换、加载等,最终将处理结果输出。

流处理架构通常由以下几个组件组成:

  1. 数据源:负责采集和收集数据,并将数据以流的形式发送到流处理系统中。

  2. 流处理引擎:负责处理流数据,包括数据的提取、转换、过滤、聚合等操作。流处理引擎可以分为两种模式:批处理模式和实时处理模式。批处理模式将数据分为批次进行处理,适用于需要对数据进行离线分析的场景;实时处理模式可实现数据的即时处理和实时分析。

  3. 数据存储:负责存储处理后的数据结果。数据存储可以使用各种不同的技术,包括关系型数据库、非关系型数据库、分布式文件系统等。

  4. 数据服务:负责将存储的数据结果提供给应用程序或其他系统使用。数据服务可以通过API或其他方式提供数据查询和访问功能。

在流处理架构中,数据架构模式是指对数据进行建模和组织的方式。常见的数据架构模式包括以下几种:

  1. 事件驱动模式:数据以事件的形式产生和传递,每个事件都包含了相关的数据和事件发生的时间信息。事件驱动模式适用于需要对数据的实时性进行高度关注的场景。

  2. 流水线模式:数据通过一系列的处理步骤进行处理,每个步骤都负责特定的数据转换或功能实现。流水线模式适用于需要对数据进行多次处理和转换的场景。

  3. 批量处理模式:数据按批次进行处理,每个批次包含一定数量的数据。批量处理模式适用于需要对数据进行批量处理和离线分析的场景。

  4. 发布/订阅模式:数据根据订阅的需求进行发布和传递,每个订阅者只接收自己感兴趣的数据。发布/订阅模式适用于需要灵活订阅感兴趣数据的场景。

流处理架构和数据架构模式的选择取决于具体的业务需求和技术要求,可以根据实际情况进行灵活调整和组合。

4.微服务架构(重点)

微服务架构是一种将应用拆分为一系列小型、独立、可独立部署的服务的软件架构模式。每个服务都可以通过轻量级的通信机制来互相通信,每个服务都有自己的数据库,通过API或消息队列来交换数据。

在微服务架构中,可以采用多种数据架构模式来组织和管理数据,以下是几种常见的数据架构模式:

  1. 数据库-per-service模式:每个微服务拥有自己的数据库,这样可以确保数据与服务之间的隔离性。每个服务可以根据自身的需求选择不同的数据库类型,例如关系型数据库、NoSQL数据库等。

数据库-per-service模式是一种在微服务架构中使用的数据库管理模式,它的核心思想是每个微服务都有自己的私有数据库。每个微服务都负责自己的数据存储和查询,不与其他微服务共享数据库。

这种模式的优势是每个微服务拥有独立的数据模型和数据存储方式,可以根据业务需求选择最适合的数据库类型和架构。这样可以避免不同微服务之间的耦合和冲突,提高系统的灵活性和扩展性。

然而,数据库-per-service模式也存在一些挑战和限制。其中一个挑战是数据一致性的问题。由于每个微服务都有自己的数据库,数据的一致性需要通过一些手段来确保,例如使用消息队列或事件驱动的架构来进行数据同步和异步处理。

另一个限制是数据访问的复杂性。由于每个微服务有自己的数据库,跨服务的数据访问可能需要额外的网络通信和数据转换,增加了系统的复杂性和延迟。

在设计和实现微服务架构时,选择适合的数据库-per-service模式需要综合考虑业务需求、性能要求、数据一致性和数据访问复杂性等因素。

数据库-per-service模式是一种将数据库与服务进行解耦的架构模式。在这种模式下,每个服务都有自己独立的数据库,服务之间通过API或消息队列进行通信。

以下是一些实现数据库-per-service模式的技术:

  1. 微服务框架:使用微服务框架如Spring Boot、Node.js等可以帮助开发人员快速搭建和管理多个服务。这些框架提供了对API和消息队列的支持,并可以与各种数据库集成。

  2. RESTful API:使用RESTful API可以使服务之间的通信更加简单和可靠。服务可以通过HTTP协议来请求和响应数据。

  3. 消息队列:使用消息队列如RabbitMQ、Kafka等可以实现服务之间的异步通信。每个服务可以将需要共享的数据发布到消息队列,其他服务则可以订阅并处理这些消息。

  4. 数据库复制:通过数据库复制可以将数据复制到不同的数据库实例中。每个服务可以连接到自己的数据库实例,这样就可以避免不同服务之间的数据库冲突。

  5. 数据库分片:使用数据库分片可以将数据水平划分成多个数据库实例。每个服务可以连接到自己的数据库分片,这样可以提高系统的可伸缩性和性能。

  6. 数据库迁移工具:使用数据库迁移工具如Flyway、Liquibase等可以帮助开发人员管理和追踪数据库架构的变化。这些工具可以帮助开发人员自动升级和回滚数据库架构。

总的来说,实现数据库-per-service模式需要借助于微服务框架、API、消息队列、数据库复制和数据库迁移工具等技术。这些技术可以帮助开发人员解耦数据库和服务,提高系统的可伸缩性、可靠性和灵活性。

  1. 事件溯源模式:每个微服务都将每一次的状态变更保存为一个事件,这些事件按顺序存储在一个事件日志中。这样可以完全追溯每个服务的状态变化,可以用于重放事件以还原系统状态。

事件溯源模式(Event Sourcing Pattern)是一种软件架构模式,用于将应用程序的状态和行为保存为一系列不可变的事件。它的核心思想是将所有的操作看作是一系列的事件,应用程序的状态是通过重放这些事件来恢复的。

在事件溯源模式中,所有的操作都被视为事件,并且将这些事件存储到事件日志中。每当有新的操作发生时,都会生成一个新的事件并将其追加到事件日志中。这个事件日志可以被用来重放所有的事件,从而恢复应用程序的状态。

通过使用事件溯源模式,应用程序的状态可以完全由事件日志来恢复,这样可以提供非常高的可靠性和可用性。此外,事件日志还可以用于分析和审计的目的,可以追踪每个操作是如何发生的,并且可以回溯到特定的操作和状态。

事件溯源模式还可以支持并发操作和冲突解决。由于所有的操作都被保存为不可变的事件,所以多个操作可以同时进行,而不会导致冲突。当冲突发生时,可以使用一些策略来解决冲突,例如最后写入胜出或者使用乐观并发控制。

总之,事件溯源模式是一种非常有用的软件架构模式,可以提供高可靠性、可用性和可扩展性。它可以将应用程序的状态完全保存下来,并且可以支持并发操作和冲突解决。

事件溯源模式的技术实现主要包括以下几个方面:

  1. 事件日志:通过记录系统中发生的各种事件,包括用户操作、系统状态改变等,将这些事件按照时间顺序保存到日志中。常见的实现方式包括数据库表、消息队列等。

  2. 事件存储:将事件日志中的事件持久化保存到存储介质中(例如数据库),以便后续查询和分析。可以使用关系型数据库、NoSQL数据库或分布式存储系统等技术来实现。

  3. 事件订阅和发布:当系统中的事件发生时,通过订阅机制将事件发送到感兴趣的订阅者。这样可以实现事件驱动的系统设计。常见的实现方式包括消息队列、发布/订阅模式等。

  4. 事件回放:当需要使用事件溯源数据进行分析、重放或恢复系统状态时,可以按照事件发生的顺序,将之前的事件重新执行一遍,以达到相同的系统状态。这个过程可以通过遍历事件日志来实现。

  5. 事件处理和关联:根据不同的业务需求,对事件进行处理和关联。例如,可以使用事件处理器来处理不同类型的事件,对事件进行分析、过滤、聚合等操作,并进行业务逻辑的处理。

  6. 事件索引和查询:为了方便对事件进行查询和检索,可以建立事件索引。使用索引可以提高查询性能,通过关键字、时间范围等条件来检索事件。常见的实现方式包括使用搜索引擎、数据库索引等。

以上是事件溯源模式的一般技术实现方式,具体的实现还需根据具体的业务需求和系统架构来确定。

  1. CQRS模式(命令查询职责分离):将读操作和写操作分离,使用不同的数据模型和查询机制。写操作使用关系型数据库进行更新,读操作使用缓存或专门的查询数据库进行查询。这样可以提高查询性能和灵活性。
    CQRS模式(Command Query Responsibility Segregation)是一种架构模式,用于分离命令和查询操作的职责。它的核心思想是将读操作(查询)和写操作(命令)分离,从而提高系统的可扩展性、可维护性和性能。

在CQRS模式中,系统的读模型和写模型是分开的。读模型负责处理查询操作,它是面向查询的,专注于返回数据给客户端。写模型负责处理命令操作,它是面向写入的,专注于处理业务逻辑和持久化更新。这种分离可以使得读操作和写操作可以独立地进行优化,从而提高系统的性能和扩展性。

CQRS模式还引入了事件驱动架构(Event Sourcing)的概念。在CQRS模式中,每个命令都会产生一个事件,并将该事件存储到事件存储中。读模型可以通过订阅这些事件来更新自身的状态。这种事件驱动的方式可以保证系统的数据一致性和可靠性,并支持系统的事件溯源和回溯。

总的来说,CQRS模式可以提供更好的系统可扩展性、性能和可维护性,特别适用于需要处理大量复杂查询和高并发写入的系统。然而,由于引入了额外的复杂性,因此在设计和实现过程中需要权衡考虑。

  1. 外部共享数据库模式:多个微服务共享一个数据库,每个服务可以访问自己所需的数据表。这样可以减少数据库的复杂性,但可能会带来数据耦合和数据访问冲突的问题。

外部共享数据库模式是一种数据库架构,其中多个不同的应用程序可以访问和共享同一数据库。这种模式通常用于多个应用程序需要访问同样的数据,并且数据需要保持一致性和完整性。

在外部共享数据库模式中,数据库可以位于一个独立的服务器上,由所有应用程序共享访问。这些应用程序可以通过网络连接到数据库,进行数据读取和写入操作。数据库管理系统负责处理并维护数据库的一致性和完整性。

外部共享数据库模式有以下一些特点:

  1. 数据共享:多个应用程序可以同时访问和共享同一数据库,避免数据的冗余存储和同步问题。

  2. 数据一致性和完整性:数据库管理系统负责处理并维护数据的一致性和完整性,确保数据在各个应用程序之间保持一致。

  3. 数据安全性:外部共享数据库模式可以通过权限和访问控制来确保数据的安全性,只有具有相应权限的用户才能访问和修改数据。

CQRS (Command Query Responsibility Segregation) 模式是一种架构模式,用于解耦应用程序的读取和写入操作。在CQRS模式中,应用程序的读取操作和写入操作被分离处理,分别由不同的模块或服务处理。这样可以优化性能,提高并发处理能力,并且可以更好地满足不同的需求。

在CQRS模式的技术实现中,可以使用以下技术:

  1. 命令处理器(Command Handlers):负责处理写入操作的模块,通常使用命令模式来处理命令请求。可以使用任何编程语言和框架来实现,如Java、C#、Node.js等。

  2. 查询处理器(Query Handlers):负责处理读取操作的模块,通常使用查询模式来处理查询请求。可以使用任何编程语言和框架来实现,如Java、C#、Node.js等。

  3. 事件总线(Event Bus):用于在命令处理器和查询处理器之间传递事件,以便实现解耦。可以使用消息队列或消息中间件来实现,如RabbitMQ、Kafka等。

  4. 事件存储(Event Store):用于存储事件,以便进行日志记录和重放操作。可以使用关系型数据库或事件存储系统来实现,如MySQL、EventStore等。

  5. 读取模型(Read Models):用于存储和查询数据的模块,通常使用数据库或缓存来存储数据。可以使用关系型数据库或NoSQL数据库来实现,如MySQL、MongoDB等。

  6. 命令总线(Command Bus):用于将命令发送到命令处理器。可以使用消息队列或消息中间件来实现,如RabbitMQ、Kafka等。

  7. 事件处理器(Event Handlers):负责处理事件,通常用于更新读取模型。可以使用任何编程语言和框架来实现,如Java、C#、Node.js等。

以上是一些常用的技术实现方式,具体的实现方式可以根据具体需求和技术栈选择合适的工具和框架。

  1. 数据集中管理:通过外部共享数据库模式,所有的数据都集中存储在一个数据库中,方便管理和维护。

外部共享数据库模式可以提供统一的数据访问接口,方便应用程序开发和维护。然而,需要注意的是,由于多个应用程序同时访问数据库,可能会出现性能瓶颈和冲突问题,因此需要进行良好的数据库设计和性能优化。

数据集中管理的技术实现包括以下几个方面:

  1. 数据库管理系统(DBMS):使用关系型数据库管理系统(如MySQL、Oracle)或非关系型数据库管理系统(如MongoDB、Redis)来存储和管理数据集。

  2. 数据仓库(Data Warehouse):将来自不同来源的数据集集成到一个中心化的存储库中,使得数据可以更方便地进行分析和查询。

  3. 数据湖(Data Lake):将数据以原始格式存储在一个集中的存储位置中,使得数据可以按需进行处理和分析。

  4. 数据虚拟化(Data Virtualization):将分散在不同数据源中的数据集逻辑上集成到一个视图中,使得用户可以通过一个统一的接口查询和分析数据。

  5. 数据安全和权限管理:通过访问控制和权限管理的技术手段,保护数据集的安全性和隐私性,限制用户对数据集的访问和操作。

  6. 数据质量管理:对数据集进行清洗、去重、校验等操作,提高数据的准确性、一致性和完整性。

  7. 数据备份和恢复:建立有效的数据备份和恢复机制,以防止数据丢失或损坏,保证数据集的可靠性和可用性。

  8. 数据集成和ETL(Extract, Transform, Load):将来自不同数据源的数据集集成到一个一致的格式中,并进行清洗、转换和加载,以提供可用于分析和查询的数据集。

以上是数据集中管理的一些常用技术实现,具体的实施方式会根据具体的需求和场景而有所不同。

  1. API网关模式:引入一个单一入口作为所有请求的入口,由API网关进行请求路由、验证和转发。这样可以集中管理认证、授权、日志和监控等功能,并提供更好的可扩展性和安全性。
    API网关模式是一种设计模式,用于构建和管理多个微服务之间的通信和访问。在这种模式下,所有的客户端请求都通过一个中央网关来进行路由和处理。这个网关负责验证请求、监控和日志记录、负载均衡、缓存等功能,从而提供一致性和高效性的服务。

数据架构模式是一种用于组织和管理数据的设计模式。它定义了数据的结构、存储、访问和操作方式,从而实现数据的可靠性、可扩展性和可维护性。常见的数据架构模式包括关系数据库、分布式数据库、数据仓库等。

这两种模式在实际应用中可以相互配合使用。API网关模式可以将不同微服务之间的数据请求进行路由和转发,同时对请求进行验证和监控。而数据架构模式定义了数据的结构和存储方式,可以提供给API网关模式所需的数据。因此,API网关模式可以作为数据架构模式的一种实现方式。

API网关模式是一种在分布式系统中使用的设计模式,它作为服务提供者和服务消费者之间的中间件,用于集中管理和控制对多个服务的访问。

数据架构模式是指在设计和构建应用程序的过程中,所使用的数据管理和组织的方式。

在技术实现方面,API网关模式和数据架构模式可以结合使用,以实现高效的数据管理和访问。

下面是一些技术实现的方法:

  1. 使用微服务架构:将应用程序拆分为多个独立的服务,每个服务负责处理特定的功能。API网关作为所有服务的入口,负责路由请求和提供统一的访问接口。各个服务使用适当的数据架构来管理和组织数据。

  2. 使用反向代理:API网关可以使用反向代理服务器来处理请求,并将它们转发给底层的服务。反向代理可以提供负载均衡和缓存功能,以提高系统的性能和可伸缩性。

  3. 使用服务发现和注册:API网关可以使用服务发现和注册的技术来自动发现和管理服务的地址和状态。这样,当新增或删除服务时,API网关可以自动更新路由规则和负载均衡策略。

  4. 使用API管理工具:API网关可以使用API管理工具来管理和控制对服务的访问权限。这些工具可以提供认证、授权和监控等功能,以确保只有经过授权的用户可以访问服务。

  5. 使用缓存和数据分片:为了加快数据访问速度和提高系统的可伸缩性,可以在API网关和服务之间使用缓存和数据分片技术。缓存可以存储经常访问的数据,而数据分片可以将数据分散存储在多个节点上,以实现并行处理和负载均衡。

总之,API网关模式和数据架构模式的技术实现方法可以根据具体的需求和系统架构来选择和组合使用,以实现高效的数据管理和访问。

需要根据具体应用场景和需求选择合适的数据架构模式,以提高系统的可扩展性、可维护性和性能。

5.数据湖架构

数据湖架构是一种数据存储和处理架构模式,它将结构化和非结构化数据存储在一个集中的存储库中,称为数据湖。数据湖中的数据可以以原始格式保存,而不需要事先定义数据模式或架构。

数据湖架构的主要特点包括:

  1. 灵活性:数据湖可以存储各种类型的数据,包括结构化数据(如数据库表)和非结构化数据(如文本文件、日志文件、图像和音频文件等),并且不需要预定义数据模式或架构。

  2. 扩展性:数据湖可以根据需要扩展存储容量,可以处理大规模的数据存储和处理需求。

  3. 多样性:数据湖可以支持各种数据处理工具和技术,包括数据抽取、转换和加载(ETL)、数据挖掘、机器学习和大数据分析等。

  4. 实时性:数据湖可以处理实时数据,并支持实时数据处理和分析。

  5. 数据访问控制和安全性:数据湖可以提供访问控制和数据安全机制,以确保只有经过授权的用户可以访问和处理数据。

数据湖架构可以帮助组织更好地管理和利用数据,提供更灵活和可扩展的数据存储和处理能力,支持各种数据分析和应用场景。

6.数据仓库架构

数据仓库架构是指在数据仓库系统中组织和管理数据的结构和模式。架构模式是指在数据仓库架构中采用的设计模式和组织结构。

常见的数据仓库架构模式包括:

  1. 谷仓式架构(Data Mart Architecture):将数据仓库分为多个数据集市,每个数据集市独立管理特定的业务领域数据,便于数据集市的独立维护和查询。

  2. 企业级数据仓库架构(Enterprise Data Warehouse Architecture):将整个数据仓库系统作为一个整体进行设计和管理,集成企业内部各个业务领域的数据,并提供统一的数据查询和报表功能。

  3. 中心化架构(Centralized Architecture):将所有的数据仓库存储和处理功能集中在一个中心服务器上,便于集中管理和维护,但可能存在性能瓶颈和单点故障的问题。

  4. 分布式架构(Distributed Architecture):将数据仓库的存储和处理功能分散到多个服务器上,提高系统的可扩展性和灵活性,但也增加了系统的复杂性和管理难度。

  5. 混合架构(Hybrid Architecture):将中心化架构和分布式架构相结合,根据业务需求灵活选择集中管理或分散处理的模式,以平衡系统性能和管理成本。

以上是常见的数据仓库架构模式,具体的架构设计应根据实际业务需求和系统规模进行选择和优化。

参考资料和推荐阅读

参考资料
官方文档
开源社区
博客文章
书籍推荐
暂无

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~,如果有兴趣,可以加文末的交流群,大家一起进步哈

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java | Leetcode Java题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution {public int findMinArrowShots(int[][] points) {if (points.length 0) {return 0;}Arrays.sort(points, new Comparator<int[]>() {public int compare(int[] point1, int[] point2) {if (point1[1] > point2[1…

微软官网列出了 Windows 11 LTSC 2024 中的全部新功能

今天早些时候&#xff0c;微软发布了有关受托管PC的Windows 11 24H2 升级和兼容性的详细信息。 该帖子针对的是负责在各自办公室和组织中处理系统的 IT 系统管理员。与此同时&#xff0c;微软也发布了有关 Windows 11 LTSC 或长期服务渠道的信息。 该公司已于四月早些时候证实…

yolov10+strongsort的目标跟踪实现

此次yolov10deepsort不论是准确率还是稳定性&#xff0c;再次超越了之前的yolodeepsort系列。 yolov10介绍——实时端到端物体检测 YOLOv10 是清华大学研究人员在 UltralyticsPython 清华大学的研究人员在 YOLOv10软件包的基础上&#xff0c;引入了一种新的实时目标检测…

Java 异常一口气讲完!(_ _)。゜zzZ

Java 异常处理 Java面向对象设计 - Java异常处理 异常是在没有定义正常执行路径时在Java程序的执行期间可能出现的条件。 Java通过将执行操作的代码与处理错误的代码分离来处理错误。 当发生异常时&#xff0c;Java会创建一个包含有关异常的所有信息的对象&#xff0c;并将其…

HTML增加文本复制模块(使用户快速复制内容到剪贴板)

增加复制模块主要是为了方便用户快速复制内容到剪贴板&#xff0c;通常在需要提供文本信息可以便捷复制的网页设计或应用程序中常见。以下是为文本内容添加复制按钮的一个简单实现步骤&#xff1a; HTML结构&#xff1a; 在文本旁边添加一个复制按钮&#xff0c;例如 <butto…

蘑菇分类检测数据集 21类蘑菇 8800张 带标注 voc yolo

蘑菇分类检测数据集 21类蘑菇 8800张 带标注 v 蘑菇分类检测数据集 21类蘑菇 8800张 带标注 voc yolo 蘑菇分类检测数据集介绍 数据集名称 蘑菇分类检测数据集 (Mushroom Classification and Detection Dataset) 数据集概述 该数据集专为训练和评估基于YOLO系列目标检测模型…

管理方法(12)-- 采购管理

采购人员不是在为公司讨价还价,而是在为顾客讨价还价,我们应该为顾客争取最低的价钱。-----山姆 沃尔顿 沃尔玛的创始人。 1. 采购的定义和原则 5R原则:适时(Right Time)、适质(Right Quality)、适量(Right Quantity)、适价(Right Price)、适地(Right Place)。…

Linux -- 文件系统(文件在磁盘中的存储)

目录 前言&#xff1a; 了解机械磁盘 初始盘片与磁头 盘片是怎么存数据的呢&#xff1f; 详解盘片 如何访问磁盘中的一个扇区呢&#xff1f; -- CHS 定位法 磁盘的逻辑存储 LBA&#xff08;Logical Block Addressing --- 逻辑块寻址&#xff09; 如何将 LBA 地址转换为…

C++ | Leetcode C++题解之第455题分发饼干

题目&#xff1a; 题解&#xff1a; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int m g.size(), n s.size();int count 0;for (int i 0, j 0; i < …

js中各种时间日期格式之间的转换

前言&#xff1a;近几天在做百度地图时,需要转换时间格式并做显示,下面这篇文章主要给大家介绍了关于js中各种时间格式的转换方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下 &#x1f308;&#x1f308;文章目录 先来认识 js 的时间格式有哪些&#xf…

CSS3旋转、平移、缩放、倾斜

CSS3平移、缩放、倾斜、旋转 前言 下面代码用到了盒子如下&#xff1a; 使用 一、平移translate() 语法&#xff1a;translate(x轴平移距离, y轴平移距离) 使用方式如下&#xff1a; /* x轴平移200px&#xff0c;y轴平移100px */ transform: translate(200px, 100px);二、…

JavaWeb——Vue组件库Element(5/6):案例:组件实现(概述、Form表单、Table表格、Pagination 分页、效果展示、完整代码)

目录 概述 Form表单 Table表格 Pagination 分页 效果展示 完整代码 概述 在刚才制作出来的页面当中&#xff0c;上面项目的名称已制作好&#xff0c;左侧的菜单栏也已配置好。 接下来主要处理的是右侧主展示区域当中的组件编写。 在右侧的主展示区域&#xff0c;主要有…

【C++】多肽

目录 一 多肽定义 1. 多肽的构成条件 1 例一 2 例二 2. 虚函数 3. 虚函数重写的两个意外 1 协变 2 析构函数的重写 二 关键字override 和 final 1. final 2.override 三 三重对比 1. 练习 四 多肽的原理 1. 多肽调用和普通调用 2.虚函数表 3. 分析 4. 原理 …

【web安全】——文件包含漏洞

1. 文件包含基础 和SQL注入等攻击方式一样&#xff0c;文件包含漏洞也是一种注入型漏洞&#xff0c;其本质就是输入一段用户能够控制的脚本或者代码&#xff0c;并让服务端执行。 1.1. 文件包含简介 什么叫包含呢&#xff1f;以PHP为例&#xff0c;我们常常把可重复使用的函…

【CKA】十二、持久化存储卷PersistentVolume

12、持久化存储卷PersistentVolume 1. 考题内容&#xff1a; 2. 答题思路&#xff1a; 按题目要求检查各个参数&#xff0c;我就是第一次没看清楚&#xff0c;把ReadWriteOnce写成ReadWriteMany了&#xff0c;幸亏做完检查了一遍 这个参数可有可无&#xff0c;加上也不影响 …

【Go语言】Ergo:构建分布式系统的现代化 Erlang 框架

Ergo 是一个基于 Go 语言的开源框架&#xff0c;专门用于构建分布式系统。它为开发人员提供了与 Erlang/OTP 类似的编程模型和功能。Ergo 通过将 Erlang 的强大分布式并发编程模型带入 Go 语言的生态中&#xff0c;使得开发者能够轻松创建高度可靠、可扩展的分布式应用程序。 …

NumPy 第三课 -- Ndarray 对象

NumPy 最重要的一个特点是其 N 维数组对象 ndarray&#xff0c;它是一系列同类型数据的集合&#xff0c;以 0 下标为开始进行集合中元素的索引。 ndarray 对象是用于存放同类型元素的多维数组。 ndarray 中的每个元素在内存中都有相同存储大小的区域。 ndarray 内部由以下内…

CMU 10423 Generative AI:lec15(Scaling Laws 大规模语言模型的扩展法则)

文章目录 一 概述1. **扩展规律的背景**2. **两种主要的扩展规律**3. **模型容量扩展规律**4. **信息论下界**5. **计算扩展规律**6. **训练高效性**7. **结论与启示** 二 2bit/parameter 概念&#xff08;模型的存储能力分析&#xff09;**1. 概念解释****2. 图表解读****3. 量…

基于SpringBoot+Vue+MySQL的校园招聘管理系统

系统展示 用户前台界面 管理员后台界面 公司后台界面 系统背景 随着高等教育的普及和就业市场的竞争加剧&#xff0c;校园招聘成为了连接学生与企业的关键桥梁。然而&#xff0c;传统的校园招聘流程繁琐、效率低下&#xff0c;且信息更新不及时&#xff0c;给企业和求职者带来了…

Leetcode: 0041-0050题速览

Leetcode: 0041-0050题速览 本文材料来自于LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer&#xff08;第 2 版&#xff09;》、《程序员面试金典&#xff08;第 6 版&#xff09;》题解 遵从开源协议为知识共享 版权归属-相同方式…