AWS 专题学习 P8 (ECS、EKS、Lambda、CloudFront、DynamoDB)

文章目录

  • 什么是 Docker?
    • 操作系统上的 Docker
    • Docker 镜像存储
    • Docker vs. Virtual Machines
    • Docker 入门
    • AWS 中的 Docker Containers Management
  • Amazon ECS
    • EC2 Launch Type
    • Fargate Launch Type
    • ECS 的 IAM Roles
    • Load Balancer Integrations
    • Data Volumes (EFS)
    • ECS Service Auto Scaling
    • EC2 Launch Type – Auto Scaling EC2 实例
  • Amazon ECR
  • Amazon EKS 概述
    • Amazon EKS - Diagram
    • Amazon EKS – 节点类型
    • Amazon EKS – 数据卷
    • AWS App Runner
  • Serverless 概述
    • 什么是无服务?
    • AWS 中的无服务
    • 为什么选择 AWS Lambda
    • AWS Lambda 的优点
    • AWS Lambda 语言支持
    • AWS Lambda 集成
    • AWS Lambda 定价:示例
    • AWS Lambda 的限制(per region)
    • Customization At The Edge
    • CloudFront Functions vs. Lambda[@Edge ](/Edge )
      • CloudFront Functions
      • Lambda[@Edge ](/Edge )
    • 总结
      • CloudFront Functions
      • Lambda[@Edge ](/Edge )
    • 默认的 Lambda
    • VPC 中的 Lambda
    • 带有 RDS 代理的 Lambda
  • Amazon DynamoDB
    • DynamoDB - 基础知识
    • DynamoDB – 表示例
    • DynamoDB – 读/写容量模式
    • DynamoDB 加速器 (DAX)
      • DynamoDB 加速器 (DAX) vs. ElastiCache
    • DynamoDB – 流处理
      • DynamoDB 流
      • Kinesis Data Streams(较新)
    • DynamoDB Global Tables
    • DynamoDB – 生存时间 (TTL)
    • DynamoDB – 用于灾难恢复的备份
    • DynamoDB – 与 Amazon S3 集成

什么是 Docker?

  • Docker 是一个用于部署应用程序的软件开发平台
  • Docker 容器可以在任何操作系统上运行,应用程序运行在容器中
  • 应用程序运行过程相同,无论它们在何处运行 —> 行为可预测
  • 无兼容性问题,更易于维护和部署
  • 减少工作量
  • 使用案例:微服务架构、将应用程序从本地直接迁移到 AWS 云,…

操作系统上的 Docker

Screenshot 2023-08-06 at 12.50.20.png

Docker 镜像存储

  • Docker 镜像存储在 Docker Repositories
  • Docker Hub (https://hub.docker.com)
    • 公共存储库
    • 查找多种技术或操作系统的基础映像(例如 Ubuntu、MySQL…)
  • Amazon ECR(Amazon Elastic Container Registry)
    • 私有存储库
    • 公共存储库(Amazon ECR Public Gallery: https://gallery.ecr.aws)

Docker vs. Virtual Machines

  • Docker 趋近于一种虚拟化技术,但并不完全是
  • 区别:与主机共享资源 => 一台服务器上有许多容器

Screenshot 2023-08-06 at 12.54.47.png

Docker 入门

Screenshot 2023-08-06 at 12.55.19.png

AWS 中的 Docker Containers Management

  • Amazon 弹性容器服务 (Amazon ECS)
    • Amazon 自己的容器平台
  • Amazon Elastic Kubernetes 服务 (Amazon EKS)
    • Amazon 托管的 Kubernetes(开源)
  • AWS Fargate
    • Amazon 自己的无服务容器平台
    • 可与 ECS 和 EKS 配合使用
  • Amazon ECR:
    • 存储容器的镜像

Amazon ECS

EC2 Launch Type

  • ECS = 弹性容器服务
  • 在 AWS 上启动 Docker 容器 = 在 ECS 集群上启动 ECS Tasks
  • EC2 启动类型:用户必须配置和维护基础设施(EC2 实例)
  • 每个 EC2 实例必须运行 ECS Agent 才能在 ECS 集群中注册
  • AWS 负责启动/停止容器
    在这里插入图片描述

Fargate Launch Type

  • 在 AWS 上启动 Docker 容器
  • 用户无需配置基础设施(无需管理 EC2 实例)
  • 一切都是无服务的!
  • 用户只需创建任务定义
  • AWS 只是根据用户需要的 CPU/RAM 为用户运行 ECS Tasks
  • 如果要扩展,只需增加 Task 数量即可。 简单 —— 不会有更多的 EC2 实例
    在这里插入图片描述

ECS 的 IAM Roles

  • EC2 实例配置文件(仅限 EC2 启动类型):
    • 由 ECS Agent 使用
    • 对 ECS 服务进行 API 调用
    • 将容器日志发送到 CloudWatch Logs
    • 从 ECR 拉取 Docker 镜像
    • 引用 Secrets Manager 或 SSM 参数存储中的敏感数据
  • ECS Task Role:
    • 允许每个任务具有特定的角色
    • 对不同 ECS 服务使用不同的角色
    • Task Role 是在 Task Definition 中定义
      在这里插入图片描述

Load Balancer Integrations

  • 应用程序负载均衡器(ALB):支持并适用于大多数用例
  • 网络负载均衡器(NLB):建议仅用于高吞吐量/高性能用例,或将其与 AWS Private Link 配对
  • 弹性负载均衡器(ELB):支持但不推荐(无高级功能 - 如 Fargate)

Screenshot 2023-08-06 at 13.08.52.png

Data Volumes (EFS)

  • 将 EFS 文件系统挂载到 ECS Tasks 上
  • 适用于 EC2 和 Fargate 启动类型
  • 在任何 AZ 中运行的任务将共享 EFS 文件系统中的相同数据
  • Fargate + EFS = Serverless
  • 使用案例:EFS 作为多可用区共享存储,实现容器的持久化
  • 注意:
    • Amazon S3 无法作为文件系统安装
      Screenshot 2023-08-06 at 13.11.44.png

ECS Service Auto Scaling

  • 自动增加/减少所需的 ECS Tasks 数量
  • ECS 实现自动扩展的方式是使用 AWS Application Auto Scaling 服务
    • ECS 服务平均 CPU 利用率
    • ECS 服务 RAM 上的 平均内存利用率规模
    • 每个目标的 ALB 请求计数 (来自 ALB 的指标)
  • 目标跟踪(Target Tracking): 根据特定 CloudWatch 指标的目标值进行扩展
  • 步进扩展(Step Scaling): 根据指定的 CloudWatch 警报进行扩展
  • 计划扩展(Scheduled Scaling): 根据指定日期/时间进行扩展(可预测的变化)
  • ECS Service Auto Scaling(任务级别)≠ EC2 Auto Scaling(EC2 实例级别)
  • Fargate Auto Scaling 更容易设置(因为无服务)

EC2 Launch Type – Auto Scaling EC2 实例

  • 通过添加底层 EC2 实例来适应 ECS 服务扩展
  • Auto Scaling Group (ASG)
    • 根据CPU 利用率扩展用户的 ASG
    • 随着时间的推移添加 EC2 实例
  • ECS Cluster Capacity Provider
    • 用于自动配置和扩展 ECS Tasks的基础设施
    • 通常与 ASG 配合使用
    • 当用户缺少容量(CPU、RAM…)时添加 EC2 实例

ECS Scaling - Service CPU 使用示例
在这里插入图片描述

Event Bridge 调用的 ECS Tasks
在这里插入图片描述

Event Bridge Schedule 调用的 ECS Tasks
在这里插入图片描述

ECS – SQS 队列示例
在这里插入图片描述

Amazon ECR

  • ECR = Elastic Container Registry
  • 在 AWS 上存储和管理 Docker 映像
  • 私有和公共存储库(Amazon ECR 公共库 https://gallery.ecr.aws)
  • 与 ECS 完全集成,由 Amazon S3 支持
  • 访问通过 IAM 控制(权限错误 => 策略)
  • 支持镜像漏洞扫描、版本控制、镜像标签、镜像生命周期…
    在这里插入图片描述

Amazon EKS 概述

  • Amazon EKS = Amazon Elastic Kubernetes Service
  • 这是在 AWS 上启动托管 Kubernetes 集群的一种方法
  • Kubernetes 是一个开源系统,用于自动部署、扩展和管理容器化(通常是 Docker)应用程序
  • EKS 是 ECS 的一种替代方案,目标类似但 API 不同
  • EKS 支持 EC2(如果要部署工作节点),也支持 Fargate(如果要部署无服务器容器)。
  • 使用案例:如果用户的公司已在本地或其他云中使用 Kubernetes,并且希望使用 Kubernetes 迁移到 AWS
  • Kubernetes 与云无关(可以在任何云中使用 – Azure、GCP…)
  • 对于多个区域,需要在每个区域部署一个 EKS 集群
  • 使用 CloudWatch Container Insights 收集日志和指标

Amazon EKS - Diagram

Screenshot 2023-08-06 at 13.22.03.png

Amazon EKS – 节点类型

  • 受托管节点组
    • 为用户创建和管理节点(EC2 实例)
    • 节点是EKS 管理的ASG 的一部分
    • 支持按需实例或 Spot 实例
  • 自我管理节点
    • 由用户创建并注册到 EKS 集群并由 ASG 管理的节点
    • 用户可以使用预构建的 AMI - Amazon EKS 优化的 AMI
    • 支持按需实例或 Spot 实例
  • AWS Fargate
    • 无需维护; 没有管理节点

Amazon EKS – 数据卷

  • 需要在 EKS 集群上指定 StorageClass 清单
  • 利用 Container Storage Interface (CSI) 兼容的驱动程序
  • 支持…
    • Amazon EBS
    • Amazon EFS(与 Fargate 配合使用)
    • Amazon FSx for Lustre
    • 适用于 NetApp ONTAP 的 Amazon FSx

AWS App Runner

  • 完全托管的服务,可以轻松大规模部署 Web 应用程序和 API
  • 无需基础架构经验
  • 从源代码或容器映像开始
  • 自动构建和部署 Web 应用程序
  • 自动扩展、高可用性、负载均衡器、加密
  • VPC 访问支持
  • 连接到数据库、缓存和消息队列服务
  • 使用案例:Web 应用程序、API、微服务、快速生产部署

Serverless 概述

什么是无服务?

  • 无服务是一种新范式,开发人员无需再管理服务器…
  • 只部署xx代码、xx功能!
  • 最初,无服务 == FaaS(函数即服务)
  • 无服务由 AWS Lambda 开创,但现在还包括任何托管内容:“数据库、消息传递、存储等”。

AWS 中的无服务

  • AWS Lambda
  • DynamoDB
  • AWS Cognito
  • AWS API Gateway
  • Amazon S3
  • AWS SNS & SQS
  • AWS Kinesis Data Firehose
  • Aurora Serverless
  • Step Functions
  • Fargate
    Screenshot 2023-08-06 at 13.22.33.png |

为什么选择 AWS Lambda

  • Amazon EC2
    • 云中的虚拟服务器
    • 受 RAM 和 CPU 限制
    • 连续运行
    • 扩展意味着需要人工干预去添加/删除服务器
  • Amazon Lambda
    • 虚拟功能——无需管理服务器!
    • 受时间限制 - 执行时间短
    • 按需运行
    • 缩放是自动的!

AWS Lambda 的优点

  • 轻松定价:
    • 按请求和计算时间付费
    • 提供免费的使用额度,包括1,000,000个AWS Lambda请求和400,000 GB的计算时间
  • 与整个 AWS 服务套件集成
  • 与多种编程语言集成
  • 通过AWS CloudWatch 轻松监控
  • 轻松为函数获取更多资源(高达 10GB RAM!)
  • 增加 RAM 也能提高CPU和网络性能

AWS Lambda 语言支持

  • Node.js (JavaScript)
  • Python
  • Java(兼容 Java 8)
  • C#(.NET 核心)
  • Go 语言
  • C# / Powershell
  • 红宝石
  • 自定义运行时 API(社区支持,例如 Rust)
  • Lambda 容器映像
    • 容器映像必须实现Lambda Runtime API
    • ECS / Fargate 是运行任意 Docker 镜像的首选

AWS Lambda 集成

Main ones
Screenshot 2023-08-06 at 13.24.42.png
示例:无服务缩略图创建
Screenshot 2023-08-06 at 13.25.22.png
示例:无服务 CRON 作业
Screenshot 2023-08-06 at 13.26.07.png

AWS Lambda 定价:示例

  • 用户可以在此处找到总体定价信息:
    https://aws.amazon.com/lambda/pricing/
  • 按调用量付费:
    • 前 1,000,000 个请求免费
    • 此后每 100 万个请求 0.20 美元(每个请求 0.0000002 美元)
  • 按持续时间付费:(以 1 毫秒为增量)
    • 每月免费 400,000 GB-秒 的计算时间
      • exp: 400,000 秒(如果函数为 1GB RAM)
      • exp: 3,200,000 秒(如果函数为 128 MB RAM)
    • 此后 600,000 GB 秒 1.00 美元
  • 运行 AWS Lambda 通常非常便宜,因此非常受欢迎

AWS Lambda 的限制(per region)

  • 执行:
    • 内存分配:128 MB ~ 10GB(1 MB 增量)
    • 最长执行时间:900 秒(15 分钟)
    • 环境变量 (4 KB)
    • “功能容器”中的磁盘容量(/tmp):512 MB 至 10GB
    • 并发执行:1000(可以增加)
  • 部署:
    • Lambda 函数部署大小(压缩的.zip):50 MB
    • 未压缩部署的大小(代码+依赖项):250 MB
    • 可以使用/tmp目录在启动时加载其他文件
    • 环境变量的大小:4 KB

Customization At The Edge

  • 许多现代应用程序在边缘执行某种形式的逻辑
  • 边缘功能:
    • 用户编写并附加到 CloudFront 分配的代码
    • 靠近用户运行以最大限度地减少延迟
  • CloudFront 提供两种类型:CloudFront Functions 和 Lambda@Edge
  • 用户无需管理全球部署的任何服务器
  • 使用案例:定制CDN 内容
  • 仅按使用量付费
  • 完全无服务

CloudFront Functions vs. Lambda@Edge

Screenshot 2023-08-06 at 13.26.44.png
用例:

  • 网站安全和隐私
  • 边缘的动态 Web 应用程序
  • 搜索引擎优化(SEO)
  • 智能路由跨源和数据中心
  • 边缘机器人缓解
  • 实时图像转换
  • A/B 测试
  • 用户身份验证和授权
  • 用户优先级
  • 用户跟踪和分析

CloudFront Functions

  • 用 JavaScript 编写的轻量级函数
  • 适用于大规模、延迟敏感的 CDN 定制
  • 亚毫秒级启动时间,每秒数百万个请求
  • 用于更改查看器请求和响应:
    • 查看者请求:CloudFront 收到查看者的请求后
    • 查看器响应:在 CloudFront 将响应转发给查看器之前
  • CloudFront 的本机功能(完全在 CloudFront 内管理代码)

Lambda@Edge

  • 用 NodeJS 或 Python 编写的 Lambda 函数
  • 可扩展到每秒 1000 个请求
  • 用于更改 CloudFront 请求和响应:
    • 查看者请求:CloudFront 收到查看者的请求后
    • 源请求:在 CloudFront 将请求转发到源之前
    • 源响应:CloudFront 收到来自源的响应后
    • 查看器响应:在 CloudFront 将响应转发给查看器之前
  • 在一个 AWS 区域 (us-east-1) 中编写用户的函数,然后 CloudFront 复制到其位置

总结

CloudFront Functions

  • 缓存键规范化
    • 转换请求属性(标头、cookie、查询字符串、URL)以创建最佳缓存键
  • Header 操作
    • 在请求或响应中插入/修改/删除 HTTP 标头
  • URL 重写或重定向
  • 请求身份验证和授权
    • 创建并验证用户生成的令牌(例如 JWT)以允许/拒绝请求
      在这里插入图片描述

Lambda@Edge

  • 较长的执行时间(几毫秒)
  • 可调节CPU或内存
  • 用户的代码依赖于第三个库(例如,用于访问其他 AWS 服务的 AWS SDK)
  • 网络访问以使用外部服务进行处理
  • 文件系统访问或对 HTTP 请求正文的访问
    Screenshot 2023-08-06 at 13.30.38.png

默认的 Lambda

  • 默认情况下,用户的 Lambda 函数在用户自己的 VPC 外部(在 AWS 拥有的 VPC 中)启动
  • 因此,它无法访问用户的VPC 中的资源(RDS、ElastiCache、内部ELB…)

Screenshot 2023-08-06 at 13.32.37.png

VPC 中的 Lambda

  • 用户必须定义 VPC ID、子网和安全组
  • Lambda 将在用户的子网中创建 ENI(弹性网络接口)

Screenshot 2023-08-06 at 13.32.59.png

带有 RDS 代理的 Lambda

  • 如果 Lambda 函数直接访问用户的数据库,它们可能会在高负载下打开太多连接
  • RDS 代理
    • 通过池化和共享数据库连接来提高可扩展性
    • 通过减少 66% 的故障转移时间并保留连接来提高可用性
    • 通过在 Secrets Manager 中强制执行 IAM 身份验证和存储凭证来提高安全性
  • Lambda 函数必须部署在用户的 VPC 中,因为 RDS Proxy 永远无法公开访问

Screenshot 2023-08-06 at 13.33.42.png

Amazon DynamoDB

  • 完全托管、高度可用,可跨多个可用区进行复制
  • NoSQL 数据库,具有事务支持
  • 可扩展到海量工作负载、分布式数据库
  • 每秒数百万个请求、数万亿行、数百TB 存储
  • 快速且一致的性能(个位数毫秒)
  • 与 IAM 集成以实现安全、授权和管理
  • 低成本和自动扩展功能
  • 无需维护或修补,始终可用
  • 标准和不频繁访问 (IA) 表类

DynamoDB - 基础知识

  • DynamoDB 由表组成
  • 每个表都有一个主键(必须在创建时决定)
  • 每个表可以有无限数量的项目(= 行)
  • 每个项目都有属性(可以随着时间的推移添加 - 可以为空)
  • 项目的最大大小为 400KB
  • 支持的数据类型有:
    • 标量类型 – 字符串、数字、二进制、布尔值、空值
    • 文档类型 – 列表、地图
    • 集合类型 – 字符串集合、数字集合、二进制集合
  • 因此,在 DynamoDB 中,用户可以快速发展架构

DynamoDB – 表示例

Screenshot 2023-08-06 at 13.34.14.png

DynamoDB – 读/写容量模式

  • 控制管理表容量的方式(读/写吞吐量)
  • 配置模式(默认)
    • 用户指定每秒读/写的数量
    • 用户需要提前规划容量
    • 支付预配置的读取容量单位 (RCU) 和写入容量单位 (WCU) 费用
    • 可以为 RCU 和 WCU 添加自动缩放模式
  • 点播模式
    • 读/写会根据用户的工作负载自动扩展/缩减
    • 无需进行容量规划
    • 按使用量付费,价格更高 ($$$)
    • 非常适合不可预测的工作负载、陡峭的突然峰值

Screenshot 2023-08-06 at 13.34.42.png

DynamoDB 加速器 (DAX)

  • DynamoDB 的完全托管、高可用性、无缝内存缓存
  • 通过缓存帮助解决读取拥塞
  • 缓存数据的微秒级延迟
  • 不需要修改应用程序逻辑(与现有的DynamoDB API 兼容)
  • 5 分钟 TTL 缓存(默认)

DynamoDB 加速器 (DAX) vs. ElastiCache

Screenshot 2023-08-06 at 13.35.08.png

DynamoDB – 流处理

  • 表中项目级修改(创建/更新/删除)的有序流
  • 用例:
    • 实时响应变化(向用户发送欢迎电子邮件)
    • 实时使用情况分析
    • 插入衍生表
    • 实施跨区域复制
    • 对 DynamoDB 表的更改调用 AWS Lambda

DynamoDB 流

  • 24 小时保留期
  • 消费者数量有限
  • 使用 AWS Lambda 触发器或 DynamoDB Stream Kinesis 适配器进行处理

Kinesis Data Streams(较新)

  • 保留 1 年
  • 消费者数量多
  • 使用 AWS Lambda、Kinesis Data Analytics、Kineis Data Firehose、AWS Glue Streaming ETL 进行处理…

DynamoDB 流
Screenshot 2023-08-06 at 13.35.51.png

DynamoDB Global Tables

  • 使 DynamoDB 表可在多个区域中以低延迟进行访问
  • 主动-主动复制
  • 应用程序可以读取和写入任何区域的表
  • 必须启用 DynamoDB Streams 作为先决条件

Screenshot 2023-08-06 at 13.36.36.png

DynamoDB – 生存时间 (TTL)

  • 在过期时间戳后自动删除项目
  • 使用案例:通过仅保留当前项目来减少存储的数据、遵守监管义务、Web 会话处理…

Screenshot 2023-08-06 at 13.37.17.png

DynamoDB – 用于灾难恢复的备份

  • 使用时间点恢复 (PITR) 进行连续备份
    • 可选择在过去 35 天内启用
    • 时间点恢复到备份窗口内的任何时间
    • 恢复过程创建一个新表
  • 按需备份
    • 完整备份可长期保留,直至明确删除
    • 不影响性能或延迟
    • 可以在AWS Backup 中进行配置和管理(支持跨区域复制)
    • 恢复过程创建一个新表

DynamoDB – 与 Amazon S3 集成

  • 导出到S3(必须启用PITR)
    • 适用于过去 35 天内的任何时间点
    • 不影响表的读取容量
    • 在DynamoDB 之上执行数据分析
    • 保留快照以供审核
    • 在导入回 DynamoDB 之前对 S3 数据进行 ETL
    • 以DynamoDB JSON 或ION 格式导出
  • 导入到 S3
    • 导入 CSV、DynamoDB JSON 或 ION 格式
    • 不消耗任何写入容量
    • 创建一个新表
    • 导入错误记录在CloudWatch Logs 中

Screenshot 2023-08-06 at 13.37.52.png
示例:构建无服务 APIScreenshot 2023-08-06 at 13.38.12.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HCIA——20应用层:C/S、P2P、peer

学习目标: 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

产品经理学习-产品运营《用户运营策略》

⽤户画像与⽤户运营策略 什么是用户画像 对产品运营而言,用户画像就是对用户的各种特征贴上标签通过这些标签将用户分成不同的用户群体 为用户提供有针对性的服务。 制作用户画像是为了专注和精准 使产品的服务对象更加聚焦,更加专注;根据产…

红包封面免费送1000个,你设计,我出额度

相信最近大家或多或少都知道了吧,腾讯又又又给大家,准确的说是给一年勤奋的公众号/视频号博主一个福利 根据不同博主的粉丝、更新频度以及作品质量,给力博主们免费制作红包封面的福利 比如我这个号,有6000额度 那这6000个&#…

Python武器库开发-武器库篇之Fofa-API使用(四十六)

Python武器库开发-武器库篇之Fofa-API使用(四十六) FOFA(FOcus Observation of Futures Assets)是一款专业的网络资产搜索引擎,旨在帮助企业发现和评估网络上的潜在安全风险。FOFA的基本原理是通过搜索引擎的方式,按照关键词对互…

Civil 3D安装教程,免费使用,带安装包和工具,一分钟轻松搞的安装

前言 Civil 3D是一款面向基础设施行业的建筑信息模型(BIM)解决方案。它为基础设施行业的各类技术人员提供了强大的设计、分析以及文档编制功能,广泛适用于勘察测绘、岩土工程、交通运输、水利水电、市政给排水、城市规划和总图设计等众多领域…

【Spring 篇】MyBatis核心配置文件解密:数据之门的守护精灵

欢迎来到MyBatis的幕后花絮,今天我们将深入解析MyBatis的核心配置文件,这个神秘的数据之门的守护精灵。这份配置文件是连接你的应用程序和数据库之间的纽带,也是整个MyBatis舞台背后的幕后工作者。在这篇博客中,我们将揭开核心配置…

ES框架详解

ES框架详解 1、全文检索的介绍 ​ 那么对于一般的公司,初期是没有那么多数据的,所以很多公司更倾向于使用传统的数据库:mysql;比如我们要查找关键字”传智播客“,那么查询的方式大概就是:select * from table where …

vue3项目eslint配置、配置prettier(格式化配置)

文章链接: 全部配置链接 第一步:eslint配置、配置prettier(代码格式化):点击链接 (1) .eslint.cjs—eslint配置文件 (2).eslintignore—校验忽略文件 (3).prettierrc.json添加规则 (4).prettierignore忽略文件 prettierrc规范说明: npm install -D eslint-plugin-import…

修复uni-simple-router@2.0.7版本query参数null的bug

问题:query参数为null或者为空时,插件内部参数校验问题导致的会报错:TypeError: Cannot convert undefined or null to object at Function.keys 源码修改如下: 通过打补丁的方式修复query参数类型校验问题 1. 安装patch-packag…

SPI 动态服务发现机制

SPI(Service Provier Interface)是一种服务发现机制,通过ClassPath下的META—INF/services文件查找文件,自动加载文件中定义的类,再调用forName加载; spi可以很灵活的让接口和实现分离, 让API提…

Packet Tracer - 配置第 3 层交换和VLAN间路由

地址分配表 设备 接口 IP 地址/前缀 MLS VLAN 10 192.168.10.254 /24 MLS VLAN 10 2001:db8:acad:10::1/64 MLS VLAN 20 192.168.20.254 /24 MLS VLAN 20 2001:db8:acad:20::1/64 MLS VLAN 30 192.168.30.254/24 MLS VLAN 30 2001:db8:acad:30::1/64 MLS …

免费三款备受推崇的爬虫软件

在信息爆炸的时代,爬虫软件成为了数据采集、信息挖掘的得力工具。为了解决用户对优秀爬虫软件的需求,本文将专心分享三款备受推崇的爬虫软件,其中特别突出推荐147采集软件,为您开启爬虫软件的奇妙世界。 一、爬虫软件的重要性 爬…

Hive数仓框架详解

Hive框架详解 1、Hive的介绍 ​ Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 ​ 本质是将SQL转换为MapReduce程序。 ​ 主要用途:用来做离线数据分析,比直接用MapRed…

Python圣诞主题绘图:用turtle库打造冬日奇妙画面【第31篇—python:圣诞节】

文章目录 Python圣诞主题绘图导言代码结构概览详细解析drawlight函数tree函数xzs函数drawsnow函数五角星的绘制 完整代码代码解析总结 Python圣诞主题绘图 导言 圣诞季节是个充满欢乐和创意的时刻。在这个技术博客中,我们将深入探讨如何使用Python的turtle库创建一…

MySQL LIKE 子句

昨天介绍了 MySQL 数据库使用 DELETE 语句来删除数据,今天主要讲解下 MySQL LIKE 子句。 通过前几天的讲解,我们知道,在 MySQL 中使用 SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。 W…

QWidget: Must construct a QApplication before a QWidget 20:10:25: 程序异常结束。

如果你在Windows上混合并匹配了Release和Debug的dll,则会导致这种情况。我的链接的库是release的版本,也就是qwt.dll,但是点击Qt Creator的运行按钮默认是debug启动,所以报错了,Qt Creator运行按钮里选择release就可以…

x-cmd pkg | jieba - 中文结巴分词工具

目录 简介首次用户功能特点竞品分析进一步阅读 简介 结巴中文分词(jieba)是一款在 Python 环境下使用的开源中文文本分词工具。它支持多种分词模式,包括精确模式、全模式和搜索引擎模式,同时支持繁体分词和自定义词典。因其易用性…

PXE批量高效网络装机

总结 1实验流程只能抄老师,记忆浅 2排错能力几乎无 3 指令用的太死, 一 系统装机的三种引导方式 启动 操作 系统 1.硬盘 2.光驱(u盘) 3.网络启动 pxe 重装系统? 在已有操作系统 新到货了一台服务器&#xff…

C++播放音乐:使用EGE图形库

——开胃菜,闲话篓子一大片 最近,我发现ege图形库不是个正经的图形库—— 那天,我又在打趣儿地翻代码时,无意间看到了这个: 图形库?!你哪来的音乐(Music)呢&#xff1f…

数据结构之二叉树的性质与存储结构

数据结构之二叉树的性质与存储结构 1、二叉树的性质2、二叉树的存储结构 数据结构是程序设计的重要基础,它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发,分析和研究计算机加工的数据的特性,…