怎么做网站自动采集数据库/挖掘关键词工具
文章目录
- 前言
- 一、端口修改
- 1. apisix 端口修改
- 2. dashboard 端口修改
- 3. 登录密码修改
- 二、常用插件介绍
- 1. 常用转换插件
- 1.1 proxy-rewrite插件
- 1.1.1 属性字段
- 1.1.2 配置示例
- 2. 常用认证插件
- 2.1 key-auth插件
- 2.1.1 消费者端字段
- 2.1.2 路由端字段
- 2.1.3 配置示例
- 2.2 basic-auth插件
- 2.2.1 消费者端字段
- 2.2.2 路由端字段
- 2.2.3 配置示例
- 3. 常用安全插件
- 3.1 consumer-restriction插件
- 3.1.1 属性字段
- 3.1.2 配置示例
- 三、消费者配置(数据编辑器方式)
- 1. UI页面对应字段说明
- 2. 配置示例
- 四、上游配置
- 1. UI页面对应字段说明
- 2. 配置示例
- 3. 健康检查
- 3.1 主动健康检查
- 3.2 被动健康检查
- 五、路由配置
- 1. UI页面对应字段说明
- 2. 配置示例(绑定上游方式)
- 六、模拟异常情况
- 1. 模拟节点不健康
- 1.1 上游配置
- 1.2 路由配置如下
- 1.3 测试结果
- 1.4 日志查看
- 1.5 结果分析
- 总结
前言
本文介绍了在 API 网关中进行端口修改、常用插件配置、消费者配置、上游配置和路由配置的方法。通过对这些方面的详细说明,读者可以了解如何灵活地调整和定制自己的 API 网关环境,以满足不同场景下的需求。
一、端口修改
1. apisix 端口修改
添加多个代理监听端口,修改/usr/local/apisix/conf/config.yaml
配置文件,添加如下配置,添加的配置将覆盖默认配置文件。
apisix:node_listen:- 9080- 9081- 9082
2. dashboard 端口修改
修改/usr/local/apisix/conf/conf.yaml
配置文件,修改如下配置。
conf:listen:port: 9000
3. 登录密码修改
可修改/usr/local/apisix/conf/conf.yaml
配置文件中的用户认证配置。
authentication:users:- username: adminpassword: admin- username: userpassword: user
二、常用插件介绍
使用插件需要配置 plugins 字段,不配置默认不使用插件。启用插件需要把 plugins 字段下 _meta.disable 的值设为 false。
1. 常用转换插件
1.1 proxy-rewrite插件
proxy-rewrite 是处理上游代理信息重写的插件,支持对 scheme、uri、host 等信息进行重写。
1.1.1 属性字段
名称 | 类型 | 是否必填 | 默认值 | 有效值 | 描述 |
---|---|---|---|---|---|
uri | string | 否 | 转发到上游的新 uri 地址 | ||
method | string | 否 | GET, POST, PUT, HEAD, DELETE, OPTIONS,MKCOL, COPY, MOVE, PROPFIND, PROPFIND,LOCK, UNLOCK, PATCH, TRACE | 将路由的请求方法代理为该请求方法 | |
regex_uri | array[string] | 否 | 使用正则表达式匹配来自客户端的 uri,如果匹配成功,则使用模板替换转发到上游的 uri,如果没有匹配成功,则将客户端请求的 uri 转发至上游。当同时配置 uri 和 regex_uri 属性时,优先使用 uri。当前支持多组正则表达式进行模式匹配,插件将逐一尝试匹配直至成功或全部失败。例如:[“^/iresty/(.*)/(.*)/(.*)”, “/$1-$2-$3”, ^/theothers/(.*)/(.*)", “/theothers/$1-$2”],奇数索引的元素代表匹配来自客户端请求的 uri 正则表达式,偶数索引的元素代表匹配成功后转发到上游的 uri 模板。请注意该值的长度必须为偶数值。 | ||
host | string | 否 | 转发到上游的新主机地址 | ||
headers | object | 否 | 转发到上游的新 uri 地址 | ||
headers.add | object | 否 | 添加新的请求头,如果请求头已存在,则追加到末尾。格式为 {“name”: “value”, …} | ||
headers.set | object | 否 | 改写请求头,如果请求头不存在,则会添加。格式为 {“name”: “value”, …} | ||
headers.remove | array | 否 | 移除请求头。格式为 [“name”, …] | ||
use_real_request_uri_unsafe | boolean | 否 | false | 使用 real_request_uri(nginx 中的原始 $request_uri)绕过 URI 规范化。启用它被认为是不安全的,因为它会绕过所有 URI 规范化步骤。 |
1.1.2 配置示例
...
plugins:proxy-rewrite:regex_uri:- ^/postman/(.*)- /$1...
...
2. 常用认证插件
2.1 key-auth插件
key-auth插件是一种用于向路由或服务添加身份验证密钥的工具,它需要与消费者配合使用。通过将密钥添加到请求参数或请求头中,消费者可以验证其请求。
2.1.1 消费者端字段
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
key | string | 是 | key 是唯一的,不同的消费者应设置不同的 key。如果多个消费者使用了相同的 key,将会出现请求匹配异常。 |
2.1.2 路由端字段
名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
header | string | 否 | apikey | 设置从哪个请求头获取 key |
query | string | 否 | apikey | 设置从哪个请求请求参数获取 key |
header | boolean | 否 | false | 当设置为 false 时,将含有认证信息的请求头或请求参数传递给上游。如果为 true 时,将删除对应的请求头或请求参数,具体删除哪一个取决于是从请求头获取 key 还是从请求参数获取 key。 |
2.1.3 配置示例
消费者端:
username: consumer_demo
desc: consumer_demo描述
plugins:key-auth:_meta:disable: falsekey: auth-one...
路由端:
...
plugins:key-auth:_meta:disable: falseheader: apikey...
...
2.2 basic-auth插件
basic-auth插件是一种用于向路由或服务添加基本访问身份验证的工具。它需要与消费者配合使用。API的消费者可以将他们的密钥添加到请求头中,以验证其请求。不同的消费设置该插件要设置不同的用户名,如果不同消费者使用该插件设置的用户名相同,可能会有异常。
2.2.1 消费者端字段
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
username | string | 是 | 消费者的唯一用户名 |
password | string | 是 | 密码 |
2.2.2 路由端字段
名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
hide_credentials | boolean | 否 | false | 设置为 true 时,不会将认证请求头传递给上游 |
2.2.3 配置示例
消费者端:
username: consumer_demo
desc: consumer_demo描述
plugins:basic-auth:_meta:disable: falsepassword: userusername: user...
路由端:
...
plugins:basic-auth:_meta:disable: falsehide_credentials: false...
...
3. 常用安全插件
3.1 consumer-restriction插件
consumer-restriction 插件允许用户根据路由、服务或消费者来设置相应的访问限制。
3.1.1 属性字段
名称 | 类型 | 是否必填 | 默认值 | 有效值 | 描述 |
---|---|---|---|---|---|
type | string | 否 | consumer_name | consumer_name, consumer_group_id, service_id, route_id | 支持设置访问限制的对象类型。 consumer_name:把 Consumer 的 username 列入白名单或黑名单来限制 Consumer 对 Route 或 Service 的访问。 consumer_group_id: 把 Consumer Group 的 id 列入白名单或黑名单来限制 Consumer 对 Route 或 Service 的访问。 service_id:把 Service 的 id 列入白名单或黑名单来限制 Consumer 对 Service 的访问,需要结合授权插件一起使用。 route_id:把 Route 的 id 列入白名单或黑名单来限制 Consumer 对 Route 的访问。 |
whitelist | array[string] | 是 | 加入白名单的对象,优先级高于 allowed_by_methods | ||
blacklist | array[string] | 是 | 加入黑名单的对象,优先级高于 whitelist | ||
rejected_code | integer | 否 | 403 | [200,…] | 当请求被拒绝时,返回的 HTTP 状态码 |
rejected_msg | string | 否 | 当请求被拒绝时,返回的错误信息 | ||
allowed_by_methods | array[object] | 否 | 一组为消费者设置允许的配置,包括用户名和允许的 HTTP 方法列表 | ||
allowed_by_methods.user | 否 | 为消费者设置的用户名 | |||
allowed_by_methods.methods | array[string] | 否 | GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, CONNECT, TRACE, PURGE | 允许的 HTTP 方法列表 |
3.1.2 配置示例
...
plugins:consumer-restriction:_meta:disable: falseallowed_by_methods:- methods:- GETuser: postmanget- methods:- GETuser: consumer_demoblacklist:- consumer_demo2- consumer_demo3rejected_code: 403rejected_msg: 请求被拒绝type: consumer_namewhitelist:- postmanget- consumer_demo- consumer_demo1- consumer_demo2- consumer_demo3...
...
三、消费者配置(数据编辑器方式)
消费者是路由的消费方,形式包括开发者、最终用户、API 调用等。
它具有最高优先级:Consumer > Route > Plugin Config > Service。
1. UI页面对应字段说明
UI页面字段名 | 数据编辑器字段 | 是否必填 |
---|---|---|
名称 | username | 是 |
描述 | desc | 否 |
插件 | plugins | 否 |
2. 配置示例
创建消费者consumer_demo,配置并启用basic-auth插件。
username: consumer_demo
desc: consumer_demo描述
plugins:basic-auth:_meta:disable: falsepassword: userusername: userkey-auth:_meta:disable: truekey: auth-one
四、上游配置
在 API 网关中,“上游”(Upstream)是指向后端服务的请求转发目标。API Gateway 通过将客户端请求代理到上游服务器来处理和响应这些请求。
1. UI页面对应字段说明
UI页面字段名 | 数据编辑器字段 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
名称 | name | 是 | 上游的名称 | |
描述 | desc | 否 | 上游的描述 | |
负载均衡算法 | type | 是 | roundrobin | 默认为带权轮询 |
主机名 | nodes.host | 是 | 目标节点的主机名 | |
端口 | nodes.port | 是 | 目标节点的端口 | |
权重 | nodes.weight | 是 | 目标节点的权重 | |
Host 请求头 | pass_host | 是 | pass | pass:保持与客户端请求一致的主机名 node:使用目标节点列表中的主机名或IP |
重试次数 | retries | 否 | 可用后端节点的数量 | 重试机制将请求发到下一个上游节点。值为 0 表示禁用重试机制,留空表示使用可用后端节点的数量。 |
重试超时时间 | retry_timeout | 否 | 之前的请求和重试请求花费太多时间就不再继续重试 | 限制是否继续重试的时间,若之前的请求和重试请求花费太多时间就不再继续重试。0 代表不启用重试超时机制。 |
协议 | scheme | 是 | HTTP | |
连接超时 | timeout.connect | 是 | 6 | 建立从请求到上游服务器的连接的超时时间 |
发送超时 | timeout.send | 是 | 6 | 发送数据到上游服务器的超时时间 |
接受超时 | timeout.read | 是 | 6 | 从上游服务器接收数据的超时时间 |
连接池容量 | keepalive_pool.size | 否 | 320 | 为 upstream 对象设置独立的连接池容量 |
连接池空闲超时时间 | keepalive_pool.idle_timeout | 否 | 60 | 为 upstream 对象设置独立的连接池空闲超时时间 |
连接池请求数量 | keepalive_pool.requests | 否 | 1000 | 为 upstream 对象设置独立的连接池请求数量 |
2. 配置示例
name: postman
desc: postman描述
type: roundrobin
nodes:- host: postman-echo.comport: 80weight: 1- host: postman-echo1.comport: 80weight: 1- host: postman-echo2.comport: 80weight: 1
pass_host: pass
retries: 3
retry_timeout: 6
scheme: http
timeout:connect: 6send: 6read: 6
keepalive_pool:idle_timeout: 60requests: 1000size: 320
3. 健康检查
- 只有在 upstream 被请求时才会开始健康检查,如果 upstream 被配置但没有被请求,不会触发启动健康检查。
- 如果没有健康的节点,那么请求会继续发送给上游。
- 如果 upstream 中只有一个节点时不会触发启动健康检查,该唯一节点无论是否健康,请求都将转发给上游。
3.1 主动健康检查
主动健康检查指 APISIX 通过预设的探针类型(HTTP、HTTPS、TCP),主动探测上游节点的存活性。
当发向健康节点 A 的 N 个连续探针都失败时,该节点将被标记为不健康,不健康的节点将会被 APISIX 的负载均衡器忽略,无法收到请求;若某个不健康的节点,连续 M 个探针都成功时,该节点将被重新标记为健康,进而可以被代理。
3.2 被动健康检查
被动健康检查指通过判断从 APISIX 转发到上游节点的请求响应状态,来判断对应的上游节点是否健康。相对于主动健康检查,被动健康检查的方式无需发起额外的探针,但是也无法提前感知节点状态,可能会有一定量的失败请求。
若发向健康节点 A 的 N 个连续请求都被判定为失败,则该节点将被标记为不健康。
由于不健康的节点无法收到请求,仅使用被动健康检查无法重新将节点标记为健康,因此需要结合主动健康检查来使用。
五、路由配置
路由根据定义的规则匹配客户端的请求,加载并执行相应的插件,并将请求转发给指定的上游。
1. UI页面对应字段说明
UI页面字段名 | 数据编辑器字段 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
名称 | name | 是 | 路由名称唯一的,最大长度为100 | |
标签 | labels | 否 | 为路由增加自定义标签,可用于路由分组。 | |
标签 | labels.tag_name | 否 | tag_name是自定义的标签名,标签名和标签值都要自定义,例如:tag_demo: postman_tag | |
描述 | desc | 否 | 路由的描述 | |
发布 | status | 是 | 1 | 设置路由状态是否启用,1表示启用,0表示禁用 |
匹配条件.路径 | uris | 是 | /* | 匹配 uri 的路径,可设置多个匹配路径 |
匹配条件.HTTP方法 | methods | 否 | 不填默认所有方法,在UI页面需要选择 ALL | |
匹配条件.优先级 | priority | 否 | 0 | 设置匹配条件的优先级 |
选择上游服务 | upstream_id | 是 | 需要绑定的上游服务的 ID,UI页面选择后会自动绑定上游对应的 ID |
2. 配置示例(绑定上游方式)
name: route_demo
labels:API_VERSION: v1tag_demo: postman_tag
desc: route_demo描述
status: 1
uris:- /postman/*- /postmanget/*
methods:- GET
priority: 1
plugins:proxy-rewrite:regex_uri:- ^/postman/(.*)- /$1
upstream_id: '506489652354484505'
六、模拟异常情况
apisix主机为 192.168.145.103。使用公共接口 https://postman-echo.com/get?foo1=bar1&foo2=bar2 进行测试,该接口的返回数据如下:
1. 模拟节点不健康
这里准备了6个节点,分别为 postman-echo.com、postman-echo.com1、postman-echo.com2、postman-echo.com3、postman-echo.com4、postman-echo.com5,其中 postman-echo.com 节点是健康的,其他节点是不健康的。
1.1 上游配置
nodes:- host: postman-echo.comport: 80weight: 1- host: postman-echo1.comport: 80weight: 1- host: postman-echo2.comport: 80weight: 1- host: postman-echo3.comport: 80weight: 1- host: postman-echo4.comport: 80weight: 1- host: postman-echo5.comport: 80weight: 1
retries: 3
timeout:connect: 6send: 6read: 6
type: roundrobin
scheme: http
pass_host: pass
name: postman
desc: postman描述
keepalive_pool:idle_timeout: 60requests: 1000size: 320
retry_timeout: 6
1.2 路由配置如下
uris:- /postman/*- /postmanget/*
name: route_demo
desc: route_demo描述
priority: 1
methods:- GET
plugins:proxy-rewrite:regex_uri:- ^/postman/(.*)- /$1
upstream_id: '506489652354484505'
labels:API_VERSION: v1route: rpute_demo
status: 1
1.3 测试结果
成功获取到数据,但是响应时间比较长,相对于前面1s的响应时间,这里用了1.70min。
1.4 日志查看
查看/usr/local/apisix/logs/error.log
文件,可以看到如下报错。
查看/usr/local/apisix/logs/access.log
文件,可以看到成功的一条记录。
1.5 结果分析
当有其他节点不健康时,响应速度会变慢。当所有节点不健康时,无法获取响应数据。
总结
本文从多个方面介绍了在 API 网关中进行各种配置操作的方法。无论是修改端口还是添加插件或设置消费者等,都能够帮助用户更好地管理和控制其API网关环境。通过理解并熟悉这些操作步骤,读者可以根据自身需求来优化和定制他们所使用的API网关系统,并提供更高效可靠且安全性强大的服务。
希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!
相关文章:

API网关-Apisix路由配置教程(数据编辑器方式)
文章目录 前言一、端口修改1. apisix 端口修改2. dashboard 端口修改3. 登录密码修改 二、常用插件介绍1. 常用转换插件1.1 proxy-rewrite插件1.1.1 属性字段1.1.2 配置示例 2. 常用认证插件2.1 key-auth插件2.1.1 消费者端字段2.1.2 路由端字段2.1.3 配置示例 2.2 basic-auth插…...

Transformer的前世今生 day10(Transformer编码器
前情提要 ResNet(残差网络) 由于我们加更多层,更复杂的模型并不总会改进精度,可能会让模型与真实值越来越远,如下: 我们想要实现,加上一个层把并不会让模型变复杂,即没有它也没关系…...

【c++模板】泛型编程(你真的懂模版特化、分离编译和非类型参数吗)
🪐🪐🪐欢迎来到程序员餐厅💫💫💫 今日主菜:模板 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:c大冒险 总有光环在陨落,总有新星在…...

力扣1----10(更新)
1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按…...

[Qt] QString::fromLocal8Bit 的使用误区
QString::fromLocal8Bit 是一个平台相关的函数。默认情况下在 Windows 下 就是 gbk 转 utf-8 ,在 Linux就应该是无事发生。因为Linux平台默认的编码方式就是 utf-8 可以通过 void QTextCodec::setCodecForLocale(QTextCodec *c)来修改 Qt默认的编码方式。如下 第一输出乱码的…...

什么是RabbitMQ的死信队列
RabbitMQ的死信队列(Dead Letter Queue,简称DLQ)是一种用于处理消息失败或无法路由的消息的机制。它允许将无法被正常消费的消息重新路由到另一个队列,以便稍后进行进一步处理、分析或排查问题。 当消息对立里面的消息出现以下几…...

力扣面试150 删除有序数组中的重复项 双指针
Problem: 26. 删除有序数组中的重复项 思路 👩🏫 三叶题解 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public int removeDuplicates(int[] nums) {int j 0, n nums.length;for(int i 0;…...

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(二)—— 深度神经网络
政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 概述 深度神经网络(Deep Neural Network…...

【链表】Leetcode 138. 随机链表的复制【中等】
随机链表的复制 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点…...

【计算机网络教程】(第六版)第2章课后习题答案
第二章 2-012-022-032-042-062-072-082-092-102-112-122-132-142-152-16 2-01 物理层要解决哪些问题?物理层的主要特点是什么? 答: 物理层要解决的主要问题: (1)物理层要尽可能地屏蔽掉物理设备和传输媒体&…...

抖音电商“达人客服”产品上线啦!超多作者邀你一起“321上客服”!
有问题别自己克服,来抖音电商找“达人客服” 当代年轻人购物,正在从机智省变成理智购。越来越多的人在达人直播间购物,看重的不止是优惠力度,还有服务保障。 为了帮助达人更好地服务用户,抖音电商上线了「达人客服」…...

华为防火墙二层墙(VAN/SVI/单臂路由)
二层墙只能做地址池形式的NAT。 交换机安全策略防火墙二层墙 路由器安全策略防火墙三层墙 交换机的光口是不能直接插线的,光模块,包括进和出 长距离:单模 短距离:多模 防火墙自身的ping流量需要单独配置...

idea使用git笔记
1.创建分支和切换分支 创建分支 切换分支 2.把新创建的分支提交到远程服务器上(注:如果没有提交的,随便找个文件修改再提交) (1)切换到要提交的分支,add (2)commit (3)push 3.在自己分支修改代码及提交到自己的远…...

智慧校园数据可视化有什么好处?怎么推进数字化校园方案?
在当今数字化时代,越来越多学校开始实施智慧校园计划,旨在为学生和教师提供更高效、便捷的学习和教学环境。智慧校园运用互联网、大数据、人工智能等技术,对校园内各信息进行收集、整合、分析和应用,实现教学、管理、服务等多方面…...

如何利用python编写函数fn(a,n)求数列和
1 问题 编写函数fn(a,n) 求aaaaaa⋯aa⋯aa(n个a)之和,fn须返回的是数列和,输入正整数a和n的值(两个值都不超过9),并输出fn(a,n)的结果值。 2 方法 运用def 定义函数和for 循环递归方法: 先定义fn(a,n)函数;…...

django orm DateTimeField 6位小数精度问题
from django.db.backends.mysql.base import DatabaseWrapperDatabaseWrapper.data_types[DateTimeField] "datetime"意思就是重写源码里面的DateTimeField字段...

JVM(六)——内存模型与高效并发
内存模型与高效并发 一、java 内存模型 【java 内存模型】是 Java Memory Model(JMM) 简单的说,JMM 定义了一套在多线程读写共享数据时(成员变量、数组)时,对数据的可见性、有序 性、和原子性的规则和保障…...

C++:关键字(4)
在c中的关键字就是我们各个写的各种代码 这些就是关键字,这些东西是无法当参数的,比如在给变量名设置为int那就不行 这就是个错的 在写其他的参数时候,不可以使用关键词作为参数...

STM32串口收发单字节数据原理及程序实现
线路连接: 显示屏的SCA接在B11,SCL接在B10,串口的RX连接A9,TX连接A10。 程序编写: 在上一个博客中实现了串口的发送代码,这里实现串口的接收代码,在上一个代码的基础上增加程序功能。 Seiral.…...

openGauss + Datakit搭建openGauss运维平台
系统架构OS 硬件需求:2c4g [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# uname -m x86_64 [rootlocalhost ~]# hostname -I 192.168.92.32 下载地址:https://opengauss.org/zh/download/ 下载…...

【疑惑】-谷歌是如何获取数据的
搜索引擎爬虫: 谷歌的搜索引擎通过爬虫程序在互联网上爬取和收集网页信息。这些爬虫会遵循特点的算法和规则,访问内容,并且提取出关键信息 用户的搜索行为: 当用户使用谷歌搜索引擎进行搜索的时候,谷歌会收集分析用户…...

Java static和继承
static特点 Java中的static关键字允许在没有创建类的实例的情况下进行调用。以下是static关键字的主要用途和特点: 静态变量(类变量):使用static关键字声明的变量称为静态变量或类变量。这些变量属于类本身,而不是类…...

亲身体验!人工智能对话无障碍 —— BRClient 使用指南
01 概述 BRClient 这个名字来源于“Bedrock Client”的简称,寓意是为用户提供一个坚实的基础。BRClient 作为一个开源的桌面应用,为用户提供了友好的图形界面,让每个人都能够轻松访问和使用 Claude 3 的强大功能。用户可以自定义 Claude 3 的…...

【数据库管理操作】Mysql 创建学生数据库及对数据表进行修改
MySQL 创建学生成绩数据库 1.创建数据库 create database studentscore;创建完成之后,如果需要使用该数据,使用use命令 use studentscore;创建表前查看当前数据库中包含的表 show tables; 2.创建bclass表 create table bclass( class_id char(8) …...

vue2 export default写法,computed、methods的使用
<template><div><h2>{{nameAll}}</h2><h2>{{method}}</h2><h2>{{tt()}}</h2><h2>{{firstName}}</h2><h2>更新后赋值数据:{{lastName}}</h2><h2>赋值数据:{{writeValue}}</h2>…...

负氧离子监测站:创造健康生活环境
TH-FZ5在蓝天白云之下,那一座座高耸的全彩屏负氧离子监测站,如同一支支科技的绿芽,静静破土而出,为这片土地带来了新的生命力。这些现代化的设备不仅美化了环境,更是我们呼吸健康守护者,它们的存在让我们的…...

【jvm】young gc full gc
何时触发YoungGC或FullGC YoungGC的触发时常在发生,当新生代的Eden区满了之后就会触发YoungGC。 FullGC在多个情况下都会被触发: 1、发生Young GC之前进行检查,如果“老年代可用的连续内存空间” < “新生代历次Young GC后升入老年代的对象…...

2024年腾讯云服务器租用价格_轻量和CVM报价
腾讯云服务器价格表2024年最新价格,轻量2核2G3M服务器61元一年、2核2G4M服务器99元1年,三年560元、2核4G5M服务器165元一年、3年900元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、8核32G配置115元1个月,345元3个月。CVM云服务…...

【go从入门到精通】for循环控制
作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C,go等语言开发经验,mysql,mongo,redis等数据库,设计模…...

<chrono>, clock_gettime(), gettimeofday()对比
精度(Precision): <chrono>: 提供了纳秒级别的精度,可以满足大多数应用的需求。clock_gettime(): 提供了纳秒级别的精度,与 <chrono> 相当。gettimeofday(): 提供了微秒级别的精度,相对于前两者…...