当前位置: 首页 > news >正文

day04-LogStash扩展

1.LogStash性能不稳定(某天关闭后,再次启动就非常慢),所以后面我们用Filebeat。2.先禁用
#  geoip {
#    source => "clientip"
#  }3.在生产中要是用nignx服务或tomcat服务我们用EFK架构就可以

排查技巧观察点

LogStash报错分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

java日志查找

在这里插入图片描述

LogStash

数据映射之带宽统计案例
见昨日内容
多实例
#补充命令:
nc(netcat)命令是一个功能强大的网络工具,用于在网络连接上进行读写数据。它可以在 TCP 或 UDP 协议下工作,被广泛用于网络调试、端口扫描、数据传输等多种任务
1.启动第一个实例
[11:29:55 root@elk2:/etc/logstash/conf.d]#logstash -f 01-stdin-to-stdout.conf2.启动第二个实例
[10:36:25 root@elk2:/etc/logstash/conf.d]#logstash -f 02-file-to-stdout.conf --path.data /tmp/logstash-data#注意实验事项
1.如果不指定数据路径,则Logstash默认的数据路径在安装目录的data目录下。比如: "/usr/share/logstash/data/"
2.如果同一个节点启动了多个Logstash实例,不指定数据路径,则会报错:Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting.`------------------------------实验开始位置-----------------------------------------`	1.启动Logstash实例1
[11:31:36 root@elk2:/etc/logstash/conf.d]#vim 09-multiple-tcp-to-es.conf
input { # 监听本地的tcp端口,用于接受数据tcp {port => 7777}}  filter {mutate {remove_field => ["@version"]}}output { stdout { codec => rubydebug } elasticsearch {hosts => ["10.0.0.91:9200","10.0.0.92:9200","10.0.0.93:9200"]index => "linux-elfk-multiple-tcp-%{+yyyy.MM.dd}"}}[11:35:07 root@elk2:/etc/logstash/conf.d]#logstash -rf 09-multiple-tcp-to-es.conf 2.启动Logstash实例2 
[11:35:00 root@elk2:/etc/logstash/conf.d]#vim 10-multiple-beats-to-es.conf
input { beats {port => 8888}}  filter {mutate {remove_field => [ "@version","log","tags","agent","ecs","input" ]}}output { stdout { codec => rubydebug } elasticsearch {hosts => ["10.0.0.91:9200","10.0.0.92:9200","10.0.0.93:9200"]index => "linux-elfk-multiple-beats-%{+yyyy.MM.dd}"}}[11:36:43 root@elk2:/etc/logstash/conf.d]#logstash -rf 10-multiple-beats-to-es.conf --path.data /tmp/logstash-data3.启动filebeat 
[11:28:53 root@elk3:/etc/filebeat]#vim 10-tcp-to-logstash.yaml
filebeat.inputs:
- type: tcphost: "0.0.0.0:9000"output.logstash:hosts: ["10.0.0.92:8888"][11:50:12 root@elk3:/etc/filebeat]#rm -rf /var/lib/filebeat/
[11:50:15 root@elk3:/etc/filebeat]#filebeat -e -c 10-tcp-to-logstash.yaml4.发送测试数据到实例1
[11:28:44 root@elk1:~]#echo www.baidu.com | nc 10.0.0.92 77775.发送测试数据到filebeat 
[11:38:17 root@elk1:~]#echo www.jingdong.com | nc 10.0.0.93 9000

在这里插入图片描述

在这里插入图片描述

多分支
1.启动Logstash实例 
[12:00:26 root@elk2:/etc/logstash/conf.d]#vim 11-if-logstash.conf
input { tcp {type => "tcp"port => 7777}beats {port => 8888type => "beats"}}  filter {if [type] == "tcp" {mutate {remove_field => ["@version"]}} else {mutate {remove_field => [ "@version","log","tags","agent","ecs","input" ]}}}output { stdout { codec => rubydebug } if [type] == "tcp" {elasticsearch {hosts => ["10.0.0.91:9200","10.0.0.92:9200","10.0.0.93:9200"]index => "linux-elfk-if-tcp-%{+yyyy.MM.dd}"}}else {elasticsearch {hosts => ["10.0.0.91:9200","10.0.0.92:9200","10.0.0.93:9200"]index => "linux-elfk-if-beats-%{+yyyy.MM.dd}"}}}[12:04:48 root@elk2:/etc/logstash/conf.d]#logstash -rf 11-if-logstash.conf 2.启动filebeat实例
[11:50:12 root@elk3:/etc/filebeat]#rm -rf /var/lib/filebeat/
[11:50:15 root@elk3:/etc/filebeat]#filebeat -e -c 10-tcp-to-logstash.yaml3.发送测试数据到Filebeat
[11:28:44 root@elk1:~]#echo 11 | nc 10.0.0.92 7777
[11:38:17 root@elk1:~]#echo 22 | nc 10.0.0.93 9000echo 好好学习 | nc 10.0.0.92 7777
echo 天天k8s | nc 10.0.0.93 9000

在这里插入图片描述

在这里插入图片描述

pipeline
1.修改Logstash的配置文件[14:59:26 root@elk2:/etc/logstash/conf.d]#vim 12-pipeline-tcp-to-es.conf
input { tcp {port => 7777}}  filter {mutate {remove_field => ["@version"]}}output { stdout { codec => rubydebug } elasticsearch {hosts => ["10.0.0.91:9200","10.0.0.92:9200","10.0.0.93:9200"]index => "linux-elfk-pipeline-tcp-%{+yyyy.MM.dd}"}}[14:59:48 root@elk2:/etc/logstash/conf.d]#vim 13-pipeline-beats-to-es.conf 
input { beats {port => 8888}}  filter {mutate {remove_field => [ "@version","log","tags","agent","ecs","input" ]}}output { stdout { codec => rubydebug } elasticsearch {hosts => ["10.0.0.91:9200","10.0.0.92:9200","10.0.0.93:9200"]index => "linux-elfk-pipeline-beats-%{+yyyy.MM.dd}"}}2.修改pipeline配置文件
[14:44:49 root@elk2:/etc/logstash]#vim pipelines.yml 
- pipeline.id: tcppath.config: /etc/logstash/conf.d/12-pipeline-tcp-to-es.conf- pipeline.id: beatspath.config: /etc/logstash/conf.d/13-pipeline-beats-to-es.conf3.创建pipeline的软连接
[15:01:26 root@elk2:/etc/logstash]#mkdir /usr/share/logstash/config
[15:01:33 root@elk2:/etc/logstash]#ln -svf /etc/logstash/pipelines.yml /usr/share/logstash/config/4.启动Logstash 
[15:01:35 root@elk2:/etc/logstash]#logstash -r5.启动filebeat 
[15:03:06 root@elk3:/etc/filebeat]#rm -rf /var/lib/filebeat/
[15:04:04 root@elk3:/etc/filebeat]#filebeat -e -c 10-tcp-to-logstash.yaml6.发送测试数据
[12:14:09 root@elk1:~]#echo 好好学习 | nc 10.0.0.92 7777
[14:59:20 root@elk1:~]#echo 天天k8s | nc 10.0.0.93 9000

在这里插入图片描述

在这里插入图片描述

自定义正则
1.准备自定义的patterns
[16:09:58 root@elk2:/etc/logstash/conf.d]#mkdir patterns[16:10:01 root@elk2:/etc/logstash/conf.d]#vim patterns/linux
YEAR \d{4}
SCHOOL [a-z]{9}
CLASS [a-z0-9]{7}2.编写配置文件 
[root@elk92 conf.d]# cat 14-tcp-grok_custom_patterns-es.conf 
input { tcp {port => 7777}}  filter {grok {# 指定自定义patterns目录,会自动加载该目录下的所有文件内容相关的patterns模式patterns_dir => ["/etc/logstash/conf.d/patterns"]match => { "message" => "%{YEAR:year}北京欢迎您: https://www.%{SCHOOL:School}.com 班级: %{CLASS:cLaSs}" }}}output { stdout { codec => rubydebug } # elasticsearch {
#      hosts => ["10.0.0.91:9200","10.0.0.92:9200","10.0.0.93:9200"]
#      index => "linux-elfk-grok-custom-%{+yyyy.MM.dd}"
#  }}[16:12:10 root@elk2:/etc/logstash/conf.d]#logstash -rf 14-tcp-grok_custom_patterns-es.conf 3.发送测试数据 
[root@elk93 ~]# echo "北京欢迎您: https://www.beijing.com 班级: linux" | nc 10.0.0.92 77774.接收的数据效果如下:
{"port" => 48110,"@timestamp" => 2024-10-30T08:13:44.725Z,"host" => "10.0.0.93","@version" => "1","tags" => [[0] "_grokparsefailure"],"message" => "北京欢迎您: https://www.beijing.com 班级: linux"
}
JVM优化
1.查看Logstash实例启动时占用的heap堆内存大小
[16:15:05 root@elk2:~]#ps -ef | grep logstash
root        2026    1053 99 16:15 pts/0    00:00:36 /usr/share/elasticsearch/jdk/bin/java -Xms1g -Xmx1g2.修改Logstash的堆内存大小
[16:15:02 root@elk2:~]#vim /etc/logstash/jvm.options 
## JVM configuration# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space#-Xms1g
#-Xmx1g-Xms256m
-Xmx256m3.启动Logstash实例测试 
[16:14:53 root@elk2:/etc/logstash/conf.d]#logstash -rf 14-tcp-grok_custom_patter4.查看JVM占用内存情况
[16:16:57 root@elk2:~]#ps -ef | grep logstash
root        2123    1053 99 16:17 pts/0    00:00:05 /usr/share/elasticsearch/jdk/bin/java -Xms128m -Xmx128m#注意:出现java.lang.OutOfMemoryError: Java heap space
表示内存不足,仅需要添加内存即可,工作中如何不设置Logstash的堆内存大小,默认为1GB。
自定义Nginx的json日志格式
1.清空nginx访问日志
[16:38:12 root@elk3:~]# > /var/log/nginx/access.log2.修改nginx的配置文件
[16:38:13 root@elk3:~]#vim /etc/nginx/nginx.conf ...# 注释原有的配置行# access_log /var/log/nginx/access.log;log_format nginx_json '{"@timestamp":"$time_iso8601",''"host":"$server_addr",''"clientip":"$remote_addr",''"SendBytes":$body_bytes_sent,''"responsetime":$request_time,''"upstreamtime":"$upstream_response_time",''"upstreamhost":"$upstream_addr",''"http_host":"$host",''"uri":"$uri",''"domain":"$host",''"xff":"$http_x_forwarded_for",''"referer":"$http_referer",''"tcp_xff":"$proxy_protocol_addr",''"http_user_agent":"$http_user_agent",''"status":"$status"}';access_log  /var/log/nginx/access.log  nginx_json;
...[16:39:49 root@elk3:~]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful[16:39:56 root@elk3:~]#systemctl reload nginx3.访问测试 
[15:52:19 root@elk1:~]#curl 10.0.0.93
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>4.查看日志格式
[16:40:12 root@elk3:~]#tail -f /var/log/nginx/access.log
{"@timestamp":"2024-10-30T16:40:26+08:00","host":"10.0.0.93","clientip":"10.0.0.91","SendBytes":612,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"10.0.0.93","uri":"/index.nginx-debian.html","domain":"10.0.0.93","xff":"-","referer":"-","tcp_xff":"-","http_user_agent":"curl/7.81.0","status":"200"}5.使用filebeat采集nginx访问日志
[16:42:49 root@elk3:/etc/filebeat]#vim 11-log-to-es.yamlfilebeat.inputs:
- type: logpaths:- /var/log/nginx/access.log# 解析message字段的JSON格式,并将键值对放在顶级字段中json.keys_under_root: true#output.console:
#  pretty: trueoutput.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"] index: "linux-nginx-json-%{+yyyy.MM.dd}" setup.ilm.enabled: false
setup.template.name: "linux-nginx"
setup.template.pattern: "linux-nginx*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 3index.number_of_replicas: 0[16:43:54 root@elk3:/etc/filebeat]#rm -rf /var/lib/filebeat/
[16:44:18 root@elk3:/etc/filebeat]#filebeat -e -c 11-log-to-es.yaml6.kibana查看数据
[16:40:26 root@elk1:~]#curl 10.0.0.93/beijing.html

在这里插入图片描述

在这里插入图片描述

程序名词

- SDK:英文全称为"Software development kit",表示软件开发工具包,指的是程序员所需的开发环境工具包,比如Java,Go,C++,Python,Ruby,PHP等程序员依赖的开发环境。- JDK:英文全称为: Java Development Kit ,表示Java开发的工具包集合,针对Java开发员的软件开发工具包。JDK就是典型的Java程序员所使用的SDK。用于编写"*.java"文件,对应的编译程序是"javac"工具。- JRE:英文全称为: Java Runtime Environment,表示Java的运行环境,相比JDK而言更轻量级,软件包会更小,只能保证程序能够运行,缺少开发的工具包。- JVM:英文全称为: Java Virtual Machine,表示Java的虚拟机,一般用于执行Java程序编译后的字节码文件"*.class",对应的运行程序是"java"工具。#JVM虚拟机又细分为多个存储区域:
- 对外内存 
- 方法区
- ...
- 堆内存- 伊甸区:表示对象产生的内存。- 幸存区:经过GC时在伊甸区没有结束生命周期的对象会经过幸存区过滤到年老区。- 年老区:长期存在的对象。

项目篇: ElasticStack的RBAC实战

2.配置ES集群加密
2.1 生成证书文件
[17:01:21 root@elk1:~]#/usr/share/elasticsearch/bin/elasticsearch-certutil cert -out /etc/elasticsearch/elastic-certificates.p12 -pass ""
........
Note: Generating certificates without providing a CA certificate is deprecated.A CA certificate will become mandatory in the next major release.Certificates written to /etc/elasticsearch/elastic-certificates.p12This file should be properly secured as it contains the private key for 
your instance.This file is a self contained file and can be copied and used 'as is'
For each Elastic product that you wish to configure, you should copy
this '.p12' file to the relevant configuration directory
and then follow the SSL configuration instructions in the product guide.[17:33:28 root@elk1:~]#ll /etc/elasticsearch/elastic-certificates.p12 
-rw------- 1 root elasticsearch 3596 Oct 30 17:33 /etc/elasticsearch/elastic-certificates.p122.2 同步证书文件到其他节点
[17:33:52 root@elk1:~]#scp /etc/elasticsearch/elastic-certificates.p12 10.0.0.92:/etc/elasticsearch/   
[17:34:10 root@elk1:~]#scp /etc/elasticsearch/elastic-certificates.p12 10.0.0.93:/etc/elasticsearch/2.3 修改ES集群的配置文件
[17:34:59 root@elk1:~]#vim /etc/elasticsearch/elasticsearch.yml 
........
# 在最后一行添加以下内容
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p122.4 同步ES配置文件到其他节点
[17:35:25 root@elk1:~]#scp /etc/elasticsearch/elasticsearch.yml 10.0.0.92:/etc/elasticsearch/[17:35:44 root@elk1:~]#scp /etc/elasticsearch/elasticsearch.yml 10.0.0.93:/etc/elasticsearch/2.5 "ES集群所有节点"修改证书文件的权限信息
chown elasticsearch:elasticsearch /etc/elasticsearch/elastic-certificates.p122.6 "ES集群所有节点"重启ES服务
systemctl restart elasticsearch.service 2.7 生成随机密码【请保留密码,下一个步骤要用!】
[17:37:53 root@elk1:~]#/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]yChanged password for user apm_system
PASSWORD apm_system = 4Am23FzpVOxMeKK4NVYdChanged password for user kibana_system
PASSWORD kibana_system = CJlMQpD1MxNNK6m4FVI9Changed password for user kibana
PASSWORD kibana = CJlMQpD1MxNNK6m4FVI9Changed password for user logstash_system
PASSWORD logstash_system = nvSvRzHYsQbhQJu2pi3JChanged password for user beats_system
PASSWORD beats_system = tGiTVdjelFHGnzo8e0ZfChanged password for user remote_monitoring_user
PASSWORD remote_monitoring_user = tSW5yxDEo1pnn3lLLJghChanged password for user elastic
PASSWORD elastic = OSUzxjrIEq9HRcbj4bKB2.8 验证集群是否正常【注意,elastic是ES集群的管理员用户,密码根据自己的系统生成使用即可】
[17:43:06 root@elk2:~]#curl -u elastic:OSUzxjrIEq9HRcbj4bKB 10.0.0.91:9200/_cat/nodes
10.0.0.92 36 83 10 0.15 0.24 0.16 cdfhilmrstw * elk2
10.0.0.93 27 82  9 0.04 0.13 0.09 cdfhilmrstw - elk3
10.0.0.91 13 96  5 0.00 0.08 0.13 cdfhilmrstw - elk1#配置kibana访问ES加密集群
1.修改kibana的配置文件
[17:45:03 root@elk1:~]#vim /etc/kibana/kibana.yml
...........
# 根据你自己环境生成的"kibana_system"的随机密码做相应的修改即可
elasticsearch.username: "kibana_system"
elasticsearch.password: "CJlMQpD1MxNNK6m4FVI9"2.重启kibana服务
[17:51:28 root@elk1:~]#systemctl restart kibana
[17:51:48 root@elk1:~]#ss -tnl|grep  5601
LISTEN 0      511          0.0.0.0:5601      0.0.0.0:*   3.访问kibana的WebUI
10.0.0.91:5601将"elastic"的用户名和密码进行修改!

在这里插入图片描述

修改用户密码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

- 数据映射ELFK架构关于带宽统计案例	* 
- Logstash的多实例 				*** 
- logstash的多分支语法 			** 
- logstash的pipeline技术 		*****
- grok自定义匹配模式patterns	* 
- logstash的JVM配置优化		*** 
- 自定义nginx的访问日志格式	** 
- ES集群加密配置			*****
- kibana访问ES加密集群并修改elastic管理员密码	*****
- 故障排查技巧	*****- 1.日志界别INFO WARNFATAL- 2.找关键字ERROR- 3.对于java日志查找方式从日志的最下网上看,找at上面没有at的行就是报错信息- 4.日志查找方式- 通过安装目录	/var/log/elasticsearch/ES集群名称.log - 启动脚本查看systemctl cat 启动脚本服务的名称

相关文章:

day04-LogStash扩展

1.LogStash性能不稳定&#xff08;某天关闭后&#xff0c;再次启动就非常慢&#xff09;&#xff0c;所以后面我们用Filebeat。2.先禁用 # geoip { # source > "clientip" # }3.在生产中要是用nignx服务或tomcat服务我们用EFK架构就可以排查技巧观察点 LogS…...

Linux云计算 |【第五阶段】CLOUD-DAY4

主要内容&#xff1a; Linux容器基础、安装Docker、镜像管理、容器管理、容器部署应用 一、容器介绍 容器&#xff08;Container&#xff09; 是一种轻量级的虚拟化技术&#xff0c;用于在操作系统级别隔离应用程序及其依赖项。容器允许开发者在同一台主机上运行多个独立的应…...

为什么QNAP威联通NAS的APP center无法安装APP?

创作立场&#xff1a;原创不易&#xff0c;拒绝搬运~ hello大家好&#xff0c;我是你们的老伙伴&#xff0c;稳重的大王~ 如题&#xff0c;大王带你一起来排查一下&#xff0c;可能遇到的问题。如有帮助&#xff0c;请给个关注鼓励&#xff0c;互谢~ 1 首先&#xff0c;安装…...

Kafka 基础入门

文章内容是学习过程中的知识总结&#xff0c;如有纰漏&#xff0c;欢迎指正 文章目录 前言 1. 核心概念 1.1 Producer 1.2 broker 1.3 consumer 1.4 zookeeper 1.5 controller 1.6 Cluster 2. 逻辑组件 2.1 Topic 2.2 Partition 2.3 Replication 2.4 leader & follower 3. …...

网络问题排查

1.ping 域名发现响应时间很长&#xff0c;怎么分析卡在哪里&#xff1f; 当你在 Linux 系统中 ping 一个域名并发现响应时间很长时&#xff0c;可能存在于多个环节的问题。以下是一些步骤和工具&#xff0c;可以帮助你分析和诊断问题出在哪里&#xff1a; 1. 检查 DNS 解析时…...

webGlL变量的声明与使用

抢先观看&#xff1a; 变量的声明格式&#xff1a;<存储限定符><类型限定符><变量名> 存储限定符&#xff1a;const, attribute, uniform, varying, buffer。 类型限定符&#xff1a;void, bool, int, float, double, vec2, vec3, vec4, mat2, mat3, mat4, s…...

qt的c++环境配置和c++基础【正点原子】嵌入式Qt5 C++开发视频

QT c 环境配置和c基础 c环境配置和工程创建  1.配置步骤  2.新建qt 工程目录和工程  3.重启qt后打开最近的qt项目 c基础-类和对象  1.什么是类和对象    A.类的定义    B.类的结构表示    C.类的访问权限    D.对象的定义    E.类和对象的关系 2.类…...

中间件安全(三)

本文仅作为学习参考使用&#xff0c;本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 本文主要讲解apache命令执行漏洞&#xff08;cve_2021_41773&#xff09;。 靶场链接&#xff1a;Vulfocus 漏洞威胁分析平台 一&#xff0c;漏洞简介。 cve_2021_41773漏洞…...

唱戏机上的内存卡怎么加密?教你两个方法

唱戏机是中老年人群休闲时光的好伴侣。然而&#xff0c;很多唱戏机商家都会面临一个困扰&#xff1a;如何保护唱戏机上内存卡中的音频&#xff0c;避免他人随意复制呢&#xff1f;今天这篇文章看完&#xff0c;问题将迎刃而解~ 数据隐藏 将内存卡插到电脑上&#xff0c;对卡里…...

MyBatis 源码分析 - SQL执行过程(三)之 ResultSetHandler

MyBatis的SQL执行过程 在前面一系列的文档中&#xff0c;我已经分析了 MyBatis 的基础支持层以及整个的初始化过程&#xff0c;此时 MyBatis 已经处于就绪状态了&#xff0c;等待使用者发号施令了 那么接下来我们来看看它执行SQL的整个过程&#xff0c;该过程比较复杂&#xff…...

webpack解决使用window.open方法打开history路由页面提示404的问题

问题: 一般情况下应该使用history.push(/ssh)打开history路由页面 但项目中使用window.open(/ssh),然后使用new WebSocket进行通信 开发环境下启动项目后,/ssh页面打开却显示cannot get /ssh,控制台提示404 排查问题: 在React开发环境中使用 window.open 打开路由页面时&a…...

怎么把视频的声音转化为文字免费?7个小妙招,视频转文字轻松解决!

您是否也曾在做会议记录时&#xff0c;希望能免费把视频的声音转化为文字呢&#xff1f;在如今我们的办公生活中&#xff0c;用视频记录会议、记录的生活似乎已经成为了我们一项必备技能&#xff0c;但也并非所有人都能轻松获取视频中的信息。尤其是有着听力障碍的人群&#xf…...

【无标题】2024年第五届 MathorCup 数学应用挑战赛——大数据竞赛赛题

2024年第五届 MathorCup 数学应用挑战赛——大数据竞赛赛题已发布~&#xff0c;本届初赛时间为&#xff1a;2024年10月25日18:00至2024年11月1日20:00。本次赛题分为A&#xff0c;B两道&#xff0c;所有参赛队从赛道 A、B 中任选一题作答。在报名系统内选择自己队伍的赛道时&am…...

新能源行业必会基础知识---电力现货问答---第9问---什么是输电权?什么是输电权市场?

新能源行业必会基础知识-----电力现货问答-----主目录-----持续更新https://blog.csdn.net/grd_java/article/details/142909208 虽然这本书已经出来有几年了&#xff0c;现货市场已经产生了一定变化&#xff0c;但是原理还是相通的。还是推荐大家买来这本书进行阅读观看&#…...

视频文案素材获取渠道分享

做视频时为文案发愁&#xff1f;别担心&#xff01;今天为大家推荐几个实用的视频文案素材网站&#xff0c;让你灵感爆棚&#xff0c;轻松创作文案。 蛙学网 首先要推荐的是蛙学网。作为专业短视频素材库&#xff0c;不仅有修牛蹄、解压视频等热门素材&#xff0c;还为短视频创…...

尚硅谷-react教程-求和案例-数据共享(下篇)-完成数据共享-笔记

#1024程序员节&#xff5c;征文# public/index.html <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>redux</title></head><body><div id"root"></div></body> </html&…...

VB中如何创建和使用自定义控件

在Visual Basic&#xff08;VB&#xff09;中&#xff0c;创建和使用自定义控件是一个高级功能&#xff0c;它允许开发者根据特定需求创建具有独特行为和外观的控件。以下是在VB中创建和使用自定义控件的一般步骤&#xff1a; 一、创建自定义控件 打开VB开发环境&#xff1a; …...

Java继承的super关键字

在Java中&#xff0c;super关键字用于调用父类的构造方法、访问父类的成员变量和成员方法。 调用父类的构造方法&#xff1a; 在子类的构造方法中&#xff0c;可以使用super关键字来调用父类的构造方法。这可以帮助子类初始化从父类继承的属性。调用父类的构造方法要使用以下语…...

3D点云与2D图像的相互转换:2D图像对应像素的坐标 转为3D空间的对应坐标

2d ----> 3d 对应像素到空间坐标的转换 参考&#xff1a;深度相机&#xff0c;通过2d检测得到目标坐标系的3d检测框_深度图到相机坐标-CSDN博客...

查找算法简记

一、简单查找&#xff08;顺序查找&#xff09; 最基本的查找&#xff0c;相当于遍历&#xff0c;从头到尾一个一个找。 二、二分查找 1、简述 二分查找的输入是一个有序的元素列表。 如果要查找的元素包含在列表中&#xff0c;二分查找返回其位置&#xff1b; 否则返回null。…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...