Prometheus - Grafana 监控 MysqlD Linux服务器 详细版

news2024/11/24 5:41:30

readme

其实上一篇文章已经把如何操作,基本上是写全了(因为是从本文精炼出来的)本文可能更多的是补充一些关于 Prometheus 和 Grafana 的理论 ,关系等。

操作 标签:是必看,要操作的。
非必要看 标签:是非必看,是关于软件的各种理论。
PS:下文最先运行的应该是 node_exporter,然后是Prometheus,最后是Grafana。
总体架构图:

image-20230410171629435

如上图,通过 mysql_exporter 获取 MySQL 的监控数据,通过 node_exporter 获得 Linux 服务器的监控数据。将获得的监控数据传到 Prometheus 中,最终通过 Grafana 展示出来,效果如下图:
image-20230410171723214

0. Prometheus简介(非必要看)

多维度数据模型。 灵活的查询语言。 不依赖分布式存储,单个服务器节点是自主的。 通过基于HTTP的pull方式采集时序数据。 可以通过中间网关进行时序列数据推送。 通过服务发现或者静态配置来发现目标服务对象。 支持多种多样的图表和界面展示,比如Grafana等。

Prometheus架构图(非必要看)

image-20230410134244492

说明:prometheus 直接或通过pushgateway抓取数据。将数据存储在本地,并对这些数据运行规则,以便从现有数据聚合和记录新时间序列,或者生成警报。grafana等可用于可视化数据。

Prometheus组件说明(非必要看)

prometheus Server: 根据配置完成数据采集, 服务发现以及数据存储。

Push Gateway : 为应对部分push场景提供的插件,监控数据先推送到 Push Gateway 上,然后再由 Prometheus Server 端采集 pull 。用于存在时间较短,可能在 Prometheus 来 pull 之前就消失了的 jobs (若 Prometheus Server 采集间隔期间,Push Gateway 上的数据没有变化, Prometheus Server 将采集到2次相同的数据,仅时间戳不同)

Exporters(探针): 是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。

Alertmanager: Prometheus server 主要负责根据基于PromQL的告警规则分析数据,如果满足PromQL定义的规则,则会产生一条告警,并发送告警信息到Alertmanager,Alertmanager则是根据配置处理告警信息并发送。

**常见的接收方式有:**电子邮件,webhook 等。Alertmanager三种处理告警信息的方式:分组,抑制,静默。

1. 下载和安装Prometheus(操作)

首先,你需要下载和安装Prometheus。你可以从Prometheus的官方网站(https://prometheus.io/)下载最新版本的二进制文件。下载好后,你需要将Prometheus解压到你的计算机上。

image-20230410132154306

关于监控(非必要看)

监控系统(非必要看)

image-20230410133441317

监控什么(非必要看)

配置Prometheus(操作)

在解压Prometheus之后,你需要配置Prometheus以监控你的应用程序。在Prometheus的根目录下,你会找到一个名为prometheus.yml的文件。这个文件包含了Prometheus的配置信息。

你需要编辑这个文件,添加你要监控的目标。在这个文件中,你需要定义一个或多个job。每个job表示你要监控的目标。对于每个job,你需要指定一个target,它表示你要监控的应用程序的地址和端口号。

例如,假设你要监控一个名为myapp的应用程序,它运行在localhost上的8080端口,那么你的prometheus.yml文件应该如下所示:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'myapp'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:8080']

在这个配置中,我们定义了一个名为myappjob,它每隔5秒钟就会监控一次localhost:8080这个目标。

通过配置 scrape_intervalevaluation_interval 设置采样时间和评估时间,以控制指标的精度和延迟。

连接我自己云服务器的样例(操作)

这个9100端口是下面下载后运行在云服务器上的默认端口。

-----------------------------------

添加远程主机(连接linux云服务器)(监控云服务器)(操作)

1.官网下载node_exporter安装包,官网下载地址如下: https://prometheus.io/download/

将 node_exporter 传到需要监控的 MySQL 机器上,进行解压:

sdo utar -zxvf node_exporter-1.5.0.linux-amd64.tar.gz -C /opt/

创建软链接:

sudo ln -s /opt/node_exporter-1.5.0.linux-amd64/ /opt/node_exporter

启动

sudo nohup /opt/node_exporter/node_exporter &(下载完了就可以运行了,运行在Prometheus之前)

image-20230410132108155

运行Prometheus(操作)

在完成了配置之后,你可以启动Prometheus。在Prometheus的根目录下,运行以下命令:

./prometheus (.exe)

这将启动Prometheus,并开始监控你在配置文件中指定的目标。

查看监控数据(操作)

一旦Prometheus开始监控你的应用程序,它就会收集各种指标数据,并将这些数据(启动后,您可以在浏览器中输入 http://localhost:9090/,访问 Prometheus 的 UI 界面,在其中可以看到已经可以采集到的指标。)

此时如果这里报错:get context deadline exceeded,就是说明没有开放此端口,我是在阿里云上开放了就可以了

image-20230410132558121

浏览器输入:http://192.168.150.123:9100/metrics,如果有类似如下数据,则表示 node_exporter 部署完成。

image-20230410173154189

-----------------------------------

添加远程主机(连接mysql服务器)(监控mysql服务器)(操作)

部署 mysqld_exporter 组件(操作)

首先在https://prometheus.io/download/中找到对应的 mysqld_exporter 版本。

将 mysqld_exporter 传到需要监控的 MySQL 机器上,进行解压:

sudo tar zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /opt

创建软链接

sudo ln -s /opt/mysqld_exporter-0.14.0.linux-amd64/ /opt/mysqld_exporter

在 MySQL 上创建监控用户

create user ‘exporter’@‘localhost’ IDENTIFIED BY ‘112233lml!’;

GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON . TO ‘exporter’@‘localhost’;

新建一个配置文件:

sudo vim /opt/mysqld_exporter/mysqld_exporter.cnf

配置 MySQL 监控用户信息:

[client]
user=exporter
password=112233lml!

启动 mysqld_exporter

sudo nohup /opt/mysqld_exporter/mysqld_exporter --config.my-cnf=/opt/mysqld_exporter/mysqld_exporter.cnf &

浏览器输入:http://192.168.150.123:9104/metrics,可获得 MySQL 监控数据,如下图(部分数据):

image-20230410173625695

配置 Prometheus 获取监控数据(操作)

image-20230412152701225

重启 prometheus

-----------------------------------

配置Prometheus的告警规则(文章最后面有详细设置)

Prometheus支持基于指标的告警规则,以便在监控数据达到特定阈值时发送告警通知。你可以通过Prometheus的prometheus.yml文件来配置告警规则,并通过Alertmanager来发送告警通知。在告警规则中,你可以设置阈值、告警级别和告警通知方式等。

分隔符 || 集成Prometheus和Grafana(非必要看)

Prometheus和Grafana是两个常用的监控和分析工具,它们可以很好地协同工作来实现更高效的监控和分析。你可以通过Prometheus提供的API来将监控数据传递给Grafana,并利用Grafana的可视化工具来展示和分析数据。通过Prometheus和Grafana的集成,你可以更好地了解你的系统运行情况,并及时采取措施来解决问题和风险。

总之,Prometheus是一个功能强大的监控和分析工具,可以帮助你实时监控和分析系统的性能和运行情况。通过Prometheus,你可以更好地了解你的系统,并及时采取措施来解决潜在问题和风险。

Prometheus的监控展现图通常是基于Grafana进行展示的。Grafana是一款开源的数据可视化工具,它可以方便地将Prometheus收集到的监控数据展示为各种形式的图表。

2. Grafana简介(非必要看)

Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,你只需要提供你需要监控的数据,它就可以帮你生成各种可视化仪表,并且带有告警功能。

Grafana 不对数据源作假设,它支持以下各种数据,也就是说如果你的数据源是以下任意一种,它都可以帮助生成仪表

(不管你用什么语言)。

Grafana 支持的数据源(非必要看)

  • Prometheus 本文中的例子,你没听过也没关系不影响阅读,把它想象成带时间戳的 MySQL 就好
  • Graphite
  • OpenTSDB
  • InfluxDB
  • MySQL/PostgreSQL
  • Microsoft SQL Server
  • 等等

特点(非必要看)

①可视化:快速和灵活的客户端图形具有多种选项。面板插件为许多不同的方式可视化指标和日志。

②报警:可视化地为最重要的指标定义警报规则。Grafana将持续评估它们,并发送通知。

③通知:警报更改状态时,它会发出通知。接收电子邮件通知。

④动态仪表盘:使用模板变量创建动态和可重用的仪表板,这些模板变量作为下拉菜单出现在仪表板顶部。

⑤混合数据源:在同一个图中混合不同的数据源!可以根据每个查询指定数据源。这甚至适用于自定义数据源。

⑥注释:注释来自不同数据源图表。将鼠标悬停在事件上可以显示完整的事件元数据和标记。

⑦过滤器:过滤器允许您动态创建新的键/值过滤器,这些过滤器将自动应用于使用该数据源的所有查询。

3. 安装和使用Grafana(操作)

下载和安装Grafana(操作)

首先,你需要从Grafana的官方网站(https://grafana.com/grafana/download)下载最新版本的二进制文件。下载好后,你需要将Grafana解压到你的计算机上。(我下载的windows的)

启动Grafana(操作)

在解压Grafana之后,你需要启动Grafana。在Grafana的根目录下,运行以下命令:

./bin/grafana-server web

这将启动Grafana,并将其运行在默认端口3000上。你可以在浏览器中访问http://localhost:3000来访问Grafana的Web界面。

(

默认端口:3000

地址:http://ip:3000

初始管理员账号:admin,密码:admin

)

配置数据源(操作)

在访问Grafana的Web界面之后,你需要配置Grafana的数据源。数据源是Grafana用来获取监控数据的来源。在Grafana的Web界面中,选择左侧菜单栏的“Configuration” -> “Data Sources”,然后点击“Add data source”按钮来添加你的数据源。

image-20230410141131265

Grafana支持多种数据源,包括Prometheus、InfluxDB、Graphite等。选择你要使用的数据源,并填写相应的配置信息。例如,如果你要使用Prometheus作为数据源,那么你需要填写Prometheus的地址和端口号。

创建仪表盘(详文请跳转到后面 – 构建你的第一个仪表盘)(操作)

在配置好数据源之后,你可以开始创建你的第一个仪表盘了。在Grafana的Web界面中,选择左侧菜单栏的“Create” -> “Dashboard”,然后点击“Add panel”按钮来添加你的图表。

image-20230410141450914

在添加图表时,你可以选择不同的展示形式,如折线图、柱状图、饼图等。你还可以选择你要展示的指标和时间范围。

查看监控数据(非必要看)

一旦你创建了你的仪表盘,在你创建了仪表盘之后,你可以查看监控数据并进行分析。在Grafana的Web界面中,你可以选择左侧菜单栏的“Dashboard”来查看你的仪表盘。

在仪表盘中,你可以看到你所选择的监控数据的可视化图表以及相应的指标。你可以根据需要对图表进行调整和修改,以便更好地展示你所关注的指标和数据。

此外,Grafana还提供了各种可视化工具和插件,以便用户自定义和扩展监控数据的展示方式。你可以在Grafana的官方网站上查找和下载这些插件,以便更好地满足你的需求。

总之,Grafana是一个功能强大的监控和分析工具,可以帮助你实时监控和分析系统的性能和运行情况。通过Grafana,你可以更好地了解你的系统,并及时采取措施来解决潜在问题和风险。

-----------------------------------

构建你的第一个仪表盘(操作)

常见问题(非必要看)

  1. 服务监控到底咋配置?怎样保证数据安全?
  2. 保证健康的服务到底应该监控些什么?
  3. 配置好后的仪表盘为啥消失了?
  4. 查询 Query 又该咋写?

注意,在之后的所有步骤中,你的 docker 应该处于运行状态。

在这里我们启动了三个服务(非必要看)

  • Prometheus 普罗米修斯时序数据库,用来存储和查询你的监控数据
  • Promethues-exporter 一个模拟数据源,用来监控你本机的状态,比如有几个 CPU,CPU 的负载之类
  • Grafana 本尊

到这里,你的 Grafana 就已经搭起来了。注意到 Docker 的配置文件中我们创建了三个服务,这三个服务之间分别有什么关系呢?

或者说,Grafana 和时序数据库,数据源之间有什么关系呢?请看下文 Grafana 工作原理

Grafana 工作原理(非必要看)

上面说到,Grafana 是一个仪表盘,而仪表盘必然是用来显示数据的。

Grafana 本身并不负责数据层,它只提供了通用的接口,让底层的数据库可以把数据给它。而我们起的另一个服务,叫 Prometheus (中文名普罗米修斯数据库)则是负责存储和查询数据的。

也就是说,Grafana 每次要展现一个仪表盘的时候,会向 Prometheus 发送一个查询请求。

那么配置里的另一个服务 Prometheus-exporter 又是什么呢?

这个就是你真正监测的数据来源了,Prometheus-exporter 这个服务,会查询你的本地电脑的信息,比如内存还有多少、CPU 负载之类,然后将数据导出至普罗米修斯数据库。

在真实世界中,你的目的是监控你自己的服务,比如你的 Web 服务器,你的数据库之类。

那么你就需要在你自己的服务器中把数据发送给普罗米修斯数据库。当然,你完全可以把数据发送给 MySQL (Grafana 也支持),但普罗米修斯几乎是标配的时序数据库,强烈建议你用。

用一张图来说明它们之间的关系:

image-20230410143304743

这里,最左边的 Docker 服务会将服务的数据发送给中间的普罗米修斯(对应上文的 Prometheus-exporter),而最右边的 Grafana 会查询中间的普罗米修斯,来展示仪表盘。

搭建你的第一个仪表盘(操作)

第 1 步 - 设置数据源(操作)

image-20230410143639667

之后设置数据源 URL。请注意,Promethues 的工作原理是通过轮询一个 HTTP 请求来获取数据的,而 Grafana 在获取数据源的时候也是通过一个 HTTP 请求,因此这个地方你需要告诉 Grafana 你的 Prometheus 的数据端点是什么。

这里我们填入 http://prometheus:9090 就可以了。

//这里可能有问题 ?(我是用的localhost)(目前没问题)

(为什么不是 localhost:9090 呢?原因是,我们用了 docker-compose 起的三个服务,可以把它们想象成三台独立的服务器,因此需要用一个域名来互相通信。我们在 docker-compose.yml 中设置的普罗米修斯服务器的名字就叫 prometheus,因此这里需要用前者。)

image-20230410143854979

点确认时一定要确认出现 Data source is working 这个检测,这时表明你的 Grafana 已经跟普罗米修斯说上话了。(直接save)

第 2 步 - 导入 Dashboard(操作)

在 Grafana 里,仪表盘的配置可以通过图形化界面进行,但配置好的仪表盘是以 JSON 存储的。这也就是说,如果你把你的 JSON 数据分享出去,别人导入就可以直接导入同样的仪表盘(前提是你们的监测数据一样)。

对于我们的例子来说,回忆一下,因为我们用了 prometheus-exporter 也就是本机的系统信息监控,那么我们可以先找一个同样用了这个数据源的仪表盘。在 Grafana 网站上,你其实可以找到很多别人已经做好的仪表,可以用来监测非常多标准化的服务。

Grafana 的仪表盘市场:https://grafana.com/grafana/dashboards

比如说针对以下一些服务的标准仪表盘就可以在这里找到

  • JVM
  • Spring Boot
  • MySQL 监控
  • Laravel 监控

那么,这里我们就用一个标准的仪表盘:https://grafana.com/grafana/dashboards/1860

在左侧的加号里,点 Import 即导入,在出现的界面中填入 1860(下面还有一个11074 可能更详细(下面有图)) 即我们要导入的仪表盘编号即可。

image-20230410145428784

然后填入你需要的信息,比如仪表盘名字等

image-20230410145444452

确认之后 Grafana 就会根据你的本机信息,生成类似 CPU 负载,内存和 I/O 之类的信息。我的磁盘状况如图(监测的我自己的云服务器):

image-20230410145516109

第 2 步 - 导入 Dashboard(操作)

把上面的import 改成11074

image-20230411102604599

-----------------------------------(非必要看 起始位置)

第 3 步 - 生成和创建新的仪表盘(目前就用了上面默认的)(操作)

最后,在上面导入信息的基础上,你就可以开始创建和你的服务、业务相关的仪表盘了。

但在这步之前,你需要先在你的服务中开始记录一些数据。

如何用 Prometheus 查询数据(目前就用了上面默认的)(操作)

普罗米修斯包括所有其它时序数据库通常都会定义一个查询语言,比如说 PromQL。

cpu使用率:
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100)
 
内存使用率:
100-(node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes)/node_memory_MemTotal_bytes*100
 
磁盘使用率:
100 - (node_filesystem_free_bytes{mountpoint="/data01",fstype=~"ext4|xfs"} / node_filesystem_size_bytes{mountpoint="/data01",fstype=~"ext4|xfs"} * 100)
 
下载带宽:(指定某一个网卡)
irate(node_network_receive_bytes_total{device='eth0'}[5m])
 
上传带宽:(指定某一个网卡)
irate(node_network_transmit_bytes_total{device='eth0'}[5m])
 
服务器负载:
node_load1
node_load5
node_load15

如何手动生成一个仪表盘(操作)

假设你已经按上面的步骤生成了一个基本的仪表盘,那么现在可以开始手动添加仪表盘了。同样是点左侧的加号,点 Dashboard 就可以进入添加仪表盘的界面。

这里我们选择一个数据叫 scrape_duration_seconds,先不用管它的含义是什么,就当它是双 11 的销售额好了:

image-20230410151037255

-----------------------------------(非必要看 结束位置)

配置Mysql数据源(操作)

Grafana支持多种数据源,Mysql,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等。

1 配置数据源(操作)

一样是他,我们这里都是用的promethus

image-20230412152852091

2 Grafana 展示 MySQL 的监控数据

在 “Import via grafana.com” 下方输入 7362:

或者在 https://grafana.com/grafana/dashboards/7362 页面下载 JSON 模板,然后点击 “Upload JSON file” 导入,然后会显示如下信息(目前还有其他一些模板,比如 https://github.com/percona/grafana-dashboards,有兴趣的可以尝试一下):
image-20230411103029396

在 prometheus 选项选择之前创建的 Prometheus 数据源,点击 “Import”,会自动跳转到如下界面:

image-20230411103138799

到这里,完成了 Grafana 展示 Prometheus 中 MySQL 的监控数据。

告警配置

通常在正式环境上,需要监控服务器资源的使用情况,当达到使用率超过多少时,进行告警运维人员。

此时用到grafana的Alerting功能,进行定时检查/监控指标。并根据规则去发送警告信息,集成到企业微信/钉钉等办公软件

image-20230411104653645

警告形式

1、添加群机器人

创建一个钉钉/企业微信群–>添加机器人–>添加机器人后,有一个webhook地址

image-20230411104735043

2、grafana 里面配置告警渠道

2.1、添加告警渠道

image-20230411104908681

2.2、将该告警方式配置为默认方式

image-20230411104929307

具体告警规则配置

1、选定要告警的目标

在监控面板中,点击监控指标的下拉按钮–>选择Edit

image-20230411105015166

2、添加警告规则

点击Edit后,下方出现添加告警规则按钮,点击添加

image-20230411105036850

3、告警规则配置

image-20230411105056734

image-20230411105109531

最后点击保存,例如配置的规则是每分钟进行一次检查。当CPU超过3%(具体自己根据需要配置)时,进入pengding状态,持续2分钟超过3%,则会告警通知

添加告警后,可以在列表或者监控面板,查看监控状态

image-20230411105135548image-20230411105146040image-20230411105158037

image-20230411105211940企业微信对应接收到告警通知

image-20230411105250666

参考文章

设置端口:
firewall-cmd --list-ports ##列出开放的端口
firewall-cmd --add-port=9090/tcp --permanent #永久添加 9090 端口
firewall-cmd --add-port=9100/tcp --permanent #永久添加 9100 端口
firewall-cmd --add-port=9104/tcp --permanent #永久添加 9104 端口
firewall-cmd --list-ports #列出开放的端口
systemctl stop firewalld #关闭防火墙
systemctl start firewalld #开启防火墙
systemctl status firewalld #查看防火墙状态
systemctl restart firewalld #重启防火墙

参考文章:https://blog.csdn.net/liyanbin1214/article/details/125373510

参考文章:https://blog.csdn.net/easylife206/article/details/114312284

参考文章:https://blog.csdn.net/ok_shuai/article/details/128950355

参考文章:https://blog.csdn.net/weixin_43997319/article/details/124983451

参考文章:https://blog.csdn.net/qq_38571773

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DP7416国产192K数字音频接收芯片兼容替代CS8416

目录192K 数字音频应用DP7416简介芯片特性192K 数字音频应用 采样率192khz,能将192,000hz以下的频率都录下来,而且对声波每秒连续采样192,000次。在回放的时候,这192,000个采样点按顺序播放,从而还原原来的声音。   过采样技术除…

微信小程序开发 | 综合项目-点餐系统

综合项目-点餐系统8.1 开发前准备8.1.1 项目展示8.1.2 项目分析8.1.3 项目初始化8.1.4 封装网络请求8.2 【任务1】商家首页8.2.1 任务分析8.2.2 焦点图切换8.2.3 中间区域单击跳转到菜单列表8.2.4 底部商品展示8.3 【任务2】菜单列表8.3.1 任务分析8.3.2 折扣信息区8.3.3 设计菜…

关系数据库及其设计

目录 一、关系数据库 二、关系数据库设计 1、需求分析 2.概念结构设计 3.逻辑结构设计 4.数据库表的优化与规范化 5、规范化的大学数据库 6、数据库中表间关系 三、关系数据库的完整性 1.实体完整性约束(PRI…

51电动车报警器.md

1.项目接线 接线示意图和实物图 示意图: 实物图: 信号传输路线 路线1: 433遥控信号 ——> 433接收模块D0引脚以及D1引脚 ——> 单片机P1^2引脚以及P1^3引脚 ——> 单片机P1^1引脚 ——> 继电器IN引脚 ——> 继电器COM口和NO口…

安全防御 --- 防火墙高可靠技术

防火墙高可靠技术(双机热备) VRRP:负责的单个接口的故障检测和流量引导。每个VRRP备份组拥有一个虚拟的IP地址,作为网络的网关地址;在VRRP主备倒换时通过发送免费的ARP来刷新对接设备的MAC地址转发表来引导流量。VGMP&…

SSVEP解码算法 - 多变量同步指数(MSI)

1 算法来源 该算法来自电子科技大学张杨松博士,针对该算法的计算在张博士的博士论文中有详细介绍,有兴趣的读者可以下载阅读,本文重点在对该方法的代码实现。Zhang, Yangsong, et al. “Multivariate synchronization index for frequency recognition of SSVEP-based brain…

Mysql 8 VS Mariadb 10.6 他们有多不一样 (声译)

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

获取List集合中的最大值和最小值

实现获取List集合中的最大值和最小值共有以下两种方式,根据自己的场景选择合适的方法。 目录 Collections 1、String、Integer、Double类型 2、对象类型 排序 1、Integer类型 2、 基本排序方式: Collections 1、String、Integer、Double类型 当…

如何使用Edge Copilot

在ChatGPT红得发紫年代,也应该了解下微软microsoft edge浏览器中的Copilot。 通过这个Copilot - 副驾驶,Edge浏览器发生了革命性变化。 借助AI副驾驶强大的功能,在Edge浏览器中可以轻松完成AI聊天、AI写作、AI网页分析,和AI绘图…

【C++要笑着学】搜索二叉树 (SBTree) | K 模型 | KV 模型

C 表情包趣味教程 👉 《C要笑着学》 💭 写在前面:半年没更 C 专栏了,上一次更新还是去年九月份,被朋友催更很久了hhh 本章倒回数据结构专栏去讲解搜索二叉树,主要原因是讲解 map 和 set 的特性需要二叉搜索…

RPC框架一,RMI远程调用实例

RPC框架一,RMI远程调用实例 网上找了好久关于RMI调用的实例,大多都是本地调用的,远程调用的示例很少,所以自己整理一版。 首先 从server端开始: 服务端############### 具体步骤: 1,写个RM…

【从零学Python基础】Python中的条件判断与循环

文章目录条件语句语法格式缩进和代码块空语句pass循环语句while循环for循环continue与break条件语句 条件语句能够表达如果...则...否则...这样的语义,这即是计算机基础中的逻辑判定,条件语句也叫分支语句 如果 我好好学习:   我一定会找到…

wav2lip:Accurately Lip-syncing Videos In The Wild

飞桨AI Studio - 人工智能学习与实训社区集开放数据、开源算法、免费算力三位一体,为开发者提供高效学习和开发环境、高价值高奖金竞赛项目,支撑高校老师轻松实现AI教学,并助力开发者学习交流,加速落地AI业务场景https://aistudio…

CUDA编程基础与Triton模型部署实践

作者:王辉 阿里智能互联工程技术团队 近年来人工智能发展迅速,模型参数量随着模型功能的增长而快速增加,对模型推理的计算性能提出了更高的要求,GPU作为一种可以执行高度并行任务的处理器,非常适用于神经网络的推理计算…

电脑有自带的录屏功能吗?电脑录屏如何录人脸

案例:所有电脑都有自带的录屏功能吗? “在网上了解到电脑有录屏功能,但是我在我的电脑上又找不到。想问问小伙伴们是所有的电脑都有自带的录屏功能吗?怎样才能找到电脑自带的录屏功能?” 在日常使用电脑时&#xff0…

在 Visual Studio 中设置指针星号的位置

作为一个完美主义者,如果写出来的代码,让自己感觉到不那么舒服,你需要好好研究研究,如何解决这个问题。 在写代码的过程中,我碰到了这样的一个小问题。 一直以来,我对指针的星号的位置比较敏感&#xff0…

为什么软件架构重要?

作者:[美]伦巴斯等第2章为什么软件架构重要如果架构是答案,那么问题是什么?本章主要从技术角度讨论为什么架构重要。我们将研究13个重要原因。你可以利用它们来推动新架构的创建,或者对已有系统架构进行分析和优化。1)架构可以抑制…

守正创新 聚力前行 助力量化行业高质量发展 | 峰会资料文末获取

4月1日下午,ACLUB 2023专题峰会在上海陆家嘴圆满举行,近80家业内领先机构逾百人参加会议,其中上海地区优秀量化私募管理人占比七成。 本届峰会主题为“守正创新 聚力前行——助力量化行业高质量发展”。监管机构、券商、行业专家、三方机构、…

耳朵总是听到嗡嗡的声音 这是为什么 该怎么办

为什么会莫名听到嗡嗡的声音,这是什么因素导致的,吃什么药能缓解? 耳鸣,是一种缺乏外部声源情况下,耳内或颅内出现的嗡嗡、嘶鸣、车笛、喇叭等不成形的异常声幻觉。这种情况可能是一种声音,也可能是多种声音…

day25—编程题

文章目录1.第一题1.1题目1.2涉及的相关知识1.3思路1.4解题2.第二题2.1题目2.2思路2.3解题1.第一题 1.1题目 描述: 星际战争开展了100年之后,NowCoder终于破译了外星人的密码!他们的密码是一串整数,通过一张表里的信息映射成最终…