【腾讯云 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。
而下面的数据图谱数据主要来源于:中国信息通信研究院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架构的痛点。
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 进行访问,整体的应用架构拓扑如下图所示:
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 安装成功,则会显示类似如下页面(不同版本显示的样式可能不同):
(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 包,这几个命令的顺序作用是:
- 先是解压开所下载的 WordPress 包,
- 之后移动其到 nginx 页面目录下
- 授权移动后的 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 的步骤,并强调了对博客主页的访问以验证效果。希望阅读完本文的小伙伴,可以深入了解数据库架构的发展、云原生数据库的概念,以及在实际项目中如何利用腾讯云的服务构建稳定高效的应用环境。
相关文章:

【腾讯云 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…...

【vue3】对axios进行封装,方便更改路由并且可以改成局域网ip访问(附代码)
对axios封装是在main.js里面进行封装,因为main.js是一个vue项目的入口 步骤: 在1处创建一个axios实例为http,baseURL是基础地址(根据自己的需求写),写了这个在vue界面调用后端接口时只用在post请求处写路由…...

Java IO流(三)线程模型
传统阻塞I/O模式 其中黄色框表示对象,蓝色框表示线程,白色框表示API方法 特点 采用阻塞IO模式获取输入数据每个连接都需要独立的线程完成数据的输入,业务处理和处理结果数据返回 潜在问题 并发数很大时,需要对应每个连接请求创建一个线程,所以占用资源很大连接创建后,若当前…...

string(模拟实现与深拷贝)
目录 深拷贝与浅拷贝 浅拷贝: 深拷贝 写时拷贝(了解) 模拟实现 准备 完整代码 深拷贝与浅拷贝 浅拷贝: 也称位拷贝,编译器只是将对象中的值拷贝过来。如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一…...
5.Vue_Element
文章目录 1 Ajax1.1 Ajax介绍1.1.1 Ajax概述1.1.2 Ajax作用1.1.3 同步异步 1.2 Axios1.2.1 Axios的基本使用1.2.2 Axios请求方法的别名 2 前端工程化2.1 前端工程化特点2.2 Vue项目开发流程 3 Vue组件库Element3.1 Element介绍 1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 Ajax: 全…...
链路追踪jaeger
这里的链路指的是客户端向服务发起一个请求,该请求所经过的路线,也可以说是该请求经过的流量 例如: 客户端发起一个下订单的请求其流量过程: request—>service—>order-web—>order_srv—>mysql—>order_srv—&…...
神经网络基础-神经网络补充概念-42-梯度检验
概念 梯度检验(Gradient Checking)是一种验证数值计算梯度与解析计算梯度之间是否一致的技术,通常用于确保实现的反向传播算法正确性。在深度学习中,通过梯度检验可以帮助验证你的神经网络模型是否正确地计算了梯度,从…...

<kernel>kernel 6.4 USB-之-hub_port_connect()分析
<kernel>kernel 6.4 USB-之-hub_port_connect()分析 kernel 6.4 USB系列文章如下: <kernel>kernel 6.4 USB-之-hub_event()分析 <kernel>kernel 6.4 USB-之-port_event()分析 <kern…...

linux驱动学习3-外部中断
在做中断试验时,发现中断驱动总是insmod失败,之后定位到 gpio_request 失败,之后是想到使用的野火做好的系统,在uEnv.txt中会加载大量设备树插件,将key相关的设备树插件屏蔽即可。 linux中断API函数 中断号 每个中断…...
vue中的canvas插件
vue中canvas插件有vue-konva、vue-fabricjs、vue-canvas-effect、vue-chartjs和vue-threejs等。详细介绍:1、vue-konva是一个用于在Vue.js中使用Konva.js的插件,Konva.js是一个功能强大的HTML5 2D 渲染引擎,可以用于创建交互式的Canvas应用程…...

分享图片 | 快速浏览网页资源,批量保存、一键分享图片
前言 小伙伴学习吉他,有时需要在互联网搜索曲谱资源,而多数曲谱均为图片,并且为多页,在电脑上显示练习很不方便,需要停下来点击鼠标进行翻页,影响练习的连贯性。 为了解决上述问题,通常把图片…...
Programming abstractions in C阅读笔记:p123-p126
《Programming Abstractions In C》学习第50天,p123-p126,总结如下: 一、技术总结 1.notaion 这也是一个在计算机相关书籍中出现的词,但有时却不是那么好理解,因为它可以指代很多对象,这里做一个记录。示…...
自然语言处理从入门到应用——LangChain:链(Chains)-[通用功能:LLMChain、RouterChain和SequentialChain]
分类目录:《自然语言处理从入门到应用》总目录 LLMChain LLMChain是查询LLM对象最流行的方式之一。它使用提供的输入键值(如果有的话,还包括内存键值)格式化提示模板,将格式化的字符串传递给LLM,并返回LLM…...

ElasticSearch-安装部署全过程
本文已收录于专栏 《中间件合集》 目录 概念说明什么是ElasticSearch什么是Kibana什么是RESTful API 提供服务安装过程安装ElasticSearch1.下载ElasticSearch 安装包2.解压安装包3.进入解压之后的文件夹4.创建一个data文件夹用来存储数据5.进入config文件夹编辑elasticsearch.y…...
mathematica报错:Tag Plus is \ Protected
在使用化简函数Simplify的时候使用了规则的语法,但是规则可能没有使用等号。 例如 Simplify[(1 - c^2)/d^2, c^2 d^2 1]等号被认为是赋值符号,要修改为两个等号: Simplify[(1 - c^2)/d^2, c^2 d^2 1]这样就不会报错了。...

Python Django 模型概述与应用
今天来为大家介绍 Django 框架的模型部分,模型是真实数据的简单明确的描述,它包含了储存的数据所必要的字段和行为,Django 遵循 DRY Principle 。它的目标是你只需要定义数据模型,然后其它的杂七杂八代码你都不用关心,…...

Golang Gorm 更新字段 save update updates
更新和删除操作的前提条件都是要在找到数据的情况下,先要查询到数据才可以做操作。 更新的前提的先查询到记录,Save保存所有字段,用于单个记录的全字段更新它会保控所有字段,即使零值也会保存。 在更新和删除之前,要利…...

springBoot 配置文件引入 redis 的相关参数说明
在Spring Boot应用中使用Redis作为缓存或数据存储时,可以在应用的配置文件中配置相关参数。下面是常用的Redis配置参数及其说明: spring.redis.host: Redis服务器主机地址,默认为localhost。spring.redis.port: Redis服务器端口,…...
Docker的使用心得:简化开发与部署的利器
开发与测试的无缝衔接: Docker让开发与测试之间的切换变得前所未有的顺畅。我可以在本地开发环境中创建一个与生产环境一致的Docker容器,这样不仅可以确保开发过程中不会出现意外问题,还可以在测试阶段避免不必要的繁琐配置。 跨平台的可移植…...
vue3 基于element plus对el-pagination进行二次封装
vue3 基于element plus对el-pagination进行二次封装 1、前言2、在components文件夹中新建pagination.vue文件3、在组件内使用分页 1、前言 在vue3项目中,如果每个列表页都敲一遍分页方法,显然是不合理的,那么,下面我将基于elemen…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...