StarRocks:存算一体模式部署

目录

一、StarRocks 简介        

二、StarRocks 架构

2.1 存算一体

2.2 存算分离

三、前期准备

3.1前提条件

3.2 集群规划

3.3 配置环境

3.4 准备部署文件

四、手动部署

4.1 部署FE节点

4.2 部署BE节点

4.3 部署CN节点(可选)

4.4 FE高可用

4.5 故障排除

五、集群管理

5.1 启动集群

5.2 停止集群


一、StarRocks 简介        

        StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,支持标准 SQL,用户可以轻松地通过 MySQL 客户端连接到 StarRocks 实时查询分析数据。同时 StarRocks 具备水平扩展,高可用、高可靠、易运维等特性。

二、StarRocks 架构

        StarRocks 架构简洁明了,整个系统仅由两种组件组成:前端和后端。前端节点称为 FE。后端节点有两种类型,BE 和 CN (计算节点)。当使用本地存储数据时,您需要部署 BE;当数据存储在对象存储或 HDFS 时,需要部署 CN。StarRocks 不依赖任何外部组件,简化了部署和维护。节点可以水平扩展而不影响服务正常运行。此外,StarRocks 具有元数据和服务数据副本机制,提高了数据可靠性,有效防止单点故障 (SPOF)。

2.1 存算一体

        作为典型的大规模并行处理 (MPP) 数据库,StarRocks 支持存算一体架构。在存算一体架构中,FE 负责元数据管理和构建执行计划;BE 执行查询计划并存储数据。将数据存储在 BE 中使得数据可以在当前节点中计算,避免了数据传输和复制,从而提供极快的查询和分析性能。该架构支持多副本数据存储,增强了集群处理高并发查询的能力并确保数据可靠性,非常适合追求最佳查询性能的场景。

  • FE​

        FE 负责元数据管理、客户端连接管理、查询规划和查询调度。每个 FE 在其内存中存储和维护一份完整的元数据副本,保证 FE 之间服务的一致性。FE 分为 Leader FE 节点、Follower 节点和 Observer 节点。Follower 节点可以根据类似 Paxos 的 BDB JE(Berkeley DB Java Edition)协议选举主节点。

  • BE

        BE 负责数据存储和 SQL 执行。

        1)数据存储:BE 具有等效的数据存储能力。FE 根据预定义规则将数据分发到各个 BE。BE 转换导入的数据,将数据写入所需格式,并为数据生成索引。

        2)SQL 执行:FE 根据查询的语义将每个 SQL 查询解析为逻辑执行计划,然后将逻辑计划转换为可以在 BE 上执行的物理执行计划。BE 在本地存储数据以及执行查询,避免了数据传输和复制,极大地提高了查询性能。

2.2 存算分离

        在存算分离架构中,BE 被“计算节点 (CN)”取代,后者仅负责数据计算任务和缓存热数据。数据存储在低成本且可靠的远端存储系统中,如 Amazon S3、GCP、Azure Blob Storage、MinIO 等。当缓存命中时,查询性能可与存算一体架构相媲美。CN 节点可以根据需要在几秒钟内添加或删除。这种架构降低了存储成本,确保更好的资源隔离,并具有高度的弹性和可扩展性。

        存算分离架构与存算一体架构一样简单。它仅由两种类型的节点组成:FE 和 CN。唯一的区别是用户必须配置后端对象存储。

  • 节点​

        在存算分离架构中,FE 提供的功能与存算一体架构中的相同。

        BE 被 CN (计算节点) 取代,存储功能被转移到对象存储或 HDFS。CN 是无状态的计算节点,可以执行除存储数据外所有 BE 的功能。

  • 存储​

        StarRocks 存算分离集群支持两种存储解决方案:对象存储 (例如,AWS S3、Google GCS、Azure Blob Storage 或 MinIO) 和 HDFS。

         在存算分离集群中,数据文件格式与存算一体集群 (存储和计算耦合) 保持一致。数据存储为 Segment 文件,云原生表(专门用于存算分离集群的表)也可以利用存算一体架构中支持的各种索引技术。

  • 缓存

        StarRocks 存算分离集群将数据存储与计算分离,使两方都能够独立扩展,从而降低成本并提高系统弹性扩展能力。然而,这种架构会影响查询性能。 为减少架构对于性能的影响,StarRocks 建立了包含内存、本地磁盘和远端存储的多层数据访问系统,以便更好地满足各种业务需求。

         对于针对热数据的查询,StarRocks 会先扫描缓存,然后扫描本地磁盘。而针对冷数据的查询,需要先将数据从对象存储中加载到本地缓存中,加速后续查询。通过将热数据缓存在计算单元内,StarRocks 实现了真正的高计算性能和高性价比存储。此外,还通过数据预取策略优化了对冷数据的访问,有效消除了查询的性能限制。

        可以在建表时启用缓存。启用缓存后,数据将同时写入本地磁盘和后端对象存储。在查询过程中,CN 节点首先从本地磁盘读取数据。如果未找到数据,将从后端对象存储中检索,并将数据缓存到本地磁盘中。

三、前期准备

3.1前提条件

  • CPU

        StarRocks 依靠 AVX2 指令集充分发挥其矢量化能力。因此,在生产环境中,强烈建议您将 StarRocks 部署于 x86 架构 CPU 的服务器上。

#在终端中运行以下命令来检查 CPU 是否支持 AVX2 指令集

cat /proc/cpuinfo | grep avx2

  • 内存

        StarRocks 对内存没有特定要求。关于推荐的内存大小,请参考集群规划章节的CPU 和内存部分。

  • 存储

        StarRocks 支持 HDD 和 SSD 作为存储介质。 在实时数据分析场景、以及涉及大量数据扫描或随机磁盘访问的场景下,强烈建议您选择 SSD 作为存储介质。

  • 网络

        建议使用万兆网络连接(10 Gigabit Ethernet,简称 10 GE)确保 StarRocks 集群内数据能够跨节点高效传输。

  • 操作系统

        StarRocks 支持在 CentOS Linux 7.9 和 Ubuntu Linux 22.04 上部署。

  • JDK

        必须在服务器上安装 JDK 8 以运行 StarRocks。v2.5 及以上版本建议安装 JDK 11。

3.2 集群规划

节点实例数CPU内存存储
FE1~38核+16G+100 GB+
BE3+16核+64G+预估 BE 初始存储空间

        1. FE规划

  • 测试环境可以部署1个节点;生产环境建议至少部署3个节点,防止单节点故障。
  • FE 节点主要负责元数据管理、客户端连接管理、查询计划和查询调度,不会消耗大量的 CPU 和内存资源。生产环境建议为每个 FE 节点分配 8 个 CPU 内核和 16 GB RAM。
  • 由于 FE 节点仅在其存储中维护 StarRocks 的元数据,因此在大多数场景下,每个 FE 节点只需要 100 GB 的存储。

        2. BE规划

  • 测试环境可以部署1个节点,生产环境建议您至少部署三个 BE 节点,这些节点会自动形成一个 BE 高可用集群,避免由于发生单点故障而影响数据可靠性和服务可用性。
  • BE 节点负责数据存储和 SQL 执行,需要使用大量 CPU 和内存资源。生产环境建议为每个 BE 节点分配 16 个 CPU 内核和 64 GB RAM。
  • StarRocks 默认维护三个副本,提供 3:1 到 5:1 的数据压缩比。 通过计算得到总存储空间后,可以简单地将之除以集群中的 BE 节点数,估算出每个 BE 节点所需的平均初始存储空间
  • 如果 BE 存储空间随着原始数据的增长而耗尽,可以通过在 BE 节点上添加额外的存储卷在 StarRocks 集群中添加新的 BE 节点以补充存储空间。

3.3 配置环境

  • 端口规划

        StarRocks 为不同的服务使用特定的端口,请检查这些端口是否被占用。

#检查端口是否被占用

netstat -tunlp | grep 8030

节点端口名称默认端口说明
FEhttp_port8030FE HTTP Server 端口
rpc_port9020FE Thrift Server 端口
query_port9030FE MySQL Server 端口
edit_log_port9010FE 内部通讯端口
cloud_native_meta_port6090FE 云原生元数据服务 RPC 监听端口
BEbe_port9060BE Thrift Server 端口
be_http_portbe_http_port8040BE HTTP Server 端口
heartbeat_service_port9050BE 心跳服务端口
brpc_port8060BE bRPC 端口
starlet_port9070BE 和 CN 的额外 Agent 服务端口
CNbe_port9060CN Thrift Server 端口
be_http_port8040CN HTTP Server 端口
heartbeat_service_port9050CN 心跳服务端口
brpc_port8060CN bRPC 端口
starlet_port9070BE 和 CN 的额外 Agent 服务端口
  • 主机名

        如果StarRocks 集群 启用 FQDN 访问,则必须为每个实例设置一个主机名。 在每个实例的 /etc/hosts 文件中,必须指定集群中其他实例的 IP 地址和相应的主机名。

  • JDK 设置​

        StarRocks 依靠环境变量 JAVA_HOME 定位实例上的 Java 依赖项。

  • 文件系统配置​

        建议使用 ext4 或 xfs 日志文件系。

  • 关闭透明大页(Transparent Huge Pages

        Transparent Huge Pages 默认启用。因其会干扰内存分配,进而导致性能下降,建议您禁用此功能。

# 临时变更。
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
# 永久变更。
cat >> /etc/rc.d/rc.local << EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo madvise > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod +x /etc/rc.d/rc.local
  • 关闭 Swap Space

        从 /etc/fstab 文件中注释掉或者直接删除 Swap Space 信息。

# /<path_to_swap_space> swap swap defaults 0 0

  • 禁用 SELinux

# 临时变更。
setenforce 0
# 永久变更。
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
sed -i 's/SELINUXTYPE/#SELINUXTYPE/' /etc/selinux/config

  • 关闭防火墙

        如果启用了防火墙,请为 FE、BE 和 Broker 开启内部端口,内网环境可以直接关闭防火墙。

#停掉防火墙
systemctl stop firewalld
#永久关闭防火墙
systemctl disable firewalld
#查看防火墙状态,显示Active: inactive (dead)证明操作成功
 systemctl status firewalld

  • ulimit 设置

        如果最大文件描述符和最大用户进程的值设置得过小,StarRocks 运行可能会出现问题。建议将系统资源上限调大。

cat >> /etc/security/limits.conf << EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* hard memlock unlimited
* soft memlock unlimited
EOF

cat >> /etc/security/limits.d/20-nproc.conf << EOF 
*          soft    nproc     65535
root       soft    nproc     65535
EOF
  • 修改系统内核参数

#如果系统当前因后台进程无法处理的新连接而溢出,则允许系统重置新连接
net.ipv4.tcp_abort_on_overflow=1

#设置监听 Socket 队列的最大连接请求数为 1024
net.core.somaxconn=1024

#允许操作系统将额外的内存资源分配给进程,建议启用。
vm.overcommit_memory=1

#Swappiness 会对性能造成影响,因此建议禁用 Swappiness。
vm.swappiness=0

#进程可以拥有的 VMA(虚拟内存区域)的数量。将该值调整为 262144
vm.max_map_count = 262144

#最大线程数
kernel.threads-max = 120000

#进程标识符(PID)最大值
kernel.pid_max = 200000 

3.4 准备部署文件

        目前 镜舟官网提供的 StarRocks 软件包仅支持在 x86 架构的 CPU 上部署。如需在 ARM 架构 CPU 上部署 StarRocks,您需要通过StarRocks Docker 镜像获取部署文件。

四、手动部署

4.1 部署FE节点

1.修改 FE 配置文件

# vi fe/conf/fe.conf

# 将 <meta_dir> 替换为已创建的元数据目录。
meta_dir = <meta_dir>

#为 FE 节点分配一个专有的 IP 地址(CIDR格式)

priority_networks = x.x.x.x/x

# 如须,可修改jdk版本;将 <path_to_JDK> 替换为所选 JDK 的安装路径。
JAVA_HOME = <path_to_JDK>

2.启动FE节点

./fe/bin/start_fe.sh --daemon

3.登录FE节点

        通过 MySQL 客户端连接到 StarRocks。您需要使用初始用户 root 登录,密码默认为空。

# 将 <fe_address> 替换为 Leader FE 节点的 IP 地址(priority_networks),
# 并将 <query_port>(默认:9030)替换为您在 fe.conf 中指定的 query_port。
mysql -h <fe_address> -P<query_port> -uroot

        执行以下 SQL 查看 Leader FE 节点状态:

SHOW PROC '/frontends'\G

4.2 部署BE节点

1.修改BE配置文件

vi be/conf/be.conf

# 将 <storage_root_path> 替换为已创建的数据存储路径。
storage_root_path = <storage_root_path>

为 BE 节点分配一个专有的 IP 地址(CIDR格式)

priority_networks = x.x.x.x/x

# 如须,可修改jdk版本;将 <path_to_JDK> 替换为所选 JDK 的安装路径。
JAVA_HOME = <path_to_JDK>

2.启动BE节点

./be/bin/start_be.sh --daemon

3.将BE节点加入集群

登录FE节点后,通过以下命令将BE加入集群:

-- 将 <be_address> 替换为 BE 节点的 IP 地址(priority_networks)
-- 并将 <heartbeat_service_port>(默认:9050)替换为在 be.conf 中指定的 heartbeat_service_port。
ALTER SYSTEM ADD BACKEND "<be_address>:<heartbeat_service_port>";

执行以下 SQL 查看 BE 节点状态:

SHOW PROC '/backends'\G

4.在其他 BE 实例上重复以上步骤,即可启动新的 BE 节点

        在一个 StarRocks 集群中部署并添加至少 3 个 BE 节点,形成一个 BE 高可用集群。 如果只想部署一个 BE 节点,必须在 FE 配置文件 fe/conf/fe.conf 中设置 default_replication_num 为 1

4.3 部署CN节点(可选)

        Compute Node(CN)是一种无状态的计算服务,本身不存储数据。可以通过添加 CN 节点为查询提供额外的计算资源。自 v2.4 版本起支持使用 BE 部署文件部署 CN 节点。

1.修改CN配置文件

#为 CN 节点分配一个专有的 IP 地址(CIDR格式)

priority_networks = x.x.x.x/x

# 如须,可修改jdk版本;将 <path_to_JDK> 替换为所选 JDK 的安装路径。
JAVA_HOME = <path_to_JDK>

2.启动CN节点

./be/bin/start_cn.sh --daemon

3.将CN节点加入集群

登录FE节点后,通过以下命令将CN加入集群:

-- 将 <cn_address> 替换为 CN 节点的 IP 地址(priority_networks)或 FQDN,
-- 并将 <heartbeat_service_port>(默认:9050)替换为您在 cn.conf 中指定的 heartbeat_service_port。
ALTER SYSTEM ADD COMPUTE NODE "<cn_address>:<heartbeat_service_port>";

执行以下 SQL 查看 CN 节点状态

SHOW PROC '/compute_nodes'\G

4.在其他实例上重复以上步骤,即可启动新的 CN 节点

4.4 FE高可用

        高可用的 FE 集群需要在 StarRocks 集群中部署至少三个 Follower FE 节点。如需部署高可用的 FE 集群,需要额外再启动两个新的 FE 节点。

1.参考4.1部署FE节点,部署两个新的FE节点

2.将新部署的FE节点加入集群

-- 将 <new_fe_address> 替换为需要添加的新 FE 节点的 IP 地址(priority_networks)
-- 并将 <edit_log_port>(默认:9010)替换为在新 FE 节点的 fe.conf 中指定的 edit_log_port。
ALTER SYSTEM ADD FOLLOWER "<new_fe_address>:<edit_log_port>","<new_fe_address>:<edit_log_port>";

4.5 故障排除

        如果启动 FE、BE 或 CN 节点失败,尝试以下步骤来发现问题:

  • 如果 FE 节点没有正常启动,您可以通过查看 fe/log/fe.warn.log 中的日志来确定问题所在。

cat fe/log/fe.warn.log

        确定并解决问题后,首先需要终止当前 FE 进程,删除现有的 meta 路径下的所有文件,然后以正确的配置重启该 FE 节点。

  • 如果 BE 节点没有正常启动,您可以通过查看 be/log/be.WARNING 中的日志来确定问题所在。

cat be/log/be.WARNING

        确定并解决问题后,首先需要终止当前 BE 进程,删除现有的 storage 路径下的所有文件,然后以正确的配置重启该 BE 节点。

  • 如果 CN 节点没有正常启动,您可以通过查看 be/log/cn.WARNING 中的日志来确定问题所在。

cat be/log/cn.WARNING

        确定并解决问题后,首先需要终止当前 CN 进程,然后以正确的配置重启该 CN 节点。

五、集群管理

5.1 启动集群

  • 启动FE节点

sh fe/bin/start_fe.sh --daemon

  • 启动BE节点

sh be/bin/start_be.sh --daemon

  • 启动CN节点

sh be/bin/start_cn.sh --daemon

5.2 停止集群

  • 停止FE节点

./fe/bin/stop_fe.sh --daemon

  • 停止BE节点

./be/bin/stop_be.sh --daemon

  • 停止CN节点

./be/bin/stop_cn.sh --daemon

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

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

相关文章

红米Note 9 Pro5G刷小米官方系统

前言 刷机有2种方式&#xff1a;线刷 和 卡刷。 线刷 线刷&#xff1a;需要用电脑刷机工具&#xff0c;例如&#xff1a;XiaoMiFlash.exe&#xff0c;通过电脑和数据线对设备进行刷机。 适用场景&#xff1a; 系统损坏无法开机。恢复官方出厂固件。刷机失败导致软砖、硬砖的…

关于Tomcat的一些关键参数

目录 Tomcat参数总览设置位置 参数分析Tomcat内部类maxConnections属性Tomcat内部类的acceptCountTomcat有几个Acceptor线程Tomcat的工作线程池 Tomcat参数总览 package org.springframework.boot.autoconfigure.web; /** * * {link ConfigurationProperties ConfigurationP…

网络安全核心目标CIA

网络安全的核心目标是为关键资产提供机密性(Confidentiality)、可用性(Availablity)、完整性(Integrity)。作为安全基础架构中的主要的安全目标和宗旨&#xff0c;机密性、可用性、完整性频频出现&#xff0c;被简称为CIA&#xff0c;也被成为你AIC&#xff0c;只是顺序不同而已…

HIPT论文阅读

题目《Scaling Vision Transformers to Gigapixel Images via Hierarchical Self-Supervised Learning》 论文地址&#xff1a;[2206.02647] Scaling Vision Transformers to Gigapixel Images via Hierarchical Self-Supervised Learning 项目地址&#xff1a;mahmoodlab/HI…

智能挂号系统设计典范:SSM 结合 Vue 在医院的应用实现

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了医院预约挂号系统的开发全过程。通过分析医院预约挂号系统管理的不足&#xff0c;创建了一个计算机管理医院预约挂号系统的方案。文章介绍了医院预约挂号系统的系…

Windows11 家庭版安装配置 Docker

1. 安装WSL WSL 是什么&#xff1a; WSL 是一个在 Windows 上运行 Linux 环境的轻量级工具&#xff0c;它可以让用户在 Windows 系统中运行 Linux 工具和应用程序。Docker 为什么需要 WSL&#xff1a; Docker 依赖 Linux 内核功能&#xff0c;WSL 2 提供了一个高性能、轻量级的…

【hackmyvm】Diophante 靶场

1. 基本信息^toc 这里写目录标题 1. 基本信息^toc2. 信息收集2.1. 端口扫描2.2. 目录扫描2.3. knock 3. WordPress利用3.1. wpscan扫描3.2. smtp上传后门 4. 提权4.1. 提权leonard用户4.2. LD劫持提权root 靶机链接 https://hackmyvm.eu/machines/machine.php?vmDiophante 作者…

OB删除1.5亿数据耗费2小时

目录 回顾&#xff1a;mysql是怎么删除数据的&#xff1f; 删除方案 代码实现 执行结果 结论 本篇是实际操作 批量处理数据以及线程池线程数设置 记录学习 背景&#xff1a;有一张用户标签表&#xff0c;存储数据量达4个亿&#xff0c;使用OceanBase存储&#xff0c;由于…

Qt:QMetaObject::connectSlotsByName实现信号槽自动关联

简介 在Qt中&#xff0c;QMetaObject::connectSlotsByName 是一个便利的方法&#xff0c;它可以根据对象的对象名&#xff08;objectName&#xff09;自动将信号和槽连接起来。但是&#xff0c;要使用这个方法&#xff0c;必须确保&#xff1a; 1 控件&#xff08;如按钮&…

记录仪方案_记录仪安卓主板定制_音视频记录仪PCBA定制开发

记录仪主板采用了强大的联发科MTK8768处理器&#xff0c;拥有出色的性能表现。它搭载了四个主频为2.0GHz的Cortex-A53核心与四个主频为1.5GHz的Cortex-A53核心&#xff0c;确保了高效的处理速度。此外&#xff0c;主板配备了4GB的RAM(可选8GB)&#xff0c;并且内置64GB的ROM(可…

Ubuntu 20.04 卸载和安装 MySQL8.0

卸载 首先&#xff0c;检查一下系统安装的软件包有哪些&#xff0c;使用dpkg -l | grep mysql命令&#xff1a; 为了将MySQL卸载干净&#xff0c;这些文件都需要被删除。 在Ubuntu20.04系统下&#xff0c;卸载干净MySQL8.0以确保下一次安装不会出错&#xff0c;可以按照以下…

RCNN系列是如何逐步改善的

1、R-CNN的缺点&#xff1a; 1&#xff09;计算效率低下&#xff1a;RCNN需要为每一个候选框都提取特征&#xff0c;会导致大量重复的工作&#xff0c;因为候选框是原始图片的一部分&#xff0c;肯定是存在交集的。2&#xff09;需要大量的磁盘空间&#xff1a;在训练阶段&…

数据结构day5:单向循环链表 代码作业

一、loopLink.h #ifndef __LOOPLINK_H__ #define __LOOPLINK_H__#include <stdio.h> #include <stdlib.h>typedef int DataType;typedef struct node {union{int len;DataType data;};struct node* next; }loopLink, *loopLinkPtr;//创建 loopLinkPtr create();//…

后摩尔定律时代,什么将推动计算机性能优化的发展?

在摩尔定律时代&#xff0c;每两年芯片上的晶体管数量就会翻一番&#xff0c;这一看似不可避免的趋势被称为摩尔定律&#xff0c;它极大地促进了计算机性能的提高。然而&#xff0c;硅基晶体管不可能一直小下去&#xff0c;半导体晶体管的微型化推动了计算机性能的提升&#xf…

LEAST-TO-MOST PROMPTING ENABLES COMPLEX REASONING IN LARGE LANGUAGE MODELS---正文

题目 最少到最多的提示使大型语言模型能够进行复杂的推理 论文地址&#xff1a;https://arxiv.org/abs/2205.10625 摘要 思路链提示在各种自然语言推理任务中表现出色。然而&#xff0c;它在需要解决比提示中显示的示例更难的问题的任务上表现不佳。为了克服这种由易到难的概括…

0101多级nginx代理websocket配置-nginx-web服务器

1. 前言 项目一些信息需要通过站内信主动推动给用户&#xff0c;使用websocket。web服务器选用nginx&#xff0c;但是域名是以前通过阿里云申请的&#xff0c;解析ip也是阿里云的服务器&#xff0c;甲方不希望更换域名。新的系统需要部署在内网服务器&#xff0c;简单拓扑图如…

Mysql8版本的下载安装配置,无痛使用!!!!

mysql8.x版本和msyql5.x版本zip安装的方式大同小异&#xff0c;但是在mysql8.0版本不用手动创建data数据目录&#xff0c;初始化的时候会自动安装的。而且mysql8.0版本性能官方表示比mysql 5.7的快两倍&#xff01; 可以查看文章看5.7版本的安装 MySql5.7安装、配置最新版_my…

《商业模式2.0图鉴》读书笔记(如何构建创新驱动的商业模式:打破定律与重塑价值)

文章目录 引言一、构建创新商业模式的核心原则二、创新商业模式的构建维度三、商业模式设计的实践工具与方法四、从现状到未来&#xff1a;商业模式的演进路径结论附录标题图 引言 商业模式是企业连接资源与客户的桥梁&#xff0c;是价值创造与捕获的核心框架。随着市场需求和…

【数据结构】数据结构整体大纲

数据结构用来干什么的&#xff1f;很简单&#xff0c;存数据用的。 &#xff08;这篇文章仅介绍数据结构的大纲&#xff0c;详细讲解放在后面的每一个章节中&#xff0c;逐个击破&#xff09; 那为什么不直接使用数组、集合来存储呢 ——> 如果有成千上亿条数据呢&#xff…

Flutter组件————FloatingActionButton

FloatingActionButton 是Flutter中的一个组件&#xff0c;通常用于显示一个圆形的按钮&#xff0c;它悬浮在内容之上&#xff0c;旨在吸引用户的注意力&#xff0c;并代表屏幕上的主要动作。这种按钮是Material Design的一部分&#xff0c;通常放置在页面的右下角&#xff0c;但…