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

日志服务 HarmonyOS NEXT 日志采集最佳实践

作者:高玉龙(元泊)

背景信息

随着数字化新时代的全面展开以及 5G 与物联网(IoT)技术的迅速普及,操作系统正面临前所未有的变革需求。在这个背景下,华为公司自主研发的鸿蒙操作系统(HarmonyOS)应运而生,旨在满足万物互联时代的多元化设备接入、高效协同和安全可靠运行的需求。

HarmonyOS 不仅着眼于智能手机市场,更是全球首个面向全场景智能生态的操作系统,支持从手机、平板电脑到智能家居、穿戴设备乃至工业控制等多种终端形态。2024 年 1 月 18 日正式推出 HarmonyOS NEXT 鸿蒙星河开发者预览,深圳市于 2024 年 3 月 3 日也发布了支持开源鸿蒙原生应用发展的 2024 年行动计划。

图片

日志服务(SLS)介绍

日志服务(SLS,后文简称 SLS)是云原生观测与分析平台,为 Log、Metric、Trace 等数据提供大规模、低成本、实时的平台化服务。SLS 一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升您在研发、运维、运营、安全等场景的数字化能力。

图片

在构建复杂而庞大的应用和智能生态系统过程中,SLS 作为开发调试、性能优化、运维监控和故障排查的重要基础设施。为确保各类应用程序能够在鸿蒙操作系统上实现无缝对接并高效利用 SLS,对 SLS SDK 进行 HarmonyOS 原生适配成为必然之举。

此举不仅可以提升鸿蒙生态下应用的稳定性和可靠性,也有助于开发者更好地遵循统一的标准和最佳实践,进一步促进鸿蒙操作系统生态的繁荣与发展。在这种情况下,基于 SLS 的移动应用日志管理和分析将成为不可或缺的工具,基于对 SLS+ 移动应用日志可以帮助开发人员快速定位和解决问题,优化应用性能。

SDK 特性介绍

HarmonyOS 下的 SLS SDK 基于共同的基座 C Core SDK 适配,底层适配鸿蒙NDK。C Core 部分使用纯 C 语言编写,对性能进行了极端优化(包括缓存管理、文件管理、PB 序列化等),能够适用于 IoT、移动端、服务端等各种场景。SDK 提供 ArkTS 语言原生调用 API。SDK 具备以下特性:

  • 异步
    • 客户端线程写入无阻塞
    • 日志队列异步发送
  • 聚合&压缩上传
    • 日志聚合发送(支持按超时时间、日志数、日志大小聚合)
    • 支持 lz4、zstd 压缩
  • 多实例
    • 支持创建多个实例分别发送到不同的目标
    • 可以实例配置独立,互不影响
  • 缓存
    • 支持设置可允许占用的缓存内存上限
    • 超过内存缓存上限时,日志写入会失败
  • 自定义标识
    • 支持设置自定义 Tag 和 Topic
  • 断点续传
    • 支持日志缓存到本地文件,只有发送成功才会删除,确保日志上传 At Least Once
  • 日志上下文
    • 支持查看某条日志的上下文,可以更好的定位问题

图片

HarmonyOS SDK 通过 OpenHarmony 三方库中心托管发布,当前支持 HarmonyOS NEXT API 9.0 及以上,仅支持 stage 模式。

SDK 使用最佳实践

准备工作

在使用 HarmonyOS SDK 进行日志采集之前,您需要做一些准备工作。

  • 已开通日志服务(SLS),请参见开通日志服务 [ 1]
  • 已创建好对应的 Project 和 Logstore,请参见管理 Project [ 2] 和管理 Logstore [ 3]
  • 已创建并获取 AccessKey,请参见访问密钥 [ 4] 。阿里云账号 AccessKey 拥有所有 API 的访问权限,风险很高。强烈建议您创建并使用 RAM 用户进行 API 访问或日常运维。RAM 用户需具备操作日志服务(SLS)资源的权限。具体操作,请参见为 RAM 用户授权 [ 5]
  • [可选]搭建 HarmonyOS 开发环境。开发鸿蒙应用需要使用 HarmonyOS 的 IDE 进行开发,具体内容请参考 HarmonyOS 官网开发文档 [ 6]

日志采集

安装 SDK

在项目的 entry 或 library 目录下执行如下命令。

ohpm install @aliyunsls/producer --registry=https://ohpm.openharmony.cn/ohpm

以上命令执行完成后,在 entry 或 library 目录下的 oh-package.json5 文件中会自动增加以下信息。

"dependencies": {"@aliyunsls/producer": "^0.1.0"
}

你可以通过以上信息来确定 SDK 是否安装成功。

集成 SDK

SDK 安装成功后,您可以按照实际业务需要,在指定的 ets 文件中导入 SLS 模块。

import { AliyunLog } from "@aliyunsls/producer"

您还需要完成 SDK 的初始化工作。

let aliyunLog: AliyunLog = new AliyunLog("https://cn-qingdao.log.aliyuncs.com", // 需要根据实际业务需要,替换为您Project所在Region"test-project-yuanbo", // 需要根据实际业务需要,替换为您的Project"applog", // 需要根据实际业务需要,替换为您的Logstore"<accesskey id>","<accesskey secret>","<accesskey token>" // 仅当AccessKey是通过STS方式获取时才需要
);

参数说明:

参数名称说明
endpointSLS 所在地域的访问域名,请参见服务入口 [ 7]
projectSLS 的资源管理单元,请参见项目(Project) [ 8]
logstoreSLS 中日志数据的采集、存储和查询单元,请参见日志库(Logstore) [ 9]
accesskey调用 API 访问云资源的安全口令,请参见访问密钥 [ 10]
日志采集

完成 SDK 的初始化之后,可以通过以下方式完成日志的采集。

aliyunLog.addLog(new Map([// 根据实际业务需要,调整您需要上报的业务字段["from", "Home"],["page", "HomePage"],]
));

更多 SDK 使用相关的信息,建议您参考 SLS 官网文档 HarmonyOS SDK [1****1]

日志使用

场景一:查询和可视化分析

数据通过 SDK 采集上来之后,我们可以通过 SLS 控制台进行日志的查询和分析。

首先在 SLS 控制台 Project 列表中找到您的 Project,并进入到 Project 页面。如下:

图片

接着,在左侧日志库菜单中找到您的 Logstore。如下:

图片

如果 Logstore 没有开启索引,在您打开 Logstore 页面之后,会收到一个“未开启日志库索引”的提示框。您可以通过 Logstore 页面右上角的开启索引按钮来配置相关字段的索引。配置索引的具体方式可以参考创建索引 [ 12] 这篇文档。本文示例的 Logstore 已经对以下字段进行了索引配置:

图片

索引开启后,即可在 Logstore 页面看到我们上报的日志信息,如下:

图片

注意: 如果您的日志是在开启索引之前写入的,您需要重建索引后才能看到历史写入的数据。如何重建索引?您可以参考文档重建索引 [ 13]

可视化分析示例一:分析 CartPage 的访问趋势

基于示例数据,我们可以通过 SQL 查询出 page 字段的访问趋势,如下:

* and page: CartPage | select date_trunc('minute', __time__)  as minute, count(*) as cnt group by minute order by minute asc

以上查询分析语句的含义是:

  • “|”之前的部分,是通过查询语句 page: CartPage 过滤出 page 为 CartPage 的页面数据。请参考更多关于查询语法 [ 14] 的信息。
  • “|”之后的部分,是通过 SQL 语句对过滤出来的数据进行分析,即:通过 date_trunc 语句把时间对齐到分钟级别,然后使用 count(*) 计算出每分钟页面的访问次数。请参考更多关于分析语法 [ 15] 的信息。

通过 SLS 可视化能力,可以对查询分析的结果使用丰富的图表展示,如下图是通过“线图 Pro”类型的图表,按照时间升序展示每分钟的页面访问次数。

图片

可视化分析示例二:分析 CartPage 页面的访问来源

基于示例数据,可以使用如下查询分析语句查询 Cart 页面的来源分布:

* and page: CartPage | select "from"  as "from", count(*) as cnt group by "from"

备注: 因为 from 是 SQL 的保留字段,因此示例中使用了双引号""对 from 进行包装。

下图是通过饼图 Pro 类型的图表,绘制的来源页面分布。

图片

SLS 拥有非常强大的可视化分析能力,以上仅是非常简单的示例。实际使用中,可能会涉及到多种指标的同比/环比,漏斗转化实时分析等等。SLS 对此提供了非常灵活和丰富的能力进行支持。更多信息可以参考查询与分析 [ 16] 以及可视化 [ 17]

场景二:日志加工处理

如果从鸿蒙设备上采集到的原始数据格式没有事先约定好,或者数据格式较为复杂,或者需要对个别字段做富化/脱敏等,您可以使用 SLS 数据加工能力对原始数据做富化和清洗。您可以参考以下步骤。

  1. [可选]新增一个 Logstore 用于存储加工处理后的数据,如下:

图片

可根据实际业务的需要,提前对该 Logstore 进行索引等配置。

  1. 进入到数据加工配置页面

图片

您可以通过 Logstore 名称右侧的“数据加工”超链接进入到数据加工配置页面。

  1. 配置数据加工任务

图片

如上图,您可以参考以下步骤配置数据加工任务。

a. 把目标数据加入到测试数据,用于验证数据加工脚本是否符合预期。

b. 在脚本编辑区域,根据实际业务需要输入数据加工脚本规则,示例如下:

# 富化__tag__:__client_ip__字段,提取出省、市、经纬度等信息
e_set("x", geo_parse(v("__tag__:__client_ip__")))
e_json("x", prefix="geo_") # 平铺x节点,并增加geo_前缀e_drop_fields("x")# 平铺content节点
e_json("content")
e_drop_fields("content")

关于数据加工脚本支持的语法,您可以参考数据加工语法 [ 18]

c. 脚本编写完成后,您可以通过右上角“预览数据”按钮验证数据加工的结果。

如下图,是以上数据加工脚本的预览结果:

图片

数据加工预览结果符合预期后,您就可以保存当前数据加工任务了,后续的具体操作请参考创建数据加工任务 [ 19]

其他场景

除了上文中提到的查询与可视化分析、日志加工处理之外,SLS 还支持基于业务日志创建自定义告警监控业务,通过流处理、批处理(定时SQL)功能对数据进一步加工、聚合处理,通过消费与投递功能投递业务数据到 OSS、MaxCompute 等。您可以通过访问日志服务(SLS) [ 20] 官网文档等方式进一步了解 SLS 各种功能,助力您的业务发展。

总结

SLS SDK 通过适配 HarmonyOS NDK,并提供原生 ArkTS 语言原生 API 的方式,使开发者能够确保应用程序在 HarmonyOS 操作系统上实现无缝对接和高效利用 SLS 功能,可以有效提升应用的稳定性和性能。SDK 提供的异步日志写入、日志聚合压缩上传、缓存控制、自定义标识、断点续传、日志上下文查看等丰富特性,可以简化日志管理流程,提升故障排查、性能优化、资源利用监控、安全防范等方面的能力。

此外,借助 SLS 的强大平台功能,如实时查询、可视化分析、数据加工处理等等能力,不仅能够快速定位问题,优化应用性能,还能够在满足数据合规性要求的同时,基于业务日志构建全面的运维监控体系,为数字化运营决策提供有效支持。

除了以上能力外,SLS 还提供基于 OTel(OpenTelemetry)协议的多平台数据采集插件,您可以借助这些插件实现端到端的 Trace 数据采集和分析能力。

  • 通过 OpenTelemetry 接入 Android Trace 数据

https://help.aliyun.com/zh/sls/user-guide/import-trace-data-from-android-apps-to-log-service-1

  • 通过 OpenTelemetry 接入 iOS Trace 数据

https://help.aliyun.com/zh/sls/user-guide/import-trace-data-from-ios-apps-to-log-service-46

  • 通过 OpenTelemetry 接入 Flutter/Dart Trace 数据

https://help.aliyun.com/zh/sls/user-guide/import-trace-data-from-flutter-and-dart-applications-by-using-opentelemetry-sdk-for-flutter

  • 通过 OpenTelemetry 接入 C++ Trace 数据

https://help.aliyun.com/zh/sls/user-guide/import-trace-data-from-cpp-applications-to-log-service

  • 接入 Web Trace 数据

https://help.aliyun.com/zh/sls/user-guide/import-data-from-web-pages-to-log-service

  • 接入小程序 Trace 数据

https://help.aliyun.com/zh/sls/user-guide/import-data-from-mini-programs-to-log-service

更多关于 Trace 数据采集和使用相关的内容,你可以参考 SLS Trace [2****1] 服务。欢迎您试用!

相关链接:

[1] 开通日志服务

https://www.aliyun.com/product/sls

[2] 管理 Project

https://help.aliyun.com/zh/sls/user-guide/manage-a-project

[3] 管理 Logstore

https://help.aliyun.com/zh/sls/user-guide/manage-a-logstore

[4] 访问密钥

https://help.aliyun.com/zh/sls/developer-reference/accesskey-pair#reference-rh5-tfy-zdb

[5] 为 RAM 用户授权

https://help.aliyun.com/zh/sls/create-a-ram-user-and-authorize-the-ram-user-to-access-log-service#section-kxp-1ok-zj4

[6] HarmonyOS 官网开发文档

https://developer.huawei.com/consumer/cn/doc/

[7] 服务入口

https://help.aliyun.com/zh/sls/user-guide/manage-a-project#section-mb8-vvq-67c

[8] 项目(Project)

https://help.aliyun.com/zh/sls/product-overview/project

[9] 日志库(Logstore)

https://help.aliyun.com/zh/sls/product-overview/logstore

[10] 访问密钥

https://help.aliyun.com/zh/sls/developer-reference/accesskey-pair

[11] HarmonyOS SDK

https://help.aliyun.com/zh/sls/developer-reference/harmonyos-sdk/

[12] 创建索引

https://help.aliyun.com/zh/sls/user-guide/create-indexes

[13] 重建索引

https://help.aliyun.com/zh/sls/user-guide/reindex-logs-for-a-logstore

[14] 查询语法

https://help.aliyun.com/zh/sls/user-guide/search-syntax

[15] 分析语法

https://help.aliyun.com/zh/sls/user-guide/sql-syntax-and-functions/

[16] 查询与分析

https://help.aliyun.com/zh/sls/user-guide/index-and-query/

[17] 可视化

https://help.aliyun.com/zh/sls/user-guide/visualization-2/

[18] 数据加工语法

https://help.aliyun.com/zh/sls/user-guide/data-processing-syntax/

[19] 创建数据加工任务

https://help.aliyun.com/zh/sls/user-guide/create-a-data-transformation-job

[20] 日志服务(SLS)

https://help.aliyun.com/zh/sls/product-overview/

[21] SLS Trace

https://help.aliyun.com/zh/sls/user-guide/usage-notes-39

相关文章:

日志服务 HarmonyOS NEXT 日志采集最佳实践

作者&#xff1a;高玉龙&#xff08;元泊&#xff09; 背景信息 随着数字化新时代的全面展开以及 5G 与物联网&#xff08;IoT&#xff09;技术的迅速普及&#xff0c;操作系统正面临前所未有的变革需求。在这个背景下&#xff0c;华为公司自主研发的鸿蒙操作系统&#xff08…...

Educational Codeforces Round 133 (Rated for Div. 2) (C dp D前缀和优化倍数关系dp)

A&#xff1a;能用3肯定用三&#xff0c;然后分类讨论即可 #include<bits/stdc.h> using namespace std; const int N 2e510,M2*N,mod998244353; #define int long long typedef long long LL; typedef pair<int, int> PII; typedef unsigned long long ULL; usi…...

【讲解下如何Stable Diffusion本地部署】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

wps斜线表头并分别打字教程

wps斜线表头怎么做并分别打字&#xff1a; 1、首先选中我们想要设置的表头。 2、接着右键选中它&#xff0c;点击“设置单元格格式” 3、然后点击上方“边框”选项卡。 4、随后选择图示的斜线&#xff0c;点击“确定” 5、设置完成后&#xff0c;我们只要在其中打字就可以在斜…...

2024第八届全国青少年无人机大赛暨中国航空航天科普展览会

2024第八届全国青少年无人机大赛暨中国航空航天科普展览会 邀请函 主办单位&#xff1a; 中国航空学会 重庆市南岸区人民政府 招商执行单位&#xff1a; 重庆港华展览有限公司 为更好的培养空航天产业人才&#xff0c;汇聚航空教育产业创新科技&#xff0c;丰富和完善航…...

fastadmin学习08-查询数据渲染到前端

index.php查询&#xff0c;这个是前台的index.php public function index() {$slideImgs Db::name("slideimg")->where("status",,normal)->limit(5)->order(sort,desc)->select();$productList Db::name("product")->where(…...

实验报告答案

基本任务&#xff08;必做&#xff09; 先用普通用户&#xff08;自己的姓名拼音&#xff09;登录再操作 编程有代码截图和执行过程结果截图 代写获取&#xff1a; https://laowangall.oss-cn-beijing.aliyuncs.com/studentall.pdf 1. Linux的Shell编程 &#xff08;1&am…...

PDF编辑和格式转换工具 Cisdem PDFMaster for Mac

Cisdem PDFMaster for Mac是一款功能强大的PDF编辑和格式转换工具。它为用户提供了直观且易于使用的界面&#xff0c;使常用功能触手可及&#xff0c;从而帮助用户轻松管理、编辑和转换PDF文件。 软件下载&#xff1a;Cisdem PDFMaster for Mac v6.0.0激活版下载 作为一款完整的…...

E-魔法猫咪(遇到过的题,做个笔记)

题解&#xff1a; 来自学长们思路&#xff1a; 其中一种正解是写单调队列。限制队列内的数单调递增&#xff0c;方法为每当新来的数据比当前队尾数据小时队 尾出列&#xff0c;直到能够插入当前值&#xff0c;这保证了队头永远是最小值。因此总体思路是队尾不断插入新值的同时 …...

keil创建工程 芯源半导体CW32F003E4P7

提前下载keil 安装步骤 1、下载CW32F003固件库 芯源半导体官网下载固件库 下载好后右键解压 CW32F003_StandardPeripheralLib_V1.5\IdeSupport\MDK 进入MDK文件夹 双击WHXY.CW32F003_DFP.1.0.4.pack安装固件库 点击next然后finish安装结束 keil创建工程 点击new uVision P…...

学习鸿蒙基础(12)

目录 一、网络json-server配置 &#xff08;1&#xff09;然后输入&#xff1a; &#xff08;2&#xff09;显示下载成功。但是输入json-server -v的时候。报错。 &#xff08;3&#xff09;此时卸载默认的json-server &#xff08;4&#xff09;安装和nodejs匹配版本的js…...

HTML5和CSS3笔记

一&#xff1a;网页结构(html)&#xff1a; 1.1&#xff1a;页面结构&#xff1a; 1.2&#xff1a;标签类型&#xff1a; 1.2.1&#xff1a;块标签&#xff1a; 1.2.2&#xff1a;行内标签&#xff1a; 1.2.3&#xff1a;行内块标签&#xff1a; 1.2.4&#xff1a;块标签与行…...

MHA高可用-解决MySQL主从复制的单点问题

目录 一、MHA的介绍 1&#xff0e;什么是 MHA 2&#xff0e;MHA 的组成 2.1 MHA Node&#xff08;数据节点&#xff09; 2.2 MHA Manager&#xff08;管理节点&#xff09; 3&#xff0e;MHA 的特点 4. MHA工作原理总结如下&#xff1a; 二、搭建 MySQL MHA 实验环境 …...

【多线程】震惊~这是我见过最详细的ReentrantLock的讲解

一.与synchronized相比ReentrantLock具有以下四个特点: 可中断&#xff1a;synchronized只能等待同步代码块执行结束&#xff0c;不可以中断&#xff0c;强行终断会抛出异常, 而reentrantlock可以调用线程的interrupt方法来中断等待&#xff0c;继续执行下面的代码。 在获取锁…...

分布式链路追踪与云原生可观测性

分布式链路追踪系统历史 Dapper, a Large-Scale Distributed Systems Tracing Infrastructure - Google Dapper&#xff0c;大规模分布式系统的跟踪系统大规模分布式系统的跟踪系统&#xff1a;Dapper设计给我们的启示 阿里巴巴鹰眼技术解密 - 周小帆京东云分布式链路追踪在金…...

CSS3新增的语法(三)【2D,3D,过渡,动画】

CSS3新增的语法&#xff08;三&#xff09;【2D,3D,过渡&#xff0c;动画】 10.2D变换10.1. 2D位移10.2. 2D缩放10.3. 2D旋转10.4. 2D扭曲&#xff08;了解&#xff09;10.5. 多重变换10.6. 变换原点 11. 3D变换11.1. 开启3D空间11.2. 设置景深11.3. 透视点位置11.4. 3D 位移11…...

Flutter应用在苹果商店上架前的准备工作与注意事项

引言 &#x1f680; Flutter作为一种跨平台的移动应用程序开发框架&#xff0c;为开发者提供了便利&#xff0c;使他们能够通过单一的代码库构建出高性能、高保真度的应用程序&#xff0c;同时支持Android和iOS两个平台。然而&#xff0c;完成Flutter应用程序的开发只是第一步…...

如何开启MySQL的binlog日志

1.启用远程连接&#xff1a; 如果你想要允许远程主机连接到MySQL服务器&#xff0c;需要进行以下步骤&#xff1a; 确保MySQL服务器的防火墙允许远程连接的流量通过。在MySQL服务器上&#xff0c;编辑MySQL配置文件&#xff08;一般是my.cnf&#xff09;&#xff0c;找到bind-…...

设计模式|状态机模式(State Machine Pattern)

文章目录 结构使用步骤示例使用状态机的场景常见面试题 状态机模式&#xff08;State Machine Pattern&#xff09;是一种用于描述对象的行为软件设计模式&#xff0c;属于行为型设计模式。在状态机模式中&#xff0c;对象的行为取决于其内部状态&#xff0c;并且在不同的状态下…...

Django源码之路由的本质(上)——逐步剖析底层执行流程

目录 1. 前言 2. 路由定义 3. 路由定义整体源码分析 3.1 partial实现path函数调用 3.2 图解_path函数 3.3 最终 4.URLPattern和Pattern的简单解析 5. 小结 1. 前言 在学习Django框架的时候&#xff0c;我们大多时候都只会使用如何去开发项目&#xff0c;对其实现流程并…...

基于深度学习的植物叶片病毒识别系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要&#xff1a;本文深入研究了基于YOLOv8/v7/v6/v5的植物叶片病毒识别系统&#xff0c;核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法&#xff0c;进行性能指标对比&#xff1b;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码&#xff0c;及基于Strea…...

Native Instruments Kontakt 7 for Mac v7.9.0 专业音频采样

Native Instruments Kontakt 7是一款强大的软件采样器&#xff0c;它允许用户从各种来源采样音频并进行编辑和处理。它包含大量预设采样库&#xff0c;包括乐器、合成器、鼓组和声音效果等。此外&#xff0c;Kontakt 7还允许用户创建自己的采样库&#xff0c;以便根据自己的需要…...

yolov8训练流程

训练代码 from ultralytics import YOLO# Load a model model YOLO(yolov8n.yaml) # build a new model from YAML model YOLO(yolov8n.pt) # load a pretrained model (recommended for training) model YOLO(yolov8n.yaml).load(yolov8n.pt) # build from YAML and tr…...

Java基础学习: Forest - 极简 HTTP 调用 API 框架

文章目录 一、介绍参考&#xff1a; 一、介绍 Forest是一个开源的Java HTTP客户端框架&#xff0c;专注于简化HTTP客户端的访问。它是一个高层的、极简的轻量级HTTP调用API框架&#xff0c;通过Java接口和注解的方式&#xff0c;将复杂的HTTP请求细节隐藏起来&#xff0c;使HT…...

Pandas Dataframe合并连接Join和merge 参数讲解

文章目录 函数与参数分析otheronhowlsuffix, rsuffix, suffixesleft_index, right_index 函数与参数分析 在pandas中主要有两个函数可以完成table之间的join Join的函数如下&#xff1a; DataFrame.join(other, onNone, how‘left’, lsuffix‘’, rsuffix‘’, sortFalse, v…...

ABC318 F - Octopus

解题思路 对于每个宝藏维护个区间&#xff0c;答案一定在这些区间中对于每个区间的端点由小到大排序对于每个点进行判断&#xff0c;若当前位置合法&#xff0c;则该点一定为一个右端点则该点到前一个端点之间均为合法点若前一个点不合法&#xff0c;则一定是某一个区间限制的…...

Docker实战教程 第3章 Dockerfile

4-2 通过dockerfile制作镜像 需求 制作一个具有ping ip ifconfig vim 这些命令工具的一个nginx镜像&#xff0c;通过dockerfile完成STEP1 : 写一个Dockerfile FROM nginx # 基于一个基础镜像 RUN lsstep2 docker build . -f 指定使用的dockerfile来生成镜像-t 指定镜像名…...

JSON在量化交易系统中的应用

JSON在量化交易系统中的应用场景 数据传输和存储&#xff1a;JSON可以将交易数据以结构化的方式进行编码&#xff0c;并将其转换为字符串进行传输和存储。这样可以方便地在不同的系统之间传递数据&#xff0c;并且可以保持数据的完整性和一致性。 API通信&#xff1a;量化交易…...

x-cmd-pkg | broot 是基于 Rust 开发的一个终端文件管理器

简介 broot 是基于 Rust 开发的一个终端文件管理器&#xff0c;它设计用于帮助用户在终端中更轻松地管理文件和目录&#xff0c;使用树状视图探索文件层次结构、操作文件、启动操作以及定义您自己的快捷方式。 同时它还集成了 ls, tree, find, grep, du, fzf 等工具的常用功能…...

设置asp.net core WebApi函数请求参数可空的两种方式

以下面定义的asp.net core WebApi函数为例&#xff0c;客户端发送申请时&#xff0c;默认三个参数均为必填项&#xff0c;不填会报错&#xff0c;如下图所示&#xff1a; [HttpGet] public string GetSpecifyValue(string param1,string param2,string param3) {return $"…...

免费网站建设就去186一6159一6345/企业网络推广计划书

如何在php中使用Access_token获取微信基础接口凭证发布时间&#xff1a;2021-02-05 18:07:43来源&#xff1a;亿速云阅读&#xff1a;94作者&#xff1a;Leah本篇文章给大家分享的是有关如何在php中使用Access_token获取微信基础接口凭证&#xff0c;小编觉得挺实用的&#xff…...

单页面网站带后台/龙岩网站推广

Java基础&#xff08;对象线程字符接口变量异常方法&#xff09; 面向对象和面向过程的区别&#xff1f;Java 语言有哪些特点&#xff1f;关于 JVM JDK 和 JRE 最详细通俗的解答Oracle JDK 和 OpenJDK 的对比Java 和 C的区别&#xff1f;什么是 Java 程序的主类&#xff1f;应…...

建立 网站服务器/网络营销案例分析题

相关专业领域 01. 程序设计 (算法编程 有趣的程序编程 病毒/木马编程等)02. 逆向分析 (软件破解 病毒/木马分析 还原源代码等)03. 漏洞挖掘以及利用 (利用综合能力挖掘/分析/利用漏洞等)04. 社会工程学 (通过社交行为获取敏感信息等)05. 模糊测试 (模糊测试软件漏洞等)06. 渗透…...

怎么样免费做公司网站/如何自己搭建一个网站

说明&#xff1a;文章是用windows live writer自动上载的&#xff0c;有些特殊符号显示不正确&#xff0c;如“>”显示为“>”。须修改之处太多&#xff0c;无暇修改。阅读不便之处&#xff0c;请见谅&#xff01;特点&#xff1a;ASM能代替外部LVM或FS的功能&#xff0c…...

青县做网站/推广运营是什么工作

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 jmeter 性能测试数据…...

日照的网站建设/推广平台网站有哪些

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关&#xff0c;数据结构有以下几种基本的结构算法…...