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

kamailio-ACC模块介绍【kamailio6.0. X】

Acc 模块

作者
Jiri Kuthan
iptel.org
jiri@iptel.org

Bogdan-Andrei Iancu
Voice Sistem SRL
bogdan@voice-system.ro

Ramona-Elena Modroiu
rosdev.ro
ramona@rosdev.ro

编辑
Bogdan-Andrei Iancu
Voice Sistem SRL
bogdan@voice-system.ro

Sven Knoblich
1&1 Internet AG
sven.knoblich@1und1.de

版权
© 2002, 2003 FhG FOKUS
© 2004, 2006 Voice Sistem SRL
© 2011 1&1 Internet AG


目录

  1. 管理员指南
    1. 概述
      1.1 通用示例
    2. 额外计费
      2.1 概述
      2.2 定义与语法
      2.3 工作原理
    3. 多呼叫腿计费
      3.1 概述
      3.2 配置
      3.3 记录的数据
    4. 呼叫数据记录生成
      4.1 概述
      4.2 CDR 额外信息
      4.2.1 定义与语法
      4.3 多呼叫腿的 CDR
      4.3.1 概述
      4.3.2 配置
      4.3.2.1 螺旋代理示例
      4.3.3 记录的数据
    5. 依赖
      5.1 Kamailio 模块
      5.2 外部库或应用程序
    6. 参数
      6.1 early_media (整数)
      6.2 failed_transaction_flag (整数)
      6.3 failed_filter (字符串)
      6.4 report_ack (整数)
      6.5 report_cancels (整数)
      6.6 detect_direction (整数)
      6.7 acc_prepare_flag (整数)
      6.8 acc_prepare_always (整数)
      6.9 acc_extra_nullable (整数)
      6.10 multi_leg_info (字符串)
      6.11 log_flag (整数)
      6.12 log_missed_flag (整数)
      6.13 log_level (整数)
      6.14 log_facility (字符串)
      6.15 log_extra (字符串)
      6.16 db_flag (整数)
      6.17 db_missed_flag (整数)
      6.18 db_table_acc (字符串)
      6.19 db_table_missed_calls (字符串)
      6.20 db_url (字符串)
      6.21 acc_method_column (字符串)
      6.22 acc_from_tag_column (字符串)
      6.23 acc_to_tag_column (字符串)
      6.24 acc_callid_column (字符串)
      6.25 acc_sip_code_column (字符串)
      6.26 acc_sip_reason_column (字符串)
      6.27 acc_time_column (字符串)
      6.28 db_extra (字符串)
      6.29 db_insert_mode (整数)
      6.30 cdr_enable (整数)
      6.31 cdr_skip (字符串)
      6.32 cdr_expired_dlg_enable (整数)
      6.33 cdr_start_on_confirmed (整数)
      6.34 cdr_facility (整数)
      6.35 cdr_extra (字符串)
      6.36 cdr_extra_nullable (整数)
      6.37 cdr_start_id (字符串)
      6.38 cdr_end_id (字符串)
      6.39 cdr_duration_id (字符串)
      6.40 cdr_log_enable (整数)
      6.41 cdrs_table (字符串)
      6.42 time_mode (整数)
      6.43 time_attr (字符串)
      6.44 time_exten (字符串)
      6.45 time_format (字符串)
      6.46 reason_from_hf (整数)
      6.47 clone_msg (整数)
      6.48 cdr_on_failed (整数)
      6.49 acc_extra_size (整数)
      6.50 cdr_extra_size (整数)
    7. 函数
      7.1 acc_log_request(comment)
      7.2 acc_db_request(comment, table)
      7.3 acc_request(comment, table)
  2. 常见问题

1. 概述

ACC 模块用于将事务信息记录到不同的后端,如 syslog 和 SQL。通过单独的模块 acc_radius 可以启用对 RADIUS 的支持。

acc_diameter 模块中提供了对 Diameter 协议的早期支持,但未与当前 Diameter 协议保持同步。如果需要 Diameter 支持,请使用 ims_charging 模块。

要为事务计费并选择使用哪一组后端,脚本编写者只需设置一些标志(参见模块参数部分的标志定义)。如果为特定后端设置了计费标志,ACC 模块将在事务完成时报告。模块的典型用法不需要特定的脚本命令——功能通过事务处理隐式绑定。脚本编写者只需使用适当的 setflag 标记事务以进行计费。即使如此,模块仍允许脚本编写者通过某些脚本函数在特殊情况下强制计费。

默认情况下,计费模块会记录事务的一组固定属性。如果要通过添加更多信息来自定义计费,请参阅下一章关于额外计费的内容。

固定的最小计费信息包括:

  • 请求方法名称
  • From 头的 TAG 参数
  • To 头的 TAG 参数
  • Call-Id
  • 最终回复的 3 位状态码
  • 最终回复的原因短语
  • 事务完成时的时间戳

如果请求中不存在某个值,则记录为空字符串。

注意:

  • 单个 INVITE 可能会生成多个计费报告——这是由于 SIP 的分叉特性。
  • 所有与计费相关的标志都需要在请求处理路由中设置——只有“missed-call”标志可以从其他类型的路由中切换。
  • 如果 UA 在通话中途失败,代理将永远不会发现。通常,更好的做法是从终端设备(如 PSTN 网关)进行计费,因为它最了解呼叫状态(包括媒体状态和 PSTN 状态)。然而,基于 CDR 的日志记录可以选择记录来自过期对话的现有信息(cdr_extra 中的 dlg_vars)。请参阅 cdr_expired_dlg_enable 参数。

SQL 后端支持已编译到模块中。

1.1 通用示例
loadmodule "modules/acc/acc.so"
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1)if (uri=~"sip:+40") { /* 呼叫罗马尼亚 */if (!proxy_authorize("sip_domain.net", "subscriber")) {proxy_challenge("sip_domain.net", "0");exit;}if (method=="INVITE" && !check_from()) {log("from!=digest\n");sl_send_reply("403","Forbidden");}setflag(1); /* 设置计费标志 */t_relay();  /* 进入有状态模式 */
};

2. 额外计费

2.1 概述

除了静态的默认信息外,ACC 模块还允许动态选择要记录的额外信息。这允许您记录任何伪变量(AVP、请求的部分等)。

2.2 定义与语法

通过 xxx_extra 参数选择额外信息,指定要记录的附加信息的名称。这些信息通过伪变量定义,可能包括头、AVP 值或其他消息或系统值。参数语法为:

xxx_extra = extra_definition (';'extra_definition)*
extra_definition = log_name '=' pseudo_variable

支持的伪变量列表可在 Kamailio 文档 中找到。

2.3 工作原理

某些伪变量可能返回多个值(如头或 AVP)。在这种情况下,返回的值将以逗号分隔的格式嵌入单个字符串中。


3. 多呼叫腿计费

3.1 概述

由于转发操作,SIP 呼叫可能具有多个腿。例如,用户 A 呼叫用户 B,用户 B 将呼叫转发给用户 C。只有一个 SIP 呼叫,但有两条腿(A 到 B 和 B 到 C)。记录呼叫腿对于正确计费是必要的。

3.2 配置

通过一组 AVP 为每个呼叫腿存储一组值。脚本编写者必须确保正确插入这些 AVP。

3.3 记录的数据

对于每个呼叫,所有 AVP 集的值将被记录。记录方式取决于数据后端:

  • syslog:所有腿集将作为一个记录字符串添加。
  • 数据库:每个腿集将单独记录。
  • RADIUS:所有腿集将添加到同一 RADIUS 计费消息中。

4. 呼叫数据记录生成

4.1 概述

除了基于事务的日志记录外,还可以直接从 Kamailio 生成和记录呼叫数据记录(CDR)。CDR 记录依赖于对话框模块。

4.2 CDR 额外信息

类似于事务额外信息,CDR 额外信息通过 cdr_extra 参数定义。

4.3 多呼叫腿的 CDR

与普通计费不同,CDR 日志记录使用对话框而不是事务来记录数据。


5. 依赖

5.1 Kamailio 模块

该模块依赖于以下模块:

  • tm:事务管理器
  • 数据库模块:如果使用 SQL 支持
  • rr:记录路由,如果启用了 detect_direction 参数
  • dialog:对话框,如果启用了 cdr_enable 参数
5.2 外部库或应用程序

无。


6. 参数

6.1 early_media (整数)

是否应记录早期媒体(任何带有正文的临时回复)?
默认值为 0(否)。

6.2 failed_transaction_flag (整数)

事务失败时(SIP 状态码 >= 300)是否应记录事务的标志。
默认值为未设置(无标志)。

6.3 failed_filter (字符串)

失败响应代码的字符串(300 到 999),用逗号分隔。即使设置了 failed_transaction_flag,如果响应代码在列表中,失败事务也不会被记录。
默认值为未设置(无过滤)。

6.4 report_ack (整数)

是否尝试记录端到端的 ACK?
默认值为 0(否)。

6.5 report_cancels (整数)

是否显式记录 CANCEL 事务?
默认值为 0(否)。

6.6 detect_direction (整数)

控制顺序请求的方向检测。
默认值为 0(禁用)。

6.7 acc_prepare_flag (整数)

事务标志,指示是否可以在稍后计费。
默认值为未设置(无标志)。

6.8 acc_prepare_always (整数)

是否始终准备所有请求以标记事务稍后计费。
默认值为未设置。

6.9 acc_extra_nullable (整数)

如果设置为 1,数据库额外字段在未定义或为 $null 时设置为 NULL。
默认值为 0。

6.10 multi_leg_info (字符串)

定义用于每条呼叫腿计费的 AVP 集。
默认值为 0(禁用)。

6.11 log_flag (整数)

请求标志,用于通过 syslog 记录事务。
默认值为未设置(无标志)。

6.12 log_missed_flag (整数)

请求标志,用于通过 syslog 记录未接呼叫。
默认值为未设置(无标志)。

6.13 log_level (整数)

记录计费消息的日志级别。
默认值为 1(L_NOTICE)。

6.14 log_facility (字符串)

记录计费消息的日志设施。
默认值为 LOG_DAEMON。

6.15 log_extra (字符串)

要记录的额外值。
默认值为 NULL。

6.16 db_flag (整数)

请求标志,用于通过数据库记录事务。
默认值为未设置(无标志)。

6.17 db_missed_flag (整数)

请求标志,用于通过数据库记录未接呼叫。
默认值为未设置(无标志)。

6.18 db_table_acc (字符串)

成功呼叫的计费表名。
默认值为 “acc”。

6.19 db_table_missed_calls (字符串)

未接呼叫的计费表名。
默认值为 “missed_calls”。

6.20 db_url (字符串)

SQL 地址。
默认值为 NULL(SQL 禁用)。

6.21 acc_method_column (字符串)

存储请求方法名称的列名。
默认值为 “method”。

6.22 acc_from_tag_column (字符串)

存储 From 头 TAG 参数的列名。
默认值为 “from_tag”。

6.23 acc_to_tag_column (字符串)

存储 To 头 TAG 参数的列名。
默认值为 “to_tag”。

6.24 acc_callid_column (字符串)

存储 Callid 值的列名。
默认值为 “callid”。

6.25 acc_sip_code_column (字符串)

存储最终回复状态码的列名。
默认值为 “sip_code”。

6.26 acc_sip_reason_column (字符串)

存储最终回复原因短语的列名。
默认值为 “sip_reason”。

6.27 acc_time_column (字符串)

存储事务完成时间戳的列名。
默认值为 “time”。

6.28 db_extra (字符串)

要记录到数据库的额外值。
默认值为 NULL。

6.29 db_insert_mode (整数)

如果设置为 1,使用 INSERT DELAYED 添加记录。
默认值为 0。

6.30 cdr_enable (整数)

启用 CDR 报告。
默认值为 0(禁用)。

6.31 cdr_skip (字符串)

跳过具有此 dlg_var 设置的对话框的 CDR 生成。
默认值为 NULL。

6.32 cdr_expired_dlg_enable (整数)

是否在对话框过期时启用 CDR 日志记录?
默认值为 0(禁用)。

6.33 cdr_start_on_confirmed (整数)

是否从对话框确认时开始计时?
默认值为 0(从对话框创建时开始)。

6.34 cdr_facility (整数)

CDR 消息的日志设施。
默认值为 LOG_DAEMON。

6.35 cdr_extra (字符串)

定义自定义 CDR 字段的伪变量集。
默认值为 NULL。

6.36 cdr_extra_nullable (整数)

自定义 CDR 字段是否可以为 NULL?
默认值为 0。

6.37 cdr_start_id (字符串)

修改用于存储开始时间的 ID。
默认值为 “start_time”。

6.38 cdr_end_id (字符串)

修改用于存储结束时间的 ID。
默认值为 “end_time”。

6.39 cdr_duration_id (字符串)

修改用于存储持续时间的 ID。
默认值为 “duration”。

6.40 cdr_log_enable (整数)

控制是否将 CDR 记录写入 syslog。
默认值为 1(启用)。

6.41 cdrs_table (字符串)

存储对话框 CDR 的数据库表名。
默认值为 “”(无数据库存储)。

6.42 time_mode (整数)

存储与事件时间相关的额外值。
默认值为 0。

6.43 time_attr (字符串)

存储事件时间的 syslog 属性或数据库列名。
默认值为未设置。

6.44 time_exten (字符串)

存储事件时间的扩展值的 syslog 属性或数据库列名。
默认值为未设置。

6.45 time_format (字符串)

指定时间格式。
默认值为 “%Y-%m-%d %H:%M:%S”。

6.46 reason_from_hf (整数)

从何处获取 sip_reason。
默认值为 0(从状态行获取)。

6.47 clone_msg (整数)

是否克隆请求结构以避免并发访问。
默认值为 1。

6.48 cdr_on_failed (整数)

是否存储失败对话框的 CDR?
默认值为 1。

6.49 acc_extra_size (整数)

设置计费记录中额外属性的最大数量。
默认值为 64。

6.50 cdr_extra_size (整数)

设置 CDR 中额外属性的最大数量。
默认值为 64。


7. 函数

7.1 acc_log_request(comment)

报告请求,例如用于报告未接呼叫。
参数:

  • comment:要附加的注释,可以包含伪变量。
7.2 acc_db_request(comment, table)

将请求报告发送到数据库。
参数:

  • comment:要附加的注释,可以包含伪变量。
  • table:要使用的数据库表。
7.3 acc_request(comment, table)

将计费记录写入 LOG 和 DATABASE 后端。
参数:

  • comment:用于生成 SIP 响应代码和文本字段的注释。
  • table:要使用的数据库表。

2. 常见问题

2.1 旧的 log_fmt 参数发生了什么?

该参数已被废弃,由额外计费功能取代。

2.2 旧的 multi_leg_enabled 参数发生了什么?

该参数已被 multi_leg_info 参数取代。

2.3 旧的 src_leg_avp_id 和 dst_leg_avp_id 参数发生了什么?

这些参数已被 multi_leg_info 参数取代。

2.4 在哪里可以找到更多关于 Kamailio 的信息?

请访问 Kamailio 官方网站。

2.5 在哪里可以发布关于此模块的问题?

请查看我们的邮件列表:

  • 用户邮件列表:[sr-users@lists.kamailio.org](https://lists.kamailio.org/mailman3/postorius

相关文章:

kamailio-ACC模块介绍【kamailio6.0. X】

Acc 模块 作者 Jiri Kuthan iptel.org jiriiptel.org Bogdan-Andrei Iancu Voice Sistem SRL bogdanvoice-system.ro Ramona-Elena Modroiu rosdev.ro ramonarosdev.ro 编辑 Bogdan-Andrei Iancu Voice Sistem SRL bogdanvoice-system.ro Sven Knoblich 1&1 Internet …...

数据库对象

数据库对象 数据库对象是构成数据库结构的基本单位,它们定义了数据库存储的数据类型、数据的组织方式以及数据之间的关系。在数据库中,对象可以包括表,视图,索引,触发器,存储过程,函数等多种类…...

EtherCAT主站IGH-- 27 -- IGH之globals.h文件解析

EtherCAT主站IGH-- 27 -- IGH之globals.h文件解析 0 预览一 该文件功能宏定义数据结构打印宏三 h文件翻译四 c文件翻译该文档修改记录:总结0 预览 一 该文件功能 该文件包含了一些全局定义和宏,用于 IgH EtherCAT 主站(EtherCAT Master)的实现。包括了一些超时设定、宏定义…...

2025多目标优化创新路径汇总

多目标优化是当下非常热门且有前景的方向!作为AI领域的核心技术之一,其专注于解决多个相互冲突的目标的协同优化问题,核心理念是寻找一组“不完美但均衡”的“帕累托最优解”。在实际中,几乎处处都有它的身影。 但随着需求场景的…...

15JavaWeb——Maven高级篇

Maven高级 Web开发讲解完毕之后,我们再来学习Maven高级。其实在前面的课程当中,我们已经学习了Maven。 我们讲到 Maven 是一款构建和管理 Java 项目的工具。经过前面 10 多天 web 开发的学习,相信大家对于 Maven 这款工具的基本使用应该没什…...

使用Ollama本地化部署DeepSeek

1、Ollama 简介 Ollama 是一个开源的本地化大模型部署工具,旨在简化大型语言模型(LLM)的安装、运行和管理。它支持多种模型架构,并提供与 OpenAI 兼容的 API 接口,适合开发者和企业快速搭建私有化 AI 服务。 Ollama …...

蓝桥杯刷题DAY1:前缀和

所谓刷题,讲究的就是细心 帕鲁服务器崩坏【算法赛】 “那个帕鲁我已经观察你很久了,我对你是有些失望的,进了这个营地,不是把事情做好就可以的,你需要有体系化思考的能力。” 《幻兽帕鲁》火遍全网,成为…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户注册

🧸安清h:个人主页 🎥个人专栏:【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯项目基本介绍 🚦项…...

MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译

感谢阅读 注意不含评估以后的翻译原论文地址标题以及摘要介绍部分MiniRAG 框架2.1 HETEROGENEOUS GRAPH INDEXING WITH SMALL LANGUAGE MODELS2.2 LIGHTWEIGHT GRAPH-BASED KNOWLEDGE RETRIEVAL2.2.1 QUERY SEMANTIC MAPPING2.2.2 TOPOLOGY-ENHANCED GRAPH RETRIEVAL 注意不含评…...

微服务入门(go)

微服务入门(go) 和单体服务对比:里面的服务仅仅用于某个特定的业务 一、领域驱动设计(DDD) 基本概念 领域和子域 领域:有范围的界限(边界) 子域:划分的小范围 核心域…...

Baklib揭示内容中台实施最佳实践的策略与实战经验

内容概要 在当前数字化转型的浪潮中,内容中台的概念日益受到关注。它不再仅仅是一个内容管理系统,而是企业提升运营效率与灵活应对市场变化的重要支撑平台。内容中台的实施离不开最佳实践的指导,这些实践为企业在建设高效内容中台时提供了宝…...

C++11新特性之lambda表达式

1.介绍 C11引入了lambda表达式。lambda表达式提供一种简洁的方式来定义匿名函数对象,使得在需要临时定义一个函数时非常方便。 2.lambda表达式用法 lambda表达式的基本用法为: [捕获列表](参数列表)->返回类型 { 函数体 …...

洛谷 P10289 [GESP样题 八级] 小杨的旅游 C++ 完整题解

一、题目链接 P10289 [GESP样题 八级] 小杨的旅游 - 洛谷 二、题目大意 n个节点之间有n - 1条边,其中k个节点是传送门,任意两个传送门之间可以 以0单位地时间相互到达。问从u到v至少需要多少时间? 三、解题思路 输入不必多讲。 cin >> …...

使用 Tauri 2 + Next.js 开发跨平台桌面应用实践:Singbox GUI 实践

Singbox GUI 实践 最近用 Tauri Next.js 做了个项目 - Singbox GUI,是个给 sing-box 用的图形界面工具。支持 Windows、Linux 和 macOS。作为第一次接触这两个框架的新手,感觉收获还蛮多的,今天来分享下开发过程中的一些经验~ 为啥要做这个…...

JWT入门

一、初识JWT:新时代的身份认证方案 在分布式系统成为主流的今天,传统的Session认证方式逐渐显露出局限性。JWT(JSON Web Token)作为现代Web开发的认证新标准,凭借其无状态、跨域友好和安全性等特性,正在成为…...

Python - Quantstats量化投资策略绩效统计包 - 详解

使用Quantstats包做量化投资绩效统计的时候因为Pandas、Quantstats版本不匹配踩了一些坑;另外,Quantstats中的绩效统计指标非常全面,因此详细记录一下BUG修复方法、使用说明以及部分指标的内涵示意。 一、Quantstats安装及版本匹配问题 可以…...

智慧园区管理系统推动企业智能运维与资源优化的全新路径分析

内容概要 在当今快速发展的商业环境中,园区管理的数字化转型显得尤为重要。在这个背景下,快鲸智慧园区管理系统应运而生,成为企业实现高效管理的最佳选择。它通过整合互联网、物联网等先进技术,以智能化的方式解决了传统管理模式…...

【数据结构-字典树】力扣14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs [“flower”,“flow”,“flight”] 输出:“fl” 示例 2: 输入:strs [“dog”,“racecar…...

《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(31):HTTPS和TLS/SSL

《深入浅出HTTPS​​​​​​​​​​》读书笔记(31):HTTPS和TLS/SSL TLS/SSL协议和应用层协议无关,它只是加密应用层协议(比如HTTP)并传递给下层的TCP。 HTTP和TLS/SSL协议组合在一起就是HTTPS, HTTPS等…...

Go学习:Go语言中if、switch、for语句与其他编程语言中相应语句的格式区别

Go语言中的流程控制语句逻辑结构与其他编程语言类似,格式有些不同。Go语言的流程控制中,包括if、switch、for、range、goto等语句,没有while循环。 目录 1. if 语句 2. switch语句 3. for语句 4. range语句 5. goto语句(不常用…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了&#xff0c;很多小伙伴想体验鸿蒙电脑版操作系统&#xff0c;可惜&#xff0c;鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机&#xff0c;来体验大家心心念念的鸿蒙系统啦&#xff01;注意&#xff1a;虚拟…...