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

整个网站的关键词/上海谷歌优化

整个网站的关键词,上海谷歌优化,管理咨询的定义,榆林免费做网站公司目录 前言 一、背景介绍 二、原有架构的痛点 2.1 技术成本 2.2 开发成本 2.2.1 离线 T1 更新的分析场景 2.2.2 实时更新分析场景 2.2.3 固定维度分析场景 2.2.4 运维成本 三、选择StarRocks的原因 3.1 引擎收敛 3.2 “大宽表”模型替换 3.3 简化Lambda架构 3.4 模…

目录

前言

一、背景介绍

二、原有架构的痛点

2.1 技术成本

2.2 开发成本

2.2.1 离线 T+1 更新的分析场景

2.2.2 实时更新分析场景

2.2.3 固定维度分析场景

2.2.4 运维成本

三、选择StarRocks的原因

3.1 引擎收敛

3.2 “大宽表”模型替换

3.3 简化Lambda架构

3.4 模型持续迭代

3.5 明细、汇总一体化

3.6 外表能力

3.7 单表聚合查询

3.8 多表关联查询

3.9 实时更新读写查询

四、实践经验

4.1 集群拆分

4.2 按照数据更新频率进行拆分

4.3 按照业务域进行拆分

4.4 调优手段

4.4.1 优化表结构定义

1)模型选择

2)分区和分桶 

3)稀疏索引、bloomfilter、Bitmap Index

4)物化视图

5)使用BITMAP / HyperLogLog 数据类型进行去重

4.4.2 优化查询SQL

1)Broadcast Join

2)Colocation Join

3)并行度调整

4)CBO 优化器

4.5 工具集成

4.5.1  数据集成

4.5.2 监控预警

五、总结


   原文大佬介绍的这篇StarRocks数仓建设实践有借鉴意义的,这些摘抄下来用作沉淀学习。如有侵权,请告知~

前言

      多点 DMALL 成立于2015年,是一站式全渠道数字零售解决方案服务商。 多点大数据部门使用 StarRocks 逐步替代了 Impala、Impala on Kudu、Apache Kylin 等存储引擎,实现了存储引擎的收敛,简化了实时数据处理链路,同时也能保障较高的查询并发以及较低的响应延迟要求

一、背景介绍

     多点大数据部门为内部业务研发团队、数据分析师、外部用户以及合作伙伴,提供了基础的大数据产品、平台服务,帮助零售企业解决了从基本的数据汇总管理、统一的数据计算应用、到各种场景下对数据的多模式使用的需求,可覆盖零售企业绝大部分数据诉求。

 技术层面,多点大数据部门基于 Hadoop 开源技术栈,并进行了部分二次开发后构建起了以下的一个技术架构全景图。从下到上分为基础设施层、数据源层、数据集成层、离线/实时计算层、集市层、分析存储层、数据服务/应用层,数据开发,数据模型中心与运维管理层对各层提供支持。

  • 基础设施层:包括超大带宽的专线网络;公有云、私有云、机房托管的混合云部署;
  • 数据源层:包括企业OLTP 数据库、业务数据、日志数据、三方接入数据;
  • 数据集成层:DataBus 是多点自研数据同步平台,解决企业内各业务线之间,跨企业组织之间以及跨行业的数据汇聚,融合等问题,将不同系统的数据互相打通,实现数据自由流动
  • 离线计算层:利用Hive /Spark高可扩展的批处理能力承担离线数仓的ETL和数据模型加工;
  • 实时计算层:利用Flink /Spark Streaming完成实时数据的ETL(包括维度扩充,多流join,实时汇总)等;
  • 离线/实时集市层:使用数仓分层模型构建ODS(原始数据层),DWD(数据明细层)、DWS(汇总层)、DIM(维度层)、DWT(主题成)、ADS(应用层),并根据公司业务拆不同的数据域;
  • 分析存储层:主要依赖 Druid、ClickHouse、Impala on Kudu、Apache Kylin、Elasticsearch、HBase、MySQL、StarRocks提供OLAP查询能力;
  • 数据服务/应用层:该层通过提供BI分析产品、数据服务接口,营销,报表类产品,向内部运营人员、外部客户,合作伙伴提供数据分析决策能力;

二、原有架构的痛点

   上述架构解决了多点绝大部分数据诉求,在整个架构中,无论是基于Hive,Spark的离线计算,基于Flink ,Spark Streaming 的实时计算;基于HDFS,kafka的存储;基于数仓分层模型建设等方案都已基本成熟。但是在OLAP领域,无论是多点还是业界仍然处于百家争鸣,各有所长的状态。纵观多点在OLAP引擎的探索实践中,遇到了各种各样问题,总结如下:

2.1 技术成本

    由于上层业务场景复杂,各个场景的技术难点,核心点均不一样。多点生活在整个技术架构升级的过程中先后引入了HBase、Elasticsearch、Druid、ClickHouse、Impala on Kudu、Apache Kylin等OLAP引擎。但是随着技术栈增多,技术曲线陡峭,没有充足的资源进行多技术栈的维护,造成了比较高的技术成本。

2.2 开发成本

  多点的数据分析场景大致可以分为离线+1更新分析场景,实时更新分析场景,固定维度分析场景。

2.2.1 离线 T+1 更新的分析场景

   例如多点的精细化用户运营平台,其核心的功能是基于用户、消费、行为、设备等属性,提供多维度筛选条件,并通过自定义条件实现用户分层,便于进行精细化用户运营。

    针对数据更新为T+1的分析场景,原主要使用的分析引擎为ClickHouse。利用ClickHouse构建“大宽表”模型,将事实表与维度表提前进行关联,对外提供单表聚合的SQL查询,以及通过构建DWT主题宽表,提供Ad-Hoc查询;该场景面临的问题是:虽然ClickHouse单表查询强悍,但是Join能力不强,需要提前进行关联,将多表关联成单表,会存在额外的开发成本

2.2.2 实时更新分析场景

   实时更新场景主要是实时监控经营的各项指标,如当前时间段内的 GMV、下单数量、妥投数量、指标达成、对比,环比等指标,为客户的经营决策提供更具备时效性的参考依据。

    针对数据为实时(秒级)更新的场景,原主要使用Impala on Kudu 引擎,采用Lambda架构,基于相同的主键,将流式的预计算的结果数据,批计算的结果数据,基于相同的主键进行merge。

     上述方案中的 Flink AGG部分, 该程序的功能包括窗口内的预计算,多流Join等操作。当业务需求变更或者上游数据结构变更的时候,需要升级 Flink AGG程序,以及离线ETL的任务,类似于“烟囱式”的迭代开发,开发效率低下。资源消耗层面,在Flink里面做预计算,时间窗口的选取以及内存占用之间也需要平衡。

2.2.3 固定维度分析场景

     固定维度的分析场景主要针对固化的,标准的业务场景进行分析,多维分析可通过多维形式组织起来的数据进行上卷, 下下钻,切片,切块,旋转等各种分析操作,以便剖析数据,使分析者、决策者能从多个角度、多个侧面观察数据仓库中的数据,深入了解包含在数据中的信息和内涵。

   针对分析维度固定的分析场景,按照业务上常用的分析指标以及维度,此前使用Apache Kylin进行cube预计算,但是使用Apache Kylin也会遇到如下问题:

  • 由于多点业务场景涉及的维度比较多,各种类目、营运组织的组合,会导致cube膨胀,占用比较多的存储资源;
  • 当数据重跑以及新增维度,指标的时候,针对已经在线上运行的cube模型,为了保障数据重跑时候服务依然可用,需要新增cube模型,并行提供支持,造成存储重复;
  • 由于目前使用的Apache Kylin v3.1.2 是使用HBase作为后端存储,row key顺序设计以及分区键的选择会严重的影响查询性能,对开发不友好。

2.2.4 运维成本

    多点作为一站式全渠道数字零售解决方案服务商,可以满足客户不同的接入部署需求。多点大数据产品系统的接入SaaS化接入,私有云以及本地化部署。针对私有云,本地化部署的客户,OLAP 引擎易部署、易维护、极简的架构尤其重要,像 HBase、Impala on Kudu、Apache Kylin 等强依赖 Hadoop生态的OLAP引擎,会增加部署的复杂性;ClickHouse 集群不能自动感知集群拓扑变化,有不能自动balance数据,会增加缩容,扩容等的维护成本。

三、选择StarRocks的原因

    多点大数据部门从2021年年初开始,在调研市面上常用的存储引擎时发现了StarRocks。StarRocks 架构设计融合了 MPP 数据库,以及分布式系统的设计思想,具备架构精简,支持全面向量化引擎、智能查询优化、高效更新、智能物化视图、标准SQL、流批一体,高可用易扩展等特性,天然的解决了上述的问题。

使用 StarRocks 的特性解决当前痛点

3.1 引擎收敛

   原有系统的多维分析,高并发查询,预计算,实时分析,Adhoc查询等场景系使用了多套系统,基本上可以使用一套 StarRocks 解决。多点大数据平台、产品逐步形成以 StarRocks为主,其他 OLAP引擎为辅的存储架构,解决维护多套引擎的技术成本问题。

3.2 “大宽表”模型替换

   StarRocks 支持Broadcast Join、Colocate Join等分布式 Join 的特性,可以在查询性能可接受的范围内,使用星型、星座模型替代“大宽表”模型,节约提前关联关联的开发成本,同时针对事实表中历史数据变更,需要重新“跑数”的场景,可以只需重跑(overwrite)部分表的数据,提高整体的“跑数”效率。

3.3 简化Lambda架构

    StarRocks支持明细、聚合、更细、主键模型,可以基于StarRocks自带预聚合的特性,优化掉现有Lambda架构中的预聚合部分。

   StarRocks 直接拉取/订阅Hive或者 Kafka 中的数据,在 StarRocks 中进行聚合运算;StarRocks的数据模型是Aggregate模型,通过MAX、SUM、MIN、BITMAP_UNION 等聚合函数在StarRocks中进行预聚合。

3.4 模型持续迭代

   针对已在线上运行的模型,如果有需求上的变更,比如增加、删除、变更字段,可以使用简单SQL命令动态地修改表的定义,在表结构变更的过程中,线上的服务不受任何的影响。

3.5 明细、汇总一体化

   在实际的业务场景中,通常存在两种场景并存的分析需求:对固定维度的聚合分析和对原始明细数据的查询。在这种情况下,StarRocks支持对原表构建物化视图,数据更新的时候,物化视图跟随原表一起进行更新,保证数据的一致性。当用户查询时,并不感知物化视图的存在,不必显式的指定物化视图的名称,查询优化器可以根据查询条件自动判断是否可以路由到相应的物化视图上

3.6 外表能力

   StarRocks 支持以外部表的形式,接入其他数据源包括 MySQL、HDFS、Elasticsearch、Hive 等。比如可以使用 StarRocks 建立Elasticsearch的外表,为Elasticsearch 提供SQL 查询的能力。

基于多点报表业务真实场景的性能测试

3.7 单表聚合查询

    在现有的数据 T+1 更新的汇总业务场景中,选取了多点报表业务中的“单品销售分析”场景进行测试,单表单天数据亿级别,上百个维度和分析指标,属于典型的基于“大宽表”的 Ad-hoc 查询场景。在相同情况(机器配置、数据量、sql)下进行ClickHouse 对比 StarRocks 的性能测试:

横坐标:分区(天)数-并发数;纵坐标:响应时长(ms)

从查询响应时长来看,单表的聚合查询,ClickHouse 与 StarRocks 的查询响应时长相差不多。

3.8 多表关联查询

    在现有的数据 T+1 更新多表关联的汇总分析业务场景中,选取了现在多点报表业务中的“门店销售分析”场景进行测试,事实表单天数据亿级别,多个维表数据量在十万级别,属于典型的高维分析场景。在相同情况(机器配置、数据量、sql)下进行ClickHouse 对比 StarRocks 的性能测试:

横坐标:分区(天)数-并发数;纵坐标:响应时长(ms)

从查询响应时长来看,多表关联聚合查询,StarRocks的性能要优于ClickHouse。

3.9 实时更新读写查询

   在现有的数据准实时更新(边写边读)的汇总查询业务场景中,选取了“实时销售分析”场景进行测试,订单数据实时更新,单天数据量亿级别。属于典型的“实时更新,实时查询”场景。在相同情况(机器配置、数据量、SQL)下进行Impala on Kudu对比 StarRocks 的性能测试:

横坐标:分区(天)数-并发数;纵坐标:响应时长(ms)。

从查询响应时长来看,在边读边写的情况下,聚合查询的 SQL,StarRocks 的性能要优于 Impala on Kudu。

四、实践经验

   多点目前已经在高维业务指标报表,Ad-hoc分析、实时全链路监控等场景中引入了 StarRocks,在使用中总结出以下经验:

4.1 集群拆分

   由于 StarRocks极简的架构设计,易于运维部署。我们根据一定的规则,搭建了多套集群,避免业务之间的相互影响。

4.2 按照数据更新频率进行拆分

 例如数据是T+1更新,且单表数据量在百亿级别以上的场景(例如高维业务指标报表、Adhoc 分析),我们构建了离线分析集群。通过提高 StarRocks 的查询并发(parallel_fragment_exec_instance_num))、单节点内存限制(exec_mem_limit)等对复杂查询有好的参数,提高集群的查询性能;

针对数据是准实时更新,写多读多的场景(实时报表,实时全链路监控),构建了实时分析集群,通过调整StarRocks的compaction(cumulative_compaction_num_threads_per_disk、base_compaction_num_threads_per_disk)等对写入友好的参数,加快数据版本合并。

4.3 按照业务域进行拆分

  多点客户的接入方式不同,且各种SLA要求也不同,会按照不同的需求搭建不同的StarRocks就请你,尽量满足多种客户需求。

4.4 调优手段

   针对在线服务、系统,为了提高系统整体的查询性能,可以从不同的维度进行优化:

4.4.1 优化表结构定义

1)模型选择

StarRocks 的模型包括明细模型、聚合模型、更新模型、主键模型。

如果需要对原始的数据(例如订单流水,原始操作记录等)来进行分析,可以选择明细模型;

如果业务方进行的查询为汇总类查询,比如 SUM、COUNT、MAX 等类型的查询,可以选择聚合模型,提前进行预聚合,查询的时候直接获取结果;

如果数据需要频繁的进行状态更新(比如订单的状态变更),可以选择更新模型。

2)分区和分桶 

    StarRocks 可以对表进行分区(parition) 和分桶(bucket),分区在逻辑上把表划分成了多个子表,可以按照时间进行分区;分桶可以按照不同的策略将数据划分为不同的 tablet,分布在不同的 BE 节点上。按照目前多点大数据集群的机器配置(64C+256G+12TB SSD),通常将一个 tablet 保持在200MB~1GB的大小,会有比较好的性能。

3)稀疏索引、bloomfilter、Bitmap Index

   为了提高查询的性能,可以对 StarRocks 的表结构额外构建索引。稀疏索引:可以将查询中常见的过滤字段放在 schema 的前面, 区分度越大,频次越高的查询字段越往前放;同时对区分度比较大(高基数列)的列构建 bloomfilter;对区分度不大(低基数列)的列构建 Bitmap Index。

4)物化视图

  针对实际查询场景中经常用到的查询 SQL,可以对原始表构建物化视图,其本质为原始表 (base table)的一个物化索引,通过物化视图提前进行索引排序,指标预计算,查询的时候子自动路由到物化视图进行查询。

5)使用BITMAP / HyperLogLog 数据类型进行去重

   在交易场景中进行会计算交易次数,使用常规的方式(COUNT DISTRINCT order_id)去重,其缺点是需要消耗极大的计算和存储资源,对大规模数据集和查询延迟敏感的去重场景支持不够友好。通过定义 BITMAP 的数据类型,可以减少传统 COUNT DISTINCT 去重的执行需要的内存空间、执行时长;而对于像流量统计场景中针对 UV 的计算,在允许有部分统计偏差的前提下,可以定义 HyperLogLog 的数据类型,提高去重效率。

4.4.2 优化查询SQL

1)Broadcast Join

    当大表与小表进行 Join 的时候,可以使用 Broadcast Join(StarRocks 针对小表的默认 Join 方式),小表向大表广播的方式进行 Join。该方式可以用于事实表与维度表进行关联查询;

2)Colocation Join

    当大表与大表进行 Join 的时候,为了加速查询,相关表可以采用共同的分桶列(colocate_with)进行分桶。当分桶列相同,相关表进行 Join 操作时,可以直接在本地进行 Join,再将结果数据进行合并避免数据在中间计算的时候就在集群中的传输

3)并行度调整

   当机器资源比较充裕时,可以将增加执行并行度( parallel_fragment_exec_instance_num)让更多的执行实例同时处理一组数据扫描,从而提升查询效率。但是并行度设置为较大的数值会消耗更多的机器资源,例如 CPU、内存、磁盘 IO,影响整体的 QPS。需要根据实际上的查询场景来设置并行度,一般建议占用机器核数的50%

4)CBO 优化器

   针对复杂 Ad-hoc 场景,可以开启 StarRocks的基于成本(Cost-based Optimizer,CBO)的查询规划器,在众多查询计划空间中快速找到最优计划,提高查询优化器

4.5 工具集成

   为了与多点的大数据平台进行打通,对StartRocks进行了一些集成封装。

4.5.1  数据集成

    通过封装 StarRocks 的 Broker Load 以及 Stream Load 接口,与多点的大数据平台打通,实现通过配置的方式将数据从Hive批量同步到StarRocks,或者订阅MQ将实时数据同步到StarRocks。

4.5.2 监控预警

  通过集成Prometheus和Grafana,与监控平台打通。对多个StarRocks集群的运行情况进行监控,当集群的某些指标超过一定阈值的时候进行报警。

五、总结

    多点从2021年上半年开始调研引入 StarRocks,当前已有四个集群在稳定运行提供线上服务,逐步替代 Impala、Impala on Kudu、Apache Kylin 等存储引擎,实现了存储引擎的收敛,简化了实时数据处理链路,同时也能保障较高的查询并发以及较低的响应延迟要求

     在引擎引入以及切换的过程中,得到了 StarRocks社区的大力支持。后续公司在有余力的情况下会参与 StarRocks 的社区共建,共同打造性能强悍的国产新一代 MPP 数据库。

参考文章:

多点 DMALL x StarRocks:实现存储引擎的收敛,保障高查询并发及低延迟要求

相关文章:

StarRocks实战——多点大数据数仓构建

目录 前言 一、背景介绍 二、原有架构的痛点 2.1 技术成本 2.2 开发成本 2.2.1 离线 T1 更新的分析场景 2.2.2 实时更新分析场景 2.2.3 固定维度分析场景 2.2.4 运维成本 三、选择StarRocks的原因 3.1 引擎收敛 3.2 “大宽表”模型替换 3.3 简化Lambda架构 3.4 模…...

jmeter总结之:Regular Expression Extractor元件

Regular Expression Extractor是一个后处理器元件,使用正则从服务器的响应中提取数据,并将这些数据保存到JMeter变量中,以便在后续的请求或断言中使用。在处理动态数据或验证响应中的特定信息时很有用。 添加Regular Expression Extractor元…...

快速上手Spring Cloud 七:事件驱动架构与Spring Cloud

快速上手Spring Cloud 一:Spring Cloud 简介 快速上手Spring Cloud 二:核心组件解析 快速上手Spring Cloud 三:API网关深入探索与实战应用 快速上手Spring Cloud 四:微服务治理与安全 快速上手Spring Cloud 五:Spring …...

leetcode 1997.访问完所有房间的第一天

思路:动态规划前缀和 这道题还是很难的,因为你如果需要推出状态方程是很难想的。 在题中我们其实可以发现,这里在访问nextVisit数组的过程中,其实就是对于当前访问的房子之前的房子进行了回访。 怎么说呢?比如你现在…...

【InternLM 实战营第二期笔记】书生·浦语大模型全链路开源体系及InternLM2技术报告笔记

大模型 大模型成为发展通用人工智能的重要途径 专用模型:针对特定任务,一个模型解决一个问题 通用大模型:一个模型应对多种任务、多种模态 书生浦语大模型开源历程 2023.6.7:InternLM千亿参数语言大模型发布 2023.7.6&#…...

Netty对Channel事件的处理以及空轮询Bug的解决

继续上一篇Netty文章,这篇文章主要分析Netty对Channel事件的处理以及空轮询Bug的解决 当Netty中采用循环处理事件和提交的任务时 由于此时我在客户端建立连接,此时服务端没有提交任何任务 此时select方法让Selector进入无休止的阻塞等待 此时selectCnt进…...

【PostgreSQL】- 1.1 在 Debian 12 上安装 PostgreSQL 15

官方说明参考 (原文 PostgreSQL:Linux 下载 (Debian)) 默认情况下,PostgreSQL 在所有 Debian 版本中都可用。但是, Debians 的稳定版本“快照”了特定版本的 PostgreSQL 然后在该 Debian 版本的…...

第4章.精通标准提示,引领ChatGPT精准输出

标准提示 标准提示,是引导ChatGPT输出的一个简单方法,它提供了一个具体的任务让模型完成。 如果你要生成一篇新闻摘要。你只要发送指示词:汇总这篇新闻 : …… 提示公式:生成[任务] 生成新闻文章的摘要: 任务&#x…...

HTTP状态 405 - 方法不允许

方法有问题。 用Post发的请求&#xff0c;然后用Put接收的。 大家也可以看看是不是有这种问题 <body><h1>HTTP状态 405 - 方法不允许</h1><hr class"line" /><p><b>类型</b> 状态报告</p><p><b>消息…...

题目 2898: 二维数组回形遍历

题目描述: 给定一个row行col列的整数数组array&#xff0c;要求从array[0][0]元素开始&#xff0c;按回形从外向内顺时针顺序遍历整个数组。如图所示&#xff1a; 代码: package lanqiao;import java.math.BigInteger; import java.util.*;public class Main {public static …...

Git命令上传本地项目至github

记录如何创建个人仓库并上传已有代码至github in MacOS环境 0. 首先下载git 方法很多 这里就不介绍了 1. Github Create a new repository 先在github上创建一个空仓库&#xff0c;用于一会儿链接项目文件&#xff0c;按照自己的需求设置name和是否private 2.push an exis…...

机器学习之决策树现成的模型使用

目录 须知 DecisionTreeClassifier sklearn.tree.plot_tree cost_complexity_pruning_path(X_train, y_train) CART分类树算法 基尼指数 分类树的构建思想 对于离散的数据 对于连续值 剪枝策略 剪枝是什么 剪枝的分类 预剪枝 后剪枝 后剪枝策略体现之威斯康辛州乳…...

【python分析实战】成本:揭示电商平台月度开支与成本结构占比 - 过于详细 【收藏】

重点关注本文思路&#xff0c;用python分析&#xff0c;方便大家实验复现&#xff0c;代码每次都用全量的&#xff0c;其他工具自行选择。 全文3000字&#xff0c;阅读10min&#xff0c;操作1小时 企业案例实战欢迎关注专栏 每日更新&#xff1a;https://blog.csdn.net/cciehl/…...

新网站收录时间是多久,新建网站多久被百度收录

对于新建的网站而言&#xff0c;被搜索引擎收录是非常重要的一步&#xff0c;它标志着网站的正式上线和对外开放。然而&#xff0c;新网站被搜索引擎收录需要一定的时间&#xff0c;而且时间长短受多种因素影响。本文将探讨新网站收录需要多长时间&#xff0c;以及新建网站多久…...

通过Caliper进行压力测试程序,且汇总压力测试问题解决

环境要求 第一步. 配置基本环境 部署Caliper的计算机需要有外网权限;操作系统版本需要满足以下要求:Ubuntu >= 16.04、CentOS >= 7或MacOS >= 10.14;部署Caliper的计算机需要安装有以下软件:python 2.7、make、g++(gcc-c++)、gcc及git。第二步. 安装NodeJS # …...

LabVIEW比例流量阀自动测试系统

LabVIEW比例流量阀自动测试系统 开发了一套基于LabVIEW编程和PLC控制的比例流量阀自动测试系统。通过引入改进的FCMAC算法至测试回路的压力控制系统&#xff0c;有效提升了压力控制效果&#xff0c;展现了系统的设计理念和实现方法。 项目背景&#xff1a; 比例流量阀在液压…...

安卓U3D逆向从Assembly-CSharp到il2cpp

随着unity技术的发展及厂商对于脚本源码的保护&#xff0c;很大一部分U3D应用的scripting backend已经由mono转为了il2cpp&#xff0c;本文从unity简单应用的制作讲起&#xff0c;介绍U3D应用脚本的Assembly-CSharp.dll的逆向及il2cpp.so的逆向分析。 目录如下&#xff1a; 0…...

计算机网络——30SDN控制平面

SDN控制平面 SDN架构 数据平面交换机 快速、简单&#xff0c;商业化交换设备采用硬件实现通用转发功能流表被控制器计算和安装基于南向API&#xff0c;SDN控制器访问基于流的交换机 定义了哪些可以被控制哪些不能 也定义了和控制器的协议 SDN控制器&#xff08;网络OS&#…...

Obsidian插件-高亮块(Admonition)

在插件市场里面搜索Admonition并安装插件&#xff0c;就可以使用高亮块了。 添加高亮块 用法稍微有一些不同。按照下面的格式&#xff0c;输入Markdown就可以创建一个高亮块。 内容内容内容输入*ad-*会出现相应的类型可以选择...

jHipster 之 webflux-前端用EventSource处理sse变成了批量处理而非实时处理

现象&#xff1a; const eventSource new EventSource(API_URL5);eventSource.onmessage streamEvent > {console.log(a message is come in--------->);const content streamEvent.data;console.log(Received content: content);};前端用EventSource 处理webflux的…...

原型链-(前端面试 2024 版)

来讲一讲原型链 原型链只存在于函数之中 四个规则 1、引用类型&#xff0c;都具有对象特性&#xff0c;即可自由扩展属性。 2、引用类型&#xff0c;都有一个隐式原型 __proto__ 属性&#xff0c;属性值是一个普通的对象。 3、引用类型&#xff0c;隐式原型 __proto__ 的属…...

网络套接字补充——UDP网络编程

五、UDP网络编程 ​ 1.对于服务器使用智能指针维护生命周期&#xff1b;2.创建UDP套接字&#xff1b;3.绑定端口号&#xff0c;包括设置服务器端口号和IP地址&#xff0c;端口号一般是2字节使用uint16_t&#xff0c;而IP地址用户习惯使用点分十进制格式所以传入的是string类型…...

自动化测试 —— Pytest fixture及conftest详解

前言 fixture是在测试函数运行前后&#xff0c;由pytest执行的外壳函数。fixture中的代码可以定制&#xff0c;满足多变的测试需求&#xff0c;包括定义传入测试中的数据集、配置测试前系统的初始状态、为批量测试提供数据源等等。fixture是pytest的精髓所在&#xff0c;类似u…...

Scala第十四章节(隐式转换、隐式参数以及获取列表元素平均值的案例)

章节目标 掌握隐式转换相关内容掌握隐式参数相关内容掌握获取列表元素平均值的案例 1.隐式转换和隐式参数介绍 隐式转换和隐式参数是Scala中非常有特色的功能&#xff0c;也是Java等其他编程语言没有的功能。我们可以很方便地利用 隐式转换来丰富现有类的功能。在后续编写Ak…...

VsCode的json文件不允许注释的解决办法

右下角找到注释点进去 输入Files: Associations搜索出此项 改为项为*.json值为jsonc保存即可 然后会发现VsCode的json文件就允许注释了...

利用图像识别进行疾病诊断

利用图像识别进行疾病诊断是人工智能和机器学习技术在医疗领域的一个重要应用。图像识别技术可以通过分析医学影像&#xff08;如X光片、CT扫描、MRI、超声波图像等&#xff09;来辅助医生诊断疾病。以下是图像识别在疾病诊断中的关键步骤和挑战&#xff1a; 数据收集与预处理…...

大数据学习-2024/3/28-excel文件的读写操作

借助第三方模块:inxlrd,xlwt pip 第三方模块包管理工具 –> winr --> cmd --> 打开操作系统 –> python --> 查看默认的解释器版本 --> exit() –> pip list --> 查看第三方模块的列表 pip36 list --> 查看3.6版本安装的第三方模块列表 –> pip[…...

k8s 如何获取加入节点命名

当k8s集群初始化成功的时候&#xff0c;就会出现 加入节点 的命令如下&#xff1a; 但是如果忘记了就需要找回这条命令了。 kubeadm join 的命令格式如下&#xff1a;kubeadm join --token <token> --discovery-token-ca-cert-hash sha256:<hash>--token 令牌--…...

黑群晖基于docker配置frp内网穿透

前言 我的黑群晖需要设置一下内网穿透来外地访问&#xff0c;虽然zerotier的p2p组网已经很不错了&#xff0c;但是这个毕竟有一定的局限性&#xff0c;比如我是ios的国区id就下载不了zerotier的app&#xff0c;组网不了 1.下载镜像 选择第一个镜像 2.映射文件 配置frpc.ini&a…...

多线程基础:线程通信内容补充

多线程基础&#xff1a;线程通信内容补充 文章目录 多线程基础&#xff1a;线程通信内容补充前言一、wait(), notify(), notifyAll()二、join()三、Lock 和 Condition四、并发集合和原子变量1、并发集合2、原子变量 总结 前言 前文内容中讲了线程通信的内容&#xff0c;但是不…...