CentOS7安装部署StarRocks

文章目录

  • CentOS7安装部署StarRocks
  • 一、前言
    • 1.简介
    • 2.环境
  • 二、正文
    • 1.StarRocks基础
      • 1)架构图
      • 2)通讯端口
    • 2.部署服务器
    • 3.安装基础环境
      • 1)安装JDK 11
      • 2)修改机器名
      • 3)安装GCC
      • 4)关闭交换分区(swap)
      • 5)时钟同步
      • 6)关闭防火墙
      • 7)SELinux
      • 8)LANG 变量
      • 9)时区
      • 10)ulimit 设置
      • 11)网络配置
      • 12)高并发配置
    • 4.集群部署
      • 1)安装FE
      • 2)拷贝BE
      • 3)安装BE
      • 4)安装CN【可选】
      • 5)安装MySQL客户端
      • 6)集群搭建
      • 7)测试
      • 8)WebUI
    • 5.服务自启动
      • 1)配置FE自启动
      • 2)配置BE自启动
      • 3)配置CN自启动
      • 4)启动服务

CentOS7安装部署StarRocks

一、前言

1.简介

  • Apache Doris:Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。
  • StarRocks:StarRocks 基于 Apache Doris (incubating) 0.13 打造;StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,可使用 MySQL 客户端和常用 BI 工具对接。同时 StarRocks 具备水平扩展,高可用、高可靠、易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。
  • 镜舟数据库:基于 StarRocks 发展起来的企业级商用数据库,满足金融、物流、汽车、能源、医疗等政企客户对技术支持、解决方案、生态建设、售后保障等方面的极致要求。

2.环境

  • Linux 发行版:CentOS-7-x86_64-DVD-1804.iso
  • JDK 版本:Java SE Development Kit 11.0.19
  • StarRocks 版本:2.5.13

StarRocks 开发文档

镜舟数据库官网

Doris 介绍

SelectDB 官网

CentOS7安装部署Doris

CentOS7安装部署CDH6.2.1

CentOS基础操作命令

CentOS对换home分区与root分区的存储空间

CentOS7安装部署Java11

CentOS7安装部署MySQL80

二、正文

1.StarRocks基础

1)架构图

系统架构 @ Architecture @ StarRocks Docs

StarRocks 存算分离架构 @ StarRocks Docs

在这里插入图片描述

  • FE 是 StarRocks 的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。每个 FE 节点都会在内存保留一份完整的元数据,这样每个 FE 节点都能够提供无差别的服务。

对于 StarRocks 生产集群,建议至少部署三个 Follower FE 节点,以防止单点故障。

  • BE 是 StarRocks 的后端节点,负责数据存储、SQL执行等工作。

对于 StarRocks 生产集群,建议至少部署三个 BE 节点,这些节点会自动形成一个 BE 高可用集群,避免由于发生单点故障而影响数据可靠性和服务可用性。

通过增加 BE 节点的数量来实现查询的高并发。

  • Compute Node(CN)是一种无状态的计算服务,本身不存储数据,仅负责 SQL 执行;通过添加 CN 节点为查询提供额外的计算资源,而无需改变集群中的数据分布;CN 节点自 v2.4 版本起支持。

2)通讯端口

检查环境配置 | StarRocks

  • FE 端口
端口端口名称端口说明
8030http_portFE HTTP Server 端口
9020rpc_portFE Thrift Server 端口
9030query_portFE MySQL Server 端口
9010edit_log_portFE 内部通讯端口
  • BE 端口
端口端口名称端口说明
9060be_portBE Thrift Server 端口
8040webserver_portBE HTTP Server 端口
9050heartbeat_service_portBE 心跳服务端口
8060brpc_portBE BRPC 端口
  • CN 端口
端口端口名称端口说明
9060thrift_portCN Thrift Server 端口
8040webserver_portCN HTTP Server 端口
9050heartbeat_service_portCN 心跳服务端口
8060brpc_portCN BRPC 端口
  • FE 元数据存放位置:meta_dir = /data/starrocks/metadata
  • BE 数据存放目录:storage_root_path = /data/starrocks/storage

2.部署服务器

集群名IP 地址实例
sr001192.168.249.131FE
sr002192.168.249.132BE
sr003192.168.249.133BE
sr004192.168.249.134CN

规划 StarRocks 集群 @ plan_cluster @ StarRocks Docs

通常,FE 服务不会消耗大量的 CPU 和内存资源。建议您为每个 FE 节点分配 8 个 CPU 内核和 16 GB RAM。

与 FE 服务不同,如果应用程序需要在大型数据集上处理高度并发或复杂的查询,BE 服务可能会使用大量 CPU 和内存资源。因此,建议为每个 BE 节点分配 16 个 CPU 内核和 64 GB RAM。

3.安装基础环境

在 4 台服务器上执行基础环境的安装和配置

1)安装JDK 11

  • 参考:CentOS7安装部署Java11
  • 安装目录:/opt/java/jdk-11.0.19

2)修改机器名

  • 修改 4 台服务器的机器名
#-- sr001
hostnamectl set-hostname sr001 --static
hostnamectl set-hostname sr001 --transient

#-- sr002
hostnamectl set-hostname sr002 --static
hostnamectl set-hostname sr002 --transient

#-- sr003
hostnamectl set-hostname sr003 --static
hostnamectl set-hostname sr003 --transient

#-- sr004
hostnamectl set-hostname sr004 --static
hostnamectl set-hostname sr004 --transient

3)安装GCC

yum -y install gcc
gcc --version

4)关闭交换分区(swap)

  • 查询交换分区
swapon --show
  • 关闭交换分区
# 备用:打开交换分区:swapon -a
swapoff -a
  • 编辑 /etc/fstab
vim /etc/fstab
  • 加入注释
# /dev/mapper/centos-swap swap                    swap    defaults        0 0

5)时钟同步

  • 安装 rdate 软件包
#安装rdate
yum -y install rdate

#同步时间
rdate -s time-b.nist.gov

#查看时间是否正确
date
  • 安装定时器软件包
yum -y install crontab
  • 创建 crontab 任务
crontab -e
  • 写入内容:20 秒同步一次
*/20 * * * * /usr/bin/rdate -s time-b.nist.gov > /dev/null 2>&1
  • 重启 crontab 服务
service crond reload
  • 其它时间同步服务器节点
节点位置节点域名
东南大学s1d.time.edu.cn
清华大学s1e.time.edu.cn
清华大学s2a.time.edu.cn
清华大学s2b.time.edu.cn
北京邮电大学s2c.time.edu.cn
上海交通大学ntp.sjtu.edu.cn
北京邮电大学s1a.time.edu.cn
北京大学s1c.time.edu.cn
香港中文大学clock.cuhk.edu.hk

6)关闭防火墙

  • 可禁用防火墙,或配置开放的端口,后者比较安全
#--关闭防火墙
systemctl stop firewalld.service
#--开机禁用防火墙
systemctl disable firewalld.service
#--防火墙状态
systemctl status firewalld.service

7)SELinux

  • 禁用 SELinux
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
sed -i 's/SELINUXTYPE/#SELINUXTYPE/' /etc/selinux/config
setenforce 0

8)LANG 变量

echo "export LANG=en_US.UTF8" >> /etc/profile
source /etc/profile

9)时区

cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock

10)ulimit 设置

  • 最大文件描述符
ulimit -n 655350
  • 最大用户进程
ulimit -u 40960

11)网络配置

  • 如果系统当前因后台进程无法处理的新连接而溢出,则允许系统重置新连接
echo 1 | sudo tee /proc/sys/net/ipv4/tcp_abort_on_overflow
  • 设置监听 Socket 队列的最大连接请求数为 1024
echo 1024 | sudo tee /proc/sys/net/core/somaxconn

12)高并发配置

echo 120000 > /proc/sys/kernel/threads-max
echo 262144 > /proc/sys/vm/max_map_count
echo 200000 > /proc/sys/kernel/pid_max

4.集群部署

1)安装FE

FE 服务器:192.168.249.131

  • 创建安装目录
mkdir /opt/starrocks
cd /opt/starrocks
  • 下载安装包,当前安装版本:2.5.13

Download StarRocks Free | StarRocks

wget https://releases.starrocks.io/starrocks/StarRocks-2.5.13.tar.gz
  • 解压安装包
tar -xzvf StarRocks-2.5.13.tar.gz
  • 移动 FE 文件夹到安装目录:/opt/starrocks/
mv /opt/starrocks/StarRocks-2.5.13/fe/ /opt/starrocks/
  • 创建 FE 元数据目录
mkdir -p /data/starrocks/metadata
chmod -R 777 /data/starrocks/metadata
  • 编辑配置文件
vim ./fe/conf/fe.conf
  • 修改内容:
# JAVA_OPTS 上面一行
JAVA_HOME=/opt/java/jdk-11.0.19

# 绑定 IP
priority_networks=192.168.249.131/24

# 元数据目录
meta_dir=/data/starrocks/metadata
  • 启动 FE
cd /opt/starrocks
# 启动
./fe/bin/start_fe.sh --daemon
# (备用)停止
# ./fe/bin/stop_fe.sh
  • 测试启动是否成功,方法一:
cat fe/log/fe.log | grep thrift
  • 输出以下内容,表示启动成功
thrift server started with port 9020.
  • 测试启动是否成功,方法二:
  1. 浏览器访问:http://192.168.249.131:8030/api/bootstrap

  2. 成功提示:

{"replayedJournalId":0,"queryPort":0,"rpcPort":0,"feStartTime":0,"status":"OK","msg":"Success"}

2)拷贝BE

FE 服务器:192.168.249.131

  • BE 服务器和 CN 服务器创建目录
mkdir -p /opt/starrocks
  • 拷贝 BE 安装包至 BE 服务器和 CN 服务器
scp -r /opt/starrocks/StarRocks-2.5.13/be root@192.168.249.132:/opt/starrocks/be
scp -r /opt/starrocks/StarRocks-2.5.13/be root@192.168.249.133:/opt/starrocks/be
scp -r /opt/starrocks/StarRocks-2.5.13/be root@192.168.249.134:/opt/starrocks/be

3)安装BE

BE 服务器:192.168.249.132、192.168.249.133

  • 创建安装目录
cd /opt/starrocks
  • 创建存储目录
mkdir -p /data/starrocks/storage
chmod -R 777 /data/starrocks/storage
  • 修改配置文件
vim ./be/conf/be.conf
  • 修改内容:
  1. 绑定服务器 IP;注意区分不同服务器 IP

priority_networks=192.168.249.132/24

priority_networks=192.168.249.133/24

# 绑定 IP
priority_networks=192.168.249.132/24

# 存储目录
storage_root_path=/data/starrocks/storage

# JAVA_HOME
JAVA_HOME=/opt/java/jdk-11.0.19
  • 限制一个进程可以拥有的VMA(虚拟内存区域)的数量
vim /etc/sysctl.conf
  • 写入内容
vm.max_map_count=2000000
fs.file-max=6553560
  • 加载并应用配置文件
sysctl -p
  • 启动 BE
cd /opt/starrocks
# 启动
./be/bin/start_be.sh --daemon
# (备用)停止
# ./be/bin/stop_be.sh
  • 测试启动是否成功,方法一:
cat be/log/be.INFO | grep heartbeat
  • 输出以下内容,表示启动成功
thrift server started with port 9020.
  • 测试启动是否成功,方法二:
  1. 浏览器访问:

​ http://192.168.249.132:8040/api/health

​ http://192.168.249.133:8040/api/health

  1. 成功提示:
{"status": "OK","msg": "To Be Added"}

4)安装CN【可选】

BE 服务器:192.168.249.134

CN 节点是 StarRocks 的可选组件,CN 节点自 v2.4 版本起支持

  • 创建安装目录
cd /opt/starrocks
  • 修改配置文件
vim ./be/conf/cn.conf
  • 修改内容:
  1. 绑定服务器 IP;注意区分不同服务器 IP
# 绑定 IP
priority_networks=192.168.249.134/24

# JAVA_HOME
JAVA_HOME=/opt/java/jdk-11.0.19
  • 限制一个进程可以拥有的VMA(虚拟内存区域)的数量
vim /etc/sysctl.conf
  • 写入内容
vm.max_map_count=2000000
fs.file-max=6553560
  • 加载并应用配置文件
sysctl -p
  • 启动 BE
cd /opt/starrocks
# 启动
./be/bin/start_cn.sh --daemon
#(备用)停止
# ./be/bin/stop_cn.sh
  • 测试启动是否成功
cat be/log/cn.INFO | grep heartbeat
  • 输出以下内容,表示启动成功
heartbeat has started listening port on 9050.

5)安装MySQL客户端

可忽略,使用 Navicat 替代

FE 服务器:192.168.249.131

  • 创建安装目录
mkdir /opt/mysql
cd /opt/mysql
  • 下载安装软件包
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-common-8.0.25-1.el7.x86_64.rpm 
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm 
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-libs-8.0.25-1.el7.x86_64.rpm
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-client-8.0.25-1.el7.x86_64.rpm
  • 安装 RPM 软件包
rpm -Uvh *.rpm --nodeps --force

6)集群搭建

  • MySQL 客户端连接(无密码)
mysql -h 192.168.249.131 -P 9030 -uroot -p
  • 新增两个 BE 和 一个 CN

扩容缩容 StarRocks

All commands @ StarRocks Docs

# 备用(删除BE节点):ALTER SYSTEM DROPP BACKEND "192.168.249.132:9050";
ALTER SYSTEM ADD BACKEND "192.168.249.132:9050","192.168.249.133:9050";
# CN 节点(可选)
# 备用(删除CN节点):ALTER SYSTEM DROP COMPUTE NODE "192.168.249.134:9050";
ALTER SYSTEM ADD COMPUTE NODE "192.168.249.134:9050";
  • 修改密码
SET PASSWORD FOR 'root' = PASSWORD('srdb123');
  • 设置数据库时区

设置时区 @ timezone @ StarRocks Docs

# 查询当前时间
select NOW();
# 查询时区
SHOW VARIABLES LIKE '%time_zone%';
# 设置时区
SET global time_zone = 'Asia/Shanghai';
  • 节点状态
# 查询 FE 节点状态
SHOW PROC '/frontends'\G
# 查询 BE 节点状态
SHOW PROC '/backends'\G
# 查询 CN
SHOW PROC '/compute_nodes'\G

7)测试

  • 创建数据库(MySQL 客户端执行)
create database demo;
  • 创建数据表
CREATE TABLE IF NOT EXISTS example_tb
(
    `user_id` LARGEINT NOT NULL COMMENT "用户id",
    `date` DATE NOT NULL COMMENT "数据灌入日期时间",
    `city` VARCHAR(20) COMMENT "用户所在城市",
    `age` SMALLINT COMMENT "用户年龄",
    `sex` TINYINT COMMENT "用户性别",
    `last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用户最后一次访问时间",
    `cost` BIGINT SUM DEFAULT "0" COMMENT "用户总消费",
    `max_dwell_time` INT MAX DEFAULT "0" COMMENT "用户最大停留时间",
    `min_dwell_time` INT MIN DEFAULT "99999" COMMENT "用户最小停留时间"
)
AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
);
  • 输出表结构
desc example_tb;
  • 插入数据
insert into example_tb values
(10000,"2017-10-01","北京",20,0,"2017-10-01 06:00:00",20,10,10),
(10000,"2017-10-01","北京",20,0,"2017-10-01 07:00:00",15,2,2),
(10001,"2017-10-01","北京",30,1,"2017-10-01 17:05:45",2,22,22),
(10002,"2017-10-02","上海",20,1,"2017-10-02 12:59:12",200,5,5),
(10003,"2017-10-02","广州",32,0,"2017-10-02 11:20:00",30,11,11),
(10004,"2017-10-01","深圳",35,0,"2017-10-01 10:00:15",100,3,3),
(10004,"2017-10-03","深圳",35,0,"2017-10-03 10:20:22",11,6,6);
  • 查询数据
SELECT * FROM example_tb;

8)WebUI

  • 浏览器访问:http://192.168.249.131:8030
  • 账号:root
  • 密码:输入客户端修改的密码(srdb123);默认无密码

5.服务自启动

1)配置FE自启动

  • 创建 starrocks-fe.service ,写入内容(根据实际情况修改 ExecStartExecStop
cat > /etc/systemd/system/starrocks-fe.service <<EOF
[Unit]
Description=StarRocks FE
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=root
Group=root
LimitCORE=infinity
LimitNOFILE=200000
Restart=on-failure
RestartSec=30
StartLimitInterval=120
StartLimitBurst=3
KillMode=none
ExecStart=/opt/starrocks/fe/bin/start_fe.sh --daemon 
ExecStop=/opt/starrocks/fe/bin/stop_fe.sh

[Install]
WantedBy=multi-user.target
EOF
  • 查看文件
cat /etc/systemd/system/starrocks-fe.service

2)配置BE自启动

  • 创建 starrocks-be.service ,写入内容(根据实际情况修改 ExecStartExecStop
cat > /etc/systemd/system/starrocks-be.service <<EOF
[Unit]
Description=StarRocks BE
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=root
Group=root
LimitCORE=infinity
LimitNOFILE=200000
Restart=on-failure
RestartSec=30
StartLimitInterval=120
StartLimitBurst=3
KillMode=none
ExecStart=/opt/starrocks/be/bin/start_be.sh --daemon
ExecStop=/opt/starrocks/be/bin/stop_be.sh

[Install]
WantedBy=multi-user.target
EOF
  • 查看文件
cat /etc/systemd/system/starrocks-be.service

3)配置CN自启动

  • 创建 starrocks-cn.service ,写入内容(根据实际情况修改 ExecStartExecStop
cat > /etc/systemd/system/starrocks-cn.service <<EOF
[Unit]
Description=StarRocks CN
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=root
Group=root
LimitCORE=infinity
LimitNOFILE=200000
Restart=on-failure
RestartSec=30
StartLimitInterval=120
StartLimitBurst=3
KillMode=none
ExecStart=/opt/starrocks/be/bin/start_cn.sh --daemon
ExecStop=/opt/starrocks/be/bin/stop_cn.sh

[Install]
WantedBy=multi-user.target
EOF
  • 查看文件
cat /etc/systemd/system/starrocks-cn.service

4)启动服务

  • 重新加载配置
systemctl daemon-reload
  • 启动服务
systemctl start starrocks-fe
systemctl start starrocks-be
systemctl start starrocks-cn
  • 设置开机自启动
systemctl enable starrocks-fe
systemctl enable starrocks-be
systemctl enable starrocks-cn
  • 查询服务状态
systemctl status starrocks-fe
systemctl status starrocks-be
systemctl status starrocks-cn

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

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

相关文章

多模态论文阅读之BLIP

BLIP泛读 TitleMotivationContributionModel Title BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation Motivation 模型角度&#xff1a;clip albef等要么采用encoder-base model 要么采用encoder-decoder model.…

基于javaweb+mysql的jsp+servlet学生成绩管理系统(管理员、教师、学生)

博主24h在线&#xff0c;想要源码文档部署视频直接私聊&#xff0c;9.9元拿走&#xff01; 基于javawebmysql的jspservlet学生成绩管理系统(管理员、教师、学生)(javajspservletjavabeanmysqltomcat) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myecl…

CS免杀姿势

一&#xff1a;环境 1.公网vps一台 2.Cobalt Strike 4.7 3.免杀脚本 二&#xff1a;生成payload 生成一个payload c格式的x64位payload 三&#xff1a;免杀 下载免杀脚本 .c打开是这样的 把双引号里面的内容复制出来&#xff0c;放到脚本目录下的1.txt 运行生成器.…

BI数据可视化:不要重复做报表,只需更新数据

BI数据可视化是一种将大量数据转化为视觉形式的过程&#xff0c;使得用户可以更容易地理解和分析数据。然而&#xff0c;传统的报表制作过程往往需要手动操作&#xff0c;不仅耗时还容易出错。为了解决这个问题&#xff0c;BI数据可视化工具通常会提供一些自动化的数据更新功能…

3D 线激光相机的激光条纹中心提取方法

论文地址:Excellent-Paper-For-Daily-Reading/application/centerline at main 类别:应用——中心线 时间:2023/11/06 摘要 线激光条纹中心提取是实现线激光相机三维扫描的关键,根据激光三角测量法研制了线激光相机,基于传统 Steger 法对其进行优化并提出一种适用于提…

行情分析——加密货币市场大盘走势(11.7)

大饼昨日下跌过后开始有回调的迹象&#xff0c;现在还是在做指标修复&#xff0c;大饼的策略保持逢低做多。稳健的依然是不碰&#xff0c;目前涨不上去&#xff0c;跌不下来。 以太昨天给的策略&#xff0c;依然有效&#xff0c;现在以太坊开始回调。 目前来看&#xff0c;回踩…

渗透实战靶机3wp

0x00 简介 目标IP&#xff1a;xxxx.95 测试IP&#xff1a;xxxx.96 测试环境&#xff1a;win10、kali等 测试时间&#xff1a;2021.7.23-2021.7.26 测试人员&#xff1a;ruanruan 0x01 信息收集 1、端口扫描 21&#xff0c;ftp&#xff0c;ProFTPD&#xff0c;1.3.3c22&a…

LSTM缓解梯度消失问题

关于LSTM https://easyai.tech/ai-definition/lstm/ https://towardsdatascience.com/illustrated-guide-to-lstms-and-gru-s-a-step-by-step-explanation-44e9eb85bf21 为何LSTM缓解梯度消失问题 为什么LSTM会减缓梯度消失&#xff1f; - 知乎 LSTM引入长短期记忆&#xf…

TikTok小店运营的三大技巧!跨境电商必看

众所周知&#xff0c;国内的抖音早已风生水起&#xff0c;抖音给了很多普通人一夜暴富的机会。而Tiktok也跟随着抖音开启了商业模式&#xff0c;目前流量与机会都是不可小觑的。在店铺申请通过&#xff0c;成功入驻之后&#xff0c;又该如何运营&#xff1f;这篇文章为大家解答…

Webpack 中 loader 的作用是什么?常用 loader 有哪些?

说说webpack中常见的Loader&#xff1f;解决了什么问题&#xff1f;- 题目详情 - 前端面试题宝典 1、loader 是什么 loader是 webpack 最重要的部分之一。 通过使用不同的 loader&#xff0c;我们能够调用外部的脚本或者工具&#xff0c;实现对不同格式文件的处理。 loader…

Uniapp实现多语言切换

前言 之前做项目过程中&#xff0c;也做过一次多语言切换&#xff0c;大致思想都是一样的&#xff0c;想了解的可以看下之前的文章C#WinForm实现多语言切换 使用i18n插件 安装插件 npm install vue-i18n --saveMain.js配置 // 引入 多语言包 import VueI18n from vue-i18n…

王干娘和西门庆-UMLChina建模知识竞赛第4赛季第18轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先全部答对前3题&#xff0c;即可获得本轮优胜。 所有题目的回答必须放在同一条消息中&…

二十、泛型(3)

本章概要 构建复杂模型泛型擦除 C 的方式迁移兼容性擦除的问题边界处的动作 构建复杂模型 泛型的一个重要好处是能够简单安全地创建复杂模型。例如&#xff0c;我们可以轻松地创建一个元组列表&#xff1a; TupleList.java import java.util.ArrayList;public class TupleL…

简单工厂模式、工厂方法模式、抽象工厂模式

简介 将实例化代码提取出来&#xff0c;放到一个类中统一管理和维护&#xff0c;达到和主项目依赖关系的解耦&#xff0c;从而提高项目的扩展性和维护性。 工厂模式将复杂的对象创建工作隐藏起来&#xff0c;而仅仅暴露出一个接口供客户使用&#xff0c;具体的创建工作由工厂管…

51基于matlab模拟退火算法矩形排样

基于matlab模拟退火算法矩形排样&#xff0c;基于最低水平线算法完成矩形板材下料优化&#xff0c;输出最优剩料率和最后的水平线&#xff0c;可替换自己的数据进行优化&#xff0c;程序已调通&#xff0c;可直接运行。 51matlab模拟退火算法矩形排样 (xiaohongshu.com)

提升设备可靠性:人工智能(AI)在设备维护中的应用

当今社会&#xff0c;人工智能&#xff08;AI&#xff09;已从遥不可及的概念转变为现实&#xff0c;并被广泛地讨论和应用。AI技术已经渗透到各个领域&#xff0c;包括工业领域的设备维护。在现代工业领域&#xff0c;设备可靠性是企业持续运营和保持竞争力的关键因素之一。随…

正点原子嵌入式linux驱动开发——Linux Regmap驱动

在前面学习I2C和SPI驱动的时候&#xff0c;针对I2C和SPI设备寄存器的操作都是通过相关的API函数进行操作的。这样Linux内核中就会充斥着大量的重复、冗余代码&#xff0c;但是这些本质上都是对寄存器的操作&#xff0c;所以为了方便内核开发人员统一访问I2C/SPI设备的时候&…

【算法 | 模拟No.3】leetcode 38. 外观数列

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【Leetcode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

技术分享 | app自动化测试(Android)--App 控件定位

客户端的页面通过 XML 来实现 UI 的布局&#xff0c;页面的 UI 布局作为一个树形结构&#xff0c;而树叶被定义为节点。这里的节点也就对应了要定位的元素&#xff0c;节点的上级节点&#xff0c;定义了元素的布局结构。在 XML 布局中可以使用 XPath 进行节点的定位。 App的布…

openGauss学习笔记-117 openGauss 数据库管理-设置数据库审计-查看审计结果

文章目录 openGauss学习笔记-117 openGauss 数据库管理-设置数据库审计-查看审计结果117.1 前提条件117.2 背景信息117.3 操作步骤 openGauss学习笔记-117 openGauss 数据库管理-设置数据库审计-查看审计结果 117.1 前提条件 审计功能总开关已开启。需要审计的审计项开关已开…