【腾讯云 TDSQL-C Serverless 产品体验】基于腾讯云轻量服务器以及 TDSQL-C 搭建 LNMP WordPress 博客系统

在这里插入图片描述

文章目录

    • 一、前言
    • 二、数据库发展与云原生数据库
      • 2.1 数据库发展简介
      • 2.2 云原生数据库简介
        • 2.2.1 云数据库与云原生数据库区别
    • 三、腾讯云 TDSQL-C 数据库
      • 3.1 什么是腾讯云 TDSQL-C 数据库
      • 3.2 为什么推出 TDSQL-C 数据库?传统 MySQL 架构存在较多痛点
        • 3.2.1 传统 MySQL 的主从架构存在的痛点
        • 3.2.2 TDSQL-C 计算与存储分离架构的优势
    • 四、腾讯云 TDSQL-C 数据库项目实战案例
      • 4.1 项目介绍以及架构
      • 4.2 实战搭建详细步骤
        • 4.2.1 使用腾讯云轻量服务器搭建 LNMP 应用运行环境
          • (1) 准备服务器(如果个人服务器可跳过)
          • (2) 安装 Nginx
          • (3) 安装 PHP 并配置 Nginx 启用其支持
        • 4.2.2 腾讯云 TDSQL-C 配置及搭建
          • (1) 创建私有云 VPC
          • (2) 创建云原生数据库 TDSQL-C
          • (3) 为 TDSQL-C 配置网络安全组
          • (4) 使用腾讯云数据库管理工具 DMC 连接数据库
          • (5) 创建 LNMP 数据库并验证连接
        • 4.2.3 安装并配置 WordPress
          • (1) 下载 WordPress 软件包
          • (2) 移动并配置 WordPress 包
          • (3) 编辑修改 WordPress 配置文件
          • (4) 安装 WordPress
          • (5) 登录并配置管理后台
          • (6) 访问博客主页验证效果
    • 五、文末总结

一、前言

在今天快速发展的数字化时代,数据库技术日新月异。本文将带领您追溯数据库的历程,探讨云原生数据库的概念,并重点关注腾讯云的创新力作——TDSQL-C 数据库

我们将揭示传统 MySQL 架构的问题,探究 TDSQL-C 数据库的计算与存储分离架构所带来的优势。

通过实例,您将逐步了解如何构建稳定的 LNMP 应用环境,包括服务器设置、Nginx 和 PHP 的安装,以及 TDSQL-C 数据库的配置。最后,我们将以 WordPress 案例验证环境搭建效果。本文将帮助您深入了解数据库发展和云计算融合的前沿探索。

二、数据库发展与云原生数据库

2.1 数据库发展简介

从下图中可以看出来,在早起也就是上个世纪的 80 年代左右,数据库的产业主要是以商业数据库为主,基本大家都有听说过的或者使用过的数据库:Oracle、DB2、SQL Server等;在 90 年代后,主要是开源数据库为主了,比如:MySQL,同时分析型数据库也开始快速增长;从 2000 年到 2010 年,以互联网公司 Google 的三大件: Google File System、Google Bigtable 和 Google MapReduce 为代表,他们主要解决了分布式数据库的问题,大家应该知道在传统的数据库中,对于数据具有强一致性,这样数据库系统很难进行水平扩展,以及对海量数据进行分析能力降低。而 Google 推出的3个套件,对数据库的强一致性进行了弱化,并且进行分布式集群的时候,对数据库的水平做了很好的扩展。在这之后,很快 NoSQL 数据库(非结构化数据库)开始兴起,比如:MongoDB、Redis等。而到了如今,云原生数据库开始兴起,比较出名的是亚马逊云科技的 Amazon Aurora 以及今天的重点介绍对象:腾讯云的 TDSQL-C。

在这里插入图片描述

(图片来源于:TDSQL-C 培训课程)

而下面的数据图谱数据主要来源于:中国信息通信研究院2022年的数据,从图中可以看出有三条线,一条是国外的数据库发展时间线,另一条是国内数据库的发展时间线,中间的一条线为国家的一些政策。主要可以看出,数据库经历了3个重大的变革时期:

1. 2000~2009年,国外数据库产业发展成熟,国内数据库初具雏形。
2. 2009~2018年,国外数据库开始与云融合,国内数据库逐渐繁荣。
3. 2018~2022年,全球数据库格局风云变革,国内自主数据库百家争鸣。

在这里插入图片描述

(图片数据来源于:中国信息通信研究院)

2.2 云原生数据库简介

看了不少视频和文档,个人总结起来云原生数据库是指专为云环境设计和构建的数据库系统,可以充分发挥云计算的优势,并适应现代应用开发和部署的需求。云原生数据库强调高可用性、弹性扩展、自动化管理以及与容器化、微服务架构等技术的紧密集成。

2.2.1 云数据库与云原生数据库区别

其实到这里可能有同学会问,我之前在某某某云厂商,直接租了一个云数据库,这种数据库难道不是云原生数据库吗,如果不是,和云原生数据库有什么区别么?

下面我用一个脑图来做对比,结合上面我总结的云原生数据库的概念,你应该就清晰明白了。

在这里插入图片描述

(点击图片放大,转载注明出处)

首先要明确云数据库云原生数据库是两个完全不同的概念,一定不要混淆

云数据库是指在云计算环境中托管和管理的数据库服务。它可以是传统的关系型数据库(如MySQL、PostgreSQL、SQL Server)或NoSQL数据库(如MongoDB、Cassandra、Redis)等。这些数据库被部署在云提供商的基础设施上,用户可以通过网络访问和管理这些数据库。云数据库具有自动扩展、备份、恢复、高可用性等特性,使用户可以专注于应用程序开发,而无需担心底层基础设施的管理,这里可以理解为云数据库是一种云计算中的PaaS服务

在这里插入图片描述

(腾讯云官网数据库产品页截图)

云原生数据库是指专门设计和构建为云环境的数据库系统。它们充分利用了云计算的优势,如弹性扩展、自动管理、容器化等。云原生数据库可以轻松地适应动态变化的工作负载和资源需求。这些数据库更加灵活、可扩展,以提供更高的敏捷性和可靠性。

三、腾讯云 TDSQL-C 数据库

3.1 什么是腾讯云 TDSQL-C 数据库

TDSQL-C 现阶段分为两个版本:MySQL 版(TDSQL-C for MySQL)和 PostgreSQL 版(TDSQL-C for PostgreSQL) 。TDSQL-C 是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。TDSQL-C MySQL 版100%兼容 MySQL 5.7、8.0;而 TDSQL-C PostgreSQL 版100%兼容 PostgreSQL。实现超百万级 QPS 的高吞吐,最高 PB 级智能存储,保障数据安全可靠。

3.2 为什么推出 TDSQL-C 数据库?传统 MySQL 架构存在较多痛点

TDSQL-C数据库的推出源于对于传统MySQL架构存在的多个问题的回应。随着互联网的发展,业务数据急剧增长,用户对数据库计算与存储能力的需求不断增加。然而,在业务需求持续增长的情况下,传统MySQL架构的优化和升级变得困难重重。因此,为了解决这些挑战,TDSQL-C数据库应运而生,利用计算与存储分离、新硬件潜力、物理复制特性以及分布式系统优势等,提供了高性能、低成本、大存储能力、低主从复制延迟、秒级扩缩容、极速回档和无服务器化等一系列独特优势,弥补了传统MySQL架构的痛点。

在这里插入图片描述

(腾讯云 TDSQL-C 数据库官方文档)

3.2.1 传统 MySQL 的主从架构存在的痛点

从上图中可以看出,左侧为传统 MySQL 的主从架构,使用 MySQL 的同学应该不会莫生此架构。根据自身我们自身经验并结合腾讯云 TDSQL-C 数据库官方文档,我们可以总结出传统 MySQL 的主从架构存在的一些痛点:

  • 数据同步会有延迟,可能存在高延迟的情况
  • 写入性能有限制,主从部署 IO 较大,单条的 SQL 响应时间会被拉长。
  • 性能拓展效率会降低,单个 MySQL 升级规格的时候,或者增加从机时,数据迁移时间会拉长,耗时严重(1T数据可能耗时数小时)
  • 存储空间受限,这种传统 MySQL 的主从架构在进行备份数据库的时候,耗时和回档时间过长。
  • 如果设计高可用架构的时候,必须要多节点,硬件资源配置要求较高,即成本会增加。

3.2.2 TDSQL-C 计算与存储分离架构的优势

上述右半部分图示呈现了 TDSQL-C 的整体架构,清晰划分为上层计算层下层存储层

计算层由一个读写节点负责处理读写请求,以及多个只读节点,即Master节点和Slave节点,负责满足读取需求。在处理读写请求,特别是写请求时,Master节点(即读写节点)会对数据进行修改,随后将 InnoDB Redo Log 中的修改传送至整个存储层,并将 Redo Log 分发至自身的 RO 节点。

存储层则承担数据管理职责,一旦产生的 Redo 日志传输至存储层,它负责回放这些日志。

其写入的流程可以总结为:
在这里插入图片描述

基于共享存储架构,整体读写 IO 减少60% 以上,写入性能明显提高,系统实现了秒级故障切换以及秒级增加 Slave 从机,单个计算节点可以实现高可用,节省 50% 的计算节点成本,涵盖秒级快照备份和回档。由于存储层和计算层均具备弹性,因此可在一定程度上实现Serverless 架构。

四、腾讯云 TDSQL-C 数据库项目实战案例

4.1 项目介绍以及架构

LNMP 是一种用于搭建和配置服务器环境的技术栈,它包括 Linux、Nginx、MySQL(或MariaDB)、PHP 这四个关键组件的首字母缩写。每个组件都有其特定的功能,将它们组合在一起可以创建一个适用于托管网站、应用程序和服务的完整服务器环境。

项目名称:基于腾讯云轻量服务器以及 TDSQL-C 搭建 LNMP WordPress 博客系统

官网地址:https://wordpress.org

项目简介:WordPress 不仅是一款个人博客系统,还可充当内容管理系统(CMS)使用。它采用 PHP 语言和 MySQL 数据库开发而成。在此案例中,我们选择了腾讯云 TDSQL-C 作为数据库,而非直接使用本地安装的 MySQL。这意味着用户可以在配备 PHP 和腾讯云 TDSQL-C 数据库支持的服务器上,轻松搭建自己的博客。

开发语言:PHP

应用运行环境:CentOS、Nginx、PHP、腾讯云 TDSQL-C 数据库

涉及云服务:腾讯云轻量服务器、弹性 IP、腾讯云 TDSQL-C 数据库、私有云 VPC

WordPress 搭建好后,可通过 EIP 进行访问,整体的应用架构拓扑如下图所示:

在这里插入图片描述

(基于腾讯云 TDSQL-C 的 LAMP 案例拓扑图,未经允许禁止转载)

4.2 实战搭建详细步骤

4.2.1 使用腾讯云轻量服务器搭建 LNMP 应用运行环境

(1) 准备服务器(如果个人服务器可跳过)

本案例使用的是腾讯云轻量服务器(TencentCloud Lighthouse),轻量服务器相较普通的服务器,你可以简单的理解其适合中小企业或者个人开发者,具有性价比高等特点。此处不是本文重点,不做过多赘述。

购买腾讯云轻量服务器

我这里直接搞了一个首单3年的轻量服务器,刚好有3折活动,感觉个人使用还是比较划算的。

应该定期有促销活动,具体什么时间什么具体价格关注他们官方网站:https://cloud.tencent.com/act

在这里插入图片描述

确认订单信息和所需价格,之后勾选购买协议,点击下一步即可。

在这里插入图片描述

点击支付后,会有返回按钮,点击返回按钮后如下图所示,可以点击查看实例,如果你不知道如何重置密码,可以按下图所示,先点击重置密码,查看里面的帮助文档,如何进行重置密码,如果你已经知道如何重置密码,那么可以直接点击查看实例。按照我的步骤设置也可以。

在这里插入图片描述

重置服务器密码

在服务器实例选项卡页面,点击更多按钮,会出现重置密码选项,点击重置密码即可。

可以在更多页面看到,除了重置密码外,开关机,重装系统,制作镜像等选项都在其中。

在这里插入图片描述

在新弹出的窗口内,直接输入新密码点击重置即可,注意重置页面里,用户名默认选项是root,如果你的实例机器里面已经有多个账号,可以点击选项,此处不做过多介绍。

修改完密码后,使用 SSH 工具(XShell、MobaXterm)进行连接即可,具体方式本文不做介绍可以自行查找。

(2) 安装 Nginx

1. 配置yum

没有特别需求的情况下,可使用 yum 进行安装,如果有各种历史版本的要求,可以根据自身情况直接配置yum源,官网源配置可参考官网地址:https://nginx.org/en/linux_packages.html。此处我们略过,不进行配置,直接自己使用yum默认腾讯云的配置进行安装 Nginx。

2. 使用yum进行安装 Nginx

使用 yum 直接安装还是比较方便的,直接执行下面的命令即可。

yum -y install nginx

等待一会安装信息出现 Complete 即表示 Nginx安装成功:

在这里插入图片描述

3. 启动 Nginx 并进行测试

使用以下命令进行启动并设置开机自启动:

[root@VM-8-7-centos ~]# systemctl start nginx
[root@VM-8-7-centos ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

可使用浏览器访问·http://弹性IP地址·,若 Nginx 安装成功,则会显示类似如下页面(不同版本显示的样式可能不同):

在这里插入图片描述

(CentOS7 安装 Nginx 后正常欢迎页面)
(3) 安装 PHP 并配置 Nginx 启用其支持

1. 添加安装源

因为 LNMP 中可能会出现 PHP 不兼容的情况,所以这里采用 yum 指定安装版本的方式进行安装

[root@VM-8-7-centos ~]# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@VM-8-7-centos ~]# yum repolist

查看源中包含PHP各版本相关的软件包:

[root@VM-8-7-centos ~]# yum --showduplicate --enablerepo=remi --enablerepo=remi-php74 list php

在这里插入图片描述

2. 安装 PHP 以及 PHP 扩展包

执行以下命令安装PHP7.4和一些所需的 PHP 扩展:

yum -y install --enablerepo=remi --enablerepo=remi-php74 php php-tidy php-common php-devel php-pdo php-mysql* php-gd php-ldap php-mbstring php-mcrypt php-fpm

完成安装提示:

在这里插入图片描述

3. 启动php-fpm服务

执行下面的系列命令,进行启动php-fpm服务:

[root@VM-8-7-centos ~]# php -v
PHP 7.4.33 (cli) (built: Aug  1 2023 09:00:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
[root@VM-8-7-centos ~]#
[root@VM-8-7-centos ~]# systemctl start php-fpm
[root@VM-8-7-centos ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@VM-8-7-centos ~]#
[root@VM-8-7-centos ~]#
[root@VM-8-7-centos ~]# netstat -nplt | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      29097/php-fpm: mast

执行步骤图如下:

在这里插入图片描述

4. 启用PHP支持

修改nginx配置文件,配置启用PHP支持。如果担心修改配置文件出错,可备份一下默认的配置文件。

[root@VM-8-7-centos nginx]# vim nginx.conf
[root@VM-8-7-centos nginx]#
    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm index.php;
        }

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }

        # add fastcgi_params of php support.
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    }


[root@VM-8-7-centos nginx]#
[root@VM-8-7-centos nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@VM-8-7-centos nginx]#
[root@VM-8-7-centos nginx]# nginx -s reload
[root@VM-8-7-centos nginx]#

5. 测试 LNMP 的 PHP 支持

编辑PHP测试页面

[root@VM-8-7-centos nginx]# echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/index.php

编辑了页面后,重载服务后生效:

[root@VM-8-7-centos nginx]# systemctl reload nginx

使用浏览器访问http://弹性IP地址/index.php,显示如下图页面,说明 PHP 安装成功:

在这里插入图片描述

到此处,关于 LNMP 的 Nginx 以及 PHP 已经配置完成,接下来开始配置 腾讯云 TDSQL-C 数据库。

4.2.2 腾讯云 TDSQL-C 配置及搭建

(1) 创建私有云 VPC

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这里提一下我这里设置的/16是什么意思,CIDR 表示法中的 “/16” 意味着子网掩码中有 16 位为网络地址,剩余的 32 - 16 = 16 位为主机地址。这意味着在该子网中,有 2^16 个不同的 IP 地址可以用于主机。
计算出来是 2^16 = 65536。因此,CIDR 为 “/16” 的子网中有 65536 个可用的 IP 地址。这些 IP 地址将从该子网的第一个地址开始(通常是网络地址)到最后一个地址结束(通常是广播地址),剩余的地址可以用于主机。需要注意的是,某些 IP 地址可能被保留用于特定用途,因此实际可用的主机 IP 地址数量可能会稍微少于这个数目。

关于 CIDR 设置规则,以及 ABC 网络等,此处不是重点,如果想学习的同学可以关注本博客,或者后续自行查找网络资源进行学习。

(2) 创建云原生数据库 TDSQL-C

如果是直接在 TDSQL-C 中购买产品可以看到如下的选项配置价格等。

在这里插入图片描述

我们这里是学习使用,在这里我们购买了一个免费的 TDSQL 集群版,来做演示

在这里插入图片描述

(3) 为 TDSQL-C 配置网络安全组

配置网络安全组,根据自身需要可以开启外网地址。注意如果是真实环境不建议配置外网地址。

在这里插入图片描述

配置安全组,注意下图,在配置安全组的时候,会出现sg安全组id,这个代表之前你已经创建了安全组规则,具体创建安全组规则的位置是:点击进入私有网络,之后点击安全,之后点击创建安全组。

注意我这里为了方便演示,直接设置的安全组为放行所有端口,如果是真实案例,请根据自身情况设置所需要开放的端口。

在这里插入图片描述

(4) 使用腾讯云数据库管理工具 DMC 连接数据库

数据库管理工具 DMC,是腾讯云自带的链接工具,当然你也可以使用自己习惯的数据库链接客户端,比如mysql workbench,或者 navicat 都可以。

在这里插入图片描述

(5) 创建 LNMP 数据库并验证连接

在数据库管理中,新建一个新的数据库wordpress,如下图所示:

在这里插入图片描述

在 腾讯云轻量服务器内连接到我们创建的 TDSQL-C 数据库后,可以看到刚刚创建的wordpress数据库:

在这里插入图片描述

4.2.3 安装并配置 WordPress

(1) 下载 WordPress 软件包

打开 WordPress 的中文网站进行下载,下载地址:https://cn.wordpress.org/download/

在这里插入图片描述

将下载的 WordPress 软件包从本地上传至 腾讯云轻量服务器 中,这里可以使用WinSCP或者FileZilla来上传都可以,根据自身习惯来选择。

另外一种方式是在服务器内直接使用wget命令来下载,这种情况是服务器可以访问外网的情况下,如果不能访问还是需要按照上述方法来走。

wget https://cn.wordpress.org/latest-zh_CN.tar.gz -O wordpress-6.3-zh_CN.tar.gz

在这里插入图片描述

(2) 移动并配置 WordPress 包

依次执行下面的命令进行安装 WordPress 包,这几个命令的顺序作用是:

  1. 先是解压开所下载的 WordPress 包,
  2. 之后移动其到 nginx 页面目录下
  3. 授权移动后的 WordPress 包的所属用户组和权限为apache用户(如果不设置,在启动后更换主题和插件的时候会出现连接信息错误)
[root@VM-8-7-centos data]# tar -xzvf wordpress-6.3-zh_CN.tar.gz
[root@VM-8-7-centos data]#
[root@VM-8-7-centos data]# mv wordpress /usr/share/nginx/html/
[root@VM-8-7-centos data]# chown -R apache:apache /usr/share/nginx/html/wordpress/
[root@VM-8-7-centos data]# ll /usr/share/nginx/html/wordpress/

在这里插入图片描述

(3) 编辑修改 WordPress 配置文件

复制模板文件

进入 WordPress 项目目录,将wp-config-sample.php文件复制名为wp-config.php的文件用作配置文件,并保留示例配置文件以作备份。

cd /usr/share/nginx/html/wordpress
cp wp-config-sample.php wp-config.php

编辑修改 WordPress 的配置文件

使用vim命令进行编辑配置文件,把DB_NAME(数据库名称)、DB_USER(数据库用户名)、DB_PASSWORD(数据库密码)以及DB_HOST(数据库主机地址)更改为之前所配置的设置。

vim wp-config.php

直接修改下图所示的3个 TDSQL-C 的信息:

在这里插入图片描述

(4) 安装 WordPress

在浏览器地址栏输入http://弹性IP地址/wordpress 即可跳转至安装页面,填写完对应的表单信息后,即可点击安装WordPress按钮进行安装。

在这里插入图片描述

安装成功后的页面如下图所示:

在这里插入图片描述

(5) 登录并配置管理后台

完成安装界面输入密码选择登录,或者在浏览器输入http://弹性IP地址/wordpress/wp-admin进入后台登录界面,并输入账号和密码即可登录管理后台。登陆成功进入到后台后,可以看到仪表盘页面如下图所示:

在这里插入图片描述

(6) 访问博客主页验证效果

在仪表盘的左上角点击查看站点或者在浏览器输入http://弹性IP地址/wordpress 即可查看主页。

在这里插入图片描述

五、文末总结

本文通过介绍数据库发展与云原生数据库,以及腾讯云 TDSQL-C 数据库,深入探讨了传统 MySQL 架构的问题和痛点,以及 TDSQL-C 数据库的计算与存储分离架构的优势。

通过一个实际的项目案例,详细展示了使用腾讯云轻量服务器搭建 LNMP 应用运行环境的步骤,包括服务器准备、Nginx 和 PHP 的安装配置,以及 TDSQL-C 数据库的配置与搭建,通过本案例可以完美证实腾讯云的 TDSQL-C 可以完美兼容 MySQL 数据库,最后成功使用 TDSQL-C 代替 MySQL 搭建成功 LNMP 的 WorPress。

本文提供了完整的安装并配置 WordPress 的步骤,并强调了对博客主页的访问以验证效果。希望阅读完本文的小伙伴,可以深入了解数据库架构的发展、云原生数据库的概念,以及在实际项目中如何利用腾讯云的服务构建稳定高效的应用环境。

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

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

相关文章

35_windows环境debug Nginx 源码-CLion配置CMake和启动

文章目录 生成 CMakeLists.txt 组态档35_windows环境debug Nginx 源码-CLion配置CMake和启动生成 CMakeLists.txt 组态档 修改auto目录configure文件,在 . auto/make 上边增加 . auto/cmake, 大概在 106 行。在 auto 目录下创建cmake 文件其内容如下: #!/usr/bin/env bash NG…

从入门到精通Python隧道代理的使用与优化

哈喽&#xff0c;Python爬虫小伙伴们&#xff01;今天我们来聊聊如何从入门到精通地使用和优化Python隧道代理&#xff0c;让我们的爬虫程序更加稳定、高效&#xff01;今天我们将对使用和优化进行一个简单的梳理&#xff0c;并且会提供相应的代码示例。 1. 什么是隧道代理&…

AI 绘画Stable Diffusion 研究(十三)SD数字人制作工具SadTlaker使用教程

免责声明: 本案例所用安装包免费提供&#xff0c;无任何盈利目的。 大家好&#xff0c;我是风雨无阻。 想必大家经常看到&#xff0c;无论是在产品营销还是品牌推广时&#xff0c;很多人经常以数字人的方式来为自己创造财富。而市面上的数字人收费都比较昂贵&#xff0c;少则几…

JS加密的域名锁定功能,JShaman支持泛域名

JShaman的域名锁定功能&#xff0c;支持泛域名 JShaman的JS代码混淆加密中&#xff0c;有一项“域名锁定”功能。使用此功能后&#xff0c;代码运行时会检测浏览器地址中的域名信息&#xff0c;如是非指定域名&#xff0c;则不运行&#xff0c;以此防止自己网站的JS代码被复制…

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例)

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

嵌入式基础知识-中断处理过程

本篇来介绍中断&#xff0c;这是计算机系统以及嵌入式系统的重要概念。 1 中断基本概念 中断是CPU对系统发生的某个事件作出的一种反应。 中断的一些基本概念&#xff1a; 中断源&#xff1a;引起中断的事件称为中断源中断请求&#xff1a;中断源向CPU提出处理的请求称为中断…

最新AI系统ChatGPT网站程序源码/搭建教程/支持GPT4.0/Dall-E2绘画/支持MJ以图生图/H5端/自定义训练知识库

一、正文 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。 那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧&#xff01…

C linux struct sigaction

在linux中定义struct sigaction结构体时, 在已经包含signal.h头文件的情况下, 仍旧提示找不到这个结构体. 需要在代码中定义 _POSIX_C_SOURCE 宏&#xff0c;并将其设为大于等于 199309L 的值。这样可以确保相关的函数和结构体在编译时可用。 这将告诉编译器以符合 POSIX 标准要…

Java 计算生肖,java Data中获取年,根据生日日期获取生肖注解,根据输入时间获取生肖,自定义注解的方式获取生肖 根据年份时间获取十二生肖

最近&#xff0c;开发中需要增加生肖&#xff0c;但是不想增加字段&#xff0c;于是通过注解的方式&#xff0c;实现生日与生肖的转换。 话不多说&#xff0c;直接上代码&#xff0c;如下&#xff1a; 实体类中的字段&#xff0c;添加自定义注解&#xff08;ToChineseZodiacSe…

分布式核心知识

文章目录 前言一、分布式中的远程调用1.1RESTful接口1.2RPC协议1.3区别与联系 二、分布式中的CAP原理 前言 关于分布式核心知识详解 一、分布式中的远程调用 在微服务架构中&#xff0c;通常存在多个服务之间的远程调用的需求。远程调用通常包含两个部分&#xff1a;序列化和通…

【c语言】五子棋(EasyX图形库+背景音乐)

大家好&#xff0c;有没有觉得写了好多c语言代码&#xff0c;面对的都是黑框框控制台&#xff0c;当我们学习了基础的c语言知识&#xff0c;和EasyX图形库后&#xff0c;终于可以和黑框框saygoodbye,今天要分享给大家的是小游戏五子棋&#xff0c;跟着小张一起学习吧 EasyX图形…

仓库管理的重点在哪?仓库管理能有哪些软件?

对于做实体生意的中小商户来说&#xff0c;仓库管理工作是重中之重的&#xff0c;仓库管理的好坏&#xff0c;直接影响着门店销售和财务状况。 但对于很多中小商户来说&#xff0c;没有足够的人力和精力去高效地做好仓库管理工作&#xff0c;而借助仓库管理软件或进销存软件来…

Vue轻量级富文本编辑器-Vue-Quill-Editor

效果图&#xff1a; 下载Vue-Quill-Editor npm install vue-quill-editor --save 下载quill&#xff08;Vue-Quill-Editor需要依赖&#xff09; npm install quill --save vue项目中使用代码 <template><div class"edit_container"><quill-edito…

vector(介绍)

目录 1.vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator 的使用 1.2.3 vector 空间增长问题 1.2.4 vector 增删查改 1.2.5 vector 迭代器失效问题。&#xff08;重点&#xff09; 2.vector深度剖析及模拟实现 2.1 使用…

FL Studio21.1中文完整版Win/Mac

FL Studio All Plugins Edition【中文完整版 Win/Mac】适合音乐制作人/工作室使用&#xff0c;全套插件!&#xff08;20.9新增Vintage Chorus&#xff0c;Pitch Shifter变调插件&#xff09;FL Studio是超多顶级音乐人的启蒙首选&#xff01;包括百大DJ冠军Martin Garrix&…

指针(一)【C语言进阶版】

大家好&#xff0c;我是深鱼~ 【前言】&#xff1a; 指针的主题&#xff0c;在初阶指针章节已经接触过了&#xff0c;我们知道了指针的概念&#xff1a; 1.指针就是个变量&#xff0c;用来存放地址&#xff0c;地址的唯一标识一块内存空间&#xff08;指针变量&#xff09;&a…

微信怎么添加更多的好友?通过后还能自动打招呼?

近期好多客户来问想把抖音、淘宝等平台的客户引流到自己的微信号里&#xff0c;打造自己的私域流量池&#xff0c;有什么办法能快捷地批量自动添加客户好友的微信呢&#xff1f;怎么规避加太多频繁的问题呢&#xff1f; 今天&#xff0c;我们来一一解决&#xff0c;都知道加好…

Shell 脚本常用命令

Shell 脚本常用命令 一.日志打印1.信息打印效果2.占位符打印效果 二.文件检索1.文件夹查找2.文件名称3.文件内容检索 三.字符串处理1.字符串截取2.字符串长度获取3.字符串判断4.数字判断5.数字运算 四.日期获取五.文件遍历1.遍历获取修改时间和MD52.Find 查找 六.循环重试1.Whi…

机器学习:什么是分类/回归/聚类/降维/决策

目录 学习模式分为三大类&#xff1a;监督&#xff0c;无监督&#xff0c;强化学习 监督学习基本问题 分类问题 回归问题 无监督学习基本问题 聚类问题 降维问题 强化学习基本问题 决策问题 如何选择合适的算法 我们将涵盖目前「五大」最常见机器学习任务&#xff1a…

Java面向对象——多态、Object类、instanceof关键字以及final关键字

多态的概念 1.多态是指同一个方法调用可以在不同的对象上有不同的表现&#xff0c;即同一种方法调用方式适用于不同的数据类型。 编译时和运行时&#xff1a;编译时期调用的是父类中的方法&#xff0c;但运行时期会根据实际的对象类型来调用适当的方法。这种行为称为动态绑定&…