Day03-索引模板,DSL语句,集群迁移API,ES集群状态统计API,KQL语句及分片重路由API实战

Day03-索引模板,DSL语句,集群迁移API,ES集群状态统计API,KQL语句及分片重路由API实战

  • 1、索引模板
    • 1.1 什么是索引模板
    • 1.2 查看索引模板
    • 1.3 创建/修改索引模板
    • 1.4 删除索引模板
  • 2、ES的DSL语句查询
    • 2.1 什么是DSL
    • 2.2 全文检索-match查询
    • 2.3 精确匹配-match_phrase查询
    • 2.4 全量查询-match_all查询
    • 2.5 分页查询-size-form
    • 2.6 使用"\_source"查看的指定字段
    • 2.7 查询存在某个字段的文档-exists
    • 2.8 语法高亮-highlight
    • 2.9 基于字段进行排序查询-sort
    • 2.10 多条件查询-bool
    • 2.11 过滤查询(范围查询-filter)
    • 2.12 精确匹配多个值-terms
    • 2.13 多词搜索
    • 2.14 权重案例
    • 2.15 聚合查询
  • 3、ES集群迁移实战
  • 4、ES集群常用的API
    • 4.1 ES集群健康状态API(health)
    • 4.2 ES集群的设置及优先级(settings)
    • 4.3 集群状态API(state)
    • 4.4 集群统计API
    • 4.5 查看集群的分片分配情况(allocation)
    • 4.6 集群分片重路由API(reroute)

昨日内容回顾:

  • ES集群的常见术语

    • index

    • shard

    • replica

    • document

    • 主分片和副本分片

      • primary shard: read wirte (rw)
      • replica shard: read only (ro)
  • 索引的管理

    • PUT http://10.0.0.101:9200/index_name
    • POST http://10.0.0.101:9200/index_name/_settings
    • DELETE http://10.0.0.101:9200/index_name
    • GET http://10.0.0.101:9200/index_name
    • GET http://10.0.0.101:9200/_cat/indices
    • POST http://10.0.0.101:9200/index_name/_close
    • POST http://10.0.0.101:9200/index_name/_open
    • POST http://10.0.0.101:9200/_alias
  • 文档的管理

    • POST http://10.0.0.101:9200/index_name/_doc[/document_id]
    • DELETE http://10.0.0.101:9200/index_name/_doc/document_id
    • POST http://10.0.0.101:9200/index_name/_doc/document_id/_update
    • GET http://10.0.0.101:9200/index_name/_doc/document_id
    • GET http://10.0.0.101:9200/index_name/_search
  • 文档的批量操作

    • POST http://10.0.0.101:9200/_bulk
    • POST http://10.0.0.101:9200/_mget
  • 自定义数据类型:

    • date
    • ip
    • keyword
    • text
    • double
    • long
  • 中文分词器

    • IK
    • 支持自定义词典
  • kibana的部署

    • 索引管理
    • 开发工具使用
    • 官方样例数据安装卸载

1、索引模板

1.1 什么是索引模板

指的是创建索引的一种方式。用户可以根据需求自定义对应的索引模板。

1.2 查看索引模板

(1)查看所有的索引模板

GET http://10.0.0.103:9200/_template

(2)查看单个索引模板

GET http://10.0.0.103:9200/_template/.monitoring-es

1.3 创建/修改索引模板

POST http://10.0.0.103:9200/_template/oldboyedu-linux85
{"aliases": {"DBA": {},"SRE": {},"K8S": {}},"index_patterns": ["oldboyedu-linux85*"],"settings": {"index": {"number_of_shards": 3,"number_of_replicas": 0}},"mappings": {"properties":{"ip_addr": {"type": "ip"},"access_time": {"type": "date"},"address": {"type" :"text"},"name": {"type": "keyword"}}}
}

1.4 删除索引模板

DELETE http://10.0.0.103:9200/_template/oldboyedu-linux85

2、ES的DSL语句查询

2.1 什么是DSL

Elasticsearch 提供了基于JSON的完整 Query DSL(Domain Specific Language,领域特定语言)来定义查询。

准备数据:
(1)创建索引添加映射关系

PUT http://10.0.0.101:9200/oldboyedu-linux85-shopping
{"mappings": {"properties": {"item": {"type": "text"},"title": {"type": "text"},"price": {"type": "double"},"type": {"type": "keyword"},"group": {"type": "long"},"auther": {"type": "text"},"birthday": {"type": "date","format": "yyyy-MM-dd"},"province": {"type": "keyword"},"city": {"type": "keyword"},"remote_ip": {"type": "ip"}}}
}

(2)导入数据

POST 10.0.0.101:9200/_bulk

参考"Linux85期商品收集作业.json"内容即可。

2.2 全文检索-match查询

(1)查询彭斌收集的数据

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match":{"auther":"彭斌"}}
}

2.3 精确匹配-match_phrase查询

(1)查询张宇杰的数据

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"张宇杰"}}
}

2.4 全量查询-match_all查询

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match_all": {}}
}

2.5 分页查询-size-form

了解原理

image-20240529135319722

(1)每页显示3条数据,查询第四页

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"张宇杰"}},"size": 3,"from":9
}

(2)查询第六组数据,每页显示7条数据,查询第9页

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match":{"group":6}},"size":7,"from": 56
}相关参数说明:size:指定每页显示多少条数据,默认值为10.from:指定跳过数据偏移量的大小,默认值为0,即默认看第一页。查询指定页码的from值 = "(页码 - 1) * 每页数据大小(size)"温馨提示:生产环境中,不建议深度分页,百度的页码数量控制在76页左右。

2.6 使用"_source"查看的指定字段

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"丘鸿彬"}},"_source":["title","auther","price"]
}

2.7 查询存在某个字段的文档-exists

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"exists" : {"field": "hobby"}}
}

2.8 语法高亮-highlight

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match_phrase": {"title": "孙子兵法"}},"highlight": {"pre_tags": ["<span style='color:red;'>"],"post_tags": ["</span>"],"fields": {"title": {}}}
}相关参数说明:highlight:设置高亮。fields:指定对哪个字段进行语法高亮。pre_tags:自定义高亮的前缀标签。post_tags:自定义高亮的后缀标签。

2.9 基于字段进行排序查询-sort

01-升序查询最便宜商品及价格

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"于萌"}},"sort":{"price":{"order": "asc"}},"size":1
}

02-降序查询最贵的商品及价格

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"于萌"}},"sort":{"price":{"order": "desc"}},"size":1
}相关字段说明:sort:基于指定的字段进行排序。此处为指定的是"price"order:指定排序的规则,分为"asc"(升序)"desc"(降序)

2.10 多条件查询-bool

01-查看作者是于萌且商品价格为24.90

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match_phrase": {"auther": "于萌"}},{"match": {"price": 24.90}}]}}
}

02-查看作者是于萌或者是高超的商品并降序排序

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"should": [{"match_phrase": {"auther": "于萌"}},{"match_phrase": {"auther": "高超"}}]}},"sort":{"price":{"order": "desc"}}
}

03-查看作者是于萌或者是高超且商品价格为168或者198

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"should": [{"match_phrase": {"auther": "于萌"}},{"match_phrase": {"auther": "高超"}},{"match": {"price": 168.00}},{"match": {"price": 198.00}}],"minimum_should_match": "60%"}}
}

04-查看作者不是于萌或者是高超且商品价格为168或者198的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must_not": [{"match_phrase": {"auther": "于萌"}},{"match_phrase": {"auther": "高超"}}],"should": [{"match": {"price": 168.00}},{"match": {"price": 198.00}}],"minimum_should_match": 1}}
}

05-综合案例

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match_phrase": {"title": "零食"}}],"must_not": [{"match_phrase": {"auther": "于萌"}},{"match_phrase": {"auther": "高超"}}],"should": [{"match": {"price": 168.00}},{"match": {"price": 9.9}},{"match": {"price": 19.9}}],"minimum_should_match": 1}},"highlight": {"pre_tags": ["<span style='color:red;'>"],"post_tags": ["</span>"],"fields": {"title": {}}},"_source": ["title","price","auther"],"sort": {"price": {"order": "desc"}}
}

2.11 过滤查询(范围查询-filter)

01-查询3组成员产品价格3599到10500的商品的最便宜的3个

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match": {"group": 3}}],"filter": {"range": {"price": {"gte": 3599,"lte": 10500}}}}},"sort": {"price": {"order": "asc"}},"size": 3
}

02-查询2,4,6这3个组的最贵的3个产品且不包含酒的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"bool":{"must_not":[{"match":{"title": "酒"}}],"should": [{"match":{"group":2}},{"match":{"group":4}},{"match":{"group":6}}]}},"sort":{"price":{"order": "desc"}},"size":3
}

2.12 精确匹配多个值-terms

01-查询商品价格为9.9和19.8的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"terms": {"price": [9.9,19.9]}}
}

2.13 多词搜索

01-多词搜索包含"小面包"关键字的所有商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match": {"title": {"query": "小面包","operator": "and"}}}]}},"highlight": {"pre_tags": ["<h1>"],"post_tags": ["</h1>"],"fields": {"title": {}}}
}

2.14 权重案例

01-权重案例

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match": {"title": {"query": "小面包","operator": "and"}}}],"should": [{"match": {"title": {"query": "下午茶","boost": 5}}},{"match": {"title": {"query": "良品铺子","boost": 2}}}]}},"highlight": {"pre_tags": ["<h1>"],"post_tags": ["</h1>"],"fields": {"title": {}}}
}

2.15 聚合查询

01-统计每个组收集的商品数量

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"aggs": {"oldboyedu_group": {"terms": {"field": "group"}}},"size": 0
}

02-统计2组最贵的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match": {"group": 2}},"aggs": {"oldboyedu_max_shopping": {"max": {"field": "price"}}},"sort":{"price":{"order":"desc"}},"size": 1
}

03-统计3组最便宜的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match": {"group": 3}},"aggs": {"oldboyedu_min_shopping": {"min": {"field": "price"}}},"sort":{"price":{"order": "asc"}},"size": 1
}

04-统计4组商品的平均价格

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match": {"group": 4}},"aggs": {"oldboyedu_avg_shopping": {"avg": {"field": "price"}}},"size": 0
}

05-统计买下5组所有商品要多少钱

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match": {"group":5}},"aggs": {"oldboyedu_sum_shopping": {"sum": {"field": "price"}}},"size": 0
}

kibana的KQL语句

image-20240529162611254

3、ES集群迁移实战

(1)搭建两套多实例集群

[root@elk101.oldboyedu.com ~]# curl 10.0.0.101:9200/_cat/nodes
10.0.0.102 57 88 1 0.09 0.08 0.06 cdfhilmrstw * elk102.oldboyedu.com
10.0.0.103 64 97 1 0.01 0.05 0.11 cdfhilmrstw - elk103.oldboyedu.com
10.0.0.101 71 97 0 0.00 0.01 0.05 cdfhilmrstw - elk101.oldboyedu.com[root@elk101.oldboyedu.com ~]# curl 10.0.0.101:19200/_cat/nodes
10.0.0.102 49 88 0 0.09 0.08 0.06 mdi - elk102.oldboyedu.com
10.0.0.101 51 97 0 0.00 0.01 0.05 mdi * elk101.oldboyedu.com
10.0.0.103 61 97 0 0.01 0.05 0.11 mdi - elk103.oldboyedu.com

(2)同集群迁移实战

POST http://10.0.0.103:9200/_reindex
{"source": {"index": "oldboyedu-linux85-shopping"},"dest": {"index": "oldboyedu-linux85-shopping-new"}
}

(3)不同集群迁移

3.1 elk101修改配置文件

vim /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml
...
# 添加如下一行代码,表示添加远程主机的白名单,用于数据迁移信任的主机。
reindex.remote.whitelist: "10.0.0.*:19200"推荐阅读https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docs-reindex.html

3.2 elk101同步数据

data_rsync.sh /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml

3.3 所有节点重启ES7服务

systemctl restart es7

3.4 迁移数据

POST http://10.0.0.103:9200/_reindex
{"source": {"index": "oldboyedu-linux85-student","remote": {"host": "http://10.0.0.101:19200"},"query": {"bool": {"filter": {"range": {"age": {"gt": 25}}}}}},"dest": {"index": "oldboyedu-linux85-student-jiaoshi07"}
}

3.5 验证数据

GET/POST 10.0.0.101:9200/oldboyedu-linux85-student-jiaoshi07/_search

4、ES集群常用的API

4.1 ES集群健康状态API(health)

image-20240529170944804

(1)安装jq工具

yum -y install epel-release
yum -y install jq

(2)测试取数据

curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq
curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq .status
curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq .active_shards_percent_as_number

相关参数说明:

cluster_name集群的名称。
status集群的健康状态,基于其主分片和副本分片的状态。ES集群有以下三种状态:green所有分片都已分配。yellow所有主分片都已分配,但一个或多个副本分片未分配。如果集群中的某个节点发生故障,则在修复该节点之前,某些数据可能不可用。red一个或多个主分片未分配,因此某些数据不可用。这可能会在集群启动期间短暂发生,因为分配了主分片。timed_out是否在参数false指定的时间段内返回响应(默认情况下30秒)。number_of_nodes集群内的节点数。number_of_data_nodes作为专用数据节点的节点数。active_primary_shards可用主分片的数量。active_shards可用主分片和副本分片的总数。relocating_shards正在重定位的分片数。initializing_shards正在初始化的分片数。unassigned_shards未分配的分片数。delayed_unassigned_shards分配因超时设置而延迟的分片数。number_of_pending_tasks尚未执行的集群级别更改的数量。number_of_in_flight_fetch未完成的提取次数。task_max_waiting_in_queue_millis自最早启动的任务等待执行以来的时间(以毫秒为单位)。active_shards_percent_as_number集群中活动分片的比率,以百分比表示。

4.2 ES集群的设置及优先级(settings)

如果您使用多种方法配置相同的设置,Elasticsearch 会按以下优先顺序应用这些设置:

(1)Transient setting(临时配置,集群重启后失效)

(2)Persistent setting(持久化配置,集群重启后依旧生效)

(3)elasticsearch.yml setting(配置文件)

(4)Default setting value(默认设置值)

(1)查询集群的所有配置信息

GET http://10.0.0.103:9200/_cluster/settings?include_defaults=true&flat_settings=true 

(2)修改集群的配置信息

PUT http://10.0.0.103:9200/_cluster/settings
{"transient": {"cluster.routing.allocation.enable": "none"}
}

相关参数说明:

"cluster.routing.allocation.enable":"all":允许所有分片类型进行分配。"primaries"仅允许分配主分片。"new_primaries"仅允许新创建索引分配主分片。"none":不允许分配任何类型的分配。参考链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-get-settings.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-update-settings.html

4.3 集群状态API(state)

集群状态是一种内部数据结构,它跟踪每个节点所需的各种信息,包括:
(1)集群中其他节点的身份和属性
(2)集群范围的设置
(3)索引元数据,包括每个索引的映射和设置
(4)集群中每个分片副本的位置和状态

(1)查看集群的状态信息

GET http://10.0.0.103:9200/_cluster/state

(2)只查看节点信息。

GET http://10.0.0.103:9200/_cluster/state/nodes

(3)查看nodes,version,routing_table这些信息,并且查看以"oldboyedu*"开头的所有索引

http://10.0.0.103:9200/_cluster/state/nodes,version,routing_table/oldboyedu*推荐阅读:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-state.html

4.4 集群统计API

Cluster Stats API 允许从集群范围的角度检索统计信息。返回基本索引指标(分片数量、存储大小、内存使用情况)和有关构成集群的当前节点的信息(数量、角色、操作系统、jvm 版本、内存使用情况、cpu 和已安装的插件)。

(1)查看统计信息

GET http://10.0.0.103:9200/_cluster/stats
推荐阅读:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-stats.html

4.5 查看集群的分片分配情况(allocation)

集群分配解释API的目的是为集群中的分片分配提供解释。

对于未分配的分片,解释 API 提供了有关未分配分片的原因的解释。

对于分配的分片,解释 API 解释了为什么分片保留在其当前节点上并且没有移动或重新平衡到另一个节点。

当您尝试诊断分片未分配的原因或分片继续保留在其当前节点上的原因时,此 API 可能非常有用,而您可能会对此有所期待。

(1)分析teacher索引的0号分片未分配的原因。

GET http://10.0.0.101:9200/_cluster/allocation/explain
{"index": "teacher","shard": 0,"primary": true
}推荐阅读:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-allocation-explain.html

4.6 集群分片重路由API(reroute)

reroute 命令允许手动更改集群中各个分片的分配。

例如,可以将分片从一个节点显式移动到另一个节点,可以取消分配,并且可以将未分配的分片显式分配给特定节点。

(1)将"oldboyedu-linux85-student-jiaoshi07"索引的0号分片从elk102节点移动到elk101节点。

POST http://10.0.0.101:9200/_cluster/reroute
{"commands": [{"move": {"index": "oldboyedu-linux85-student-jiaoshi07","shard": 0,"from_node": "elk102.oldboyedu.com","to_node": "elk101.oldboyedu.com"}}]
}

(2)取消副本分片的分配,其副本会重新初始化分配。

POST http://10.0.0.101:9200/_cluster/reroute
{"commands": [{"cancel": {"index": "oldboyedu-linux85-student-jiaoshi07","shard": 0,"node": "elk103.oldboyedu.com"}}]
}推荐阅读:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-reroute.html

作业:
(1)完成课堂所有练习及思维导图;
(2)调研ES6迁移数据到ES7的解决方案;

扩展作业:
使用granfana展示ES数据。

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

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

相关文章

WPF透明置顶窗口wine适配穿透问题解决

一、透明窗口全屏时&#xff0c;鼠标不穿透 问题描述 我有一个透明窗口&#xff0c;它是一个全屏置顶窗口&#xff0c;窗口里面有一个工具条&#xff0c;可以通过鼠标拖动工具条的位置&#xff0c;程序启动后&#xff0c;在不点击工具条的时候&#xff0c;鼠标是可以穿透的&a…

tusimple车道线检测 标注自己的数据集

一、打开labelme工具进行数据标注 二、数据格式转换 2.1 标签转换 运行Anaconda Prompt&#xff0c;进入json标签文件所在目录&#xff0c;逐个转换&#xff0c;分布运行 labelme_json_to_dataset 0000.json labelme_json_to_dataset 0001.json labelme_json_to_dataset 000…

LLaMA 模型

大模型LLaMA详解 LLaMa系列模型详解&#xff08;原理介绍、代码解读&#xff09;&#xff1a;LLaMa LLaMa系列模型详解&#xff08;原理介绍、代码解读&#xff09;&#xff1a;LLaMA 2 LLaMa系列模型详解&#xff08;原理介绍、代码解读&#xff09;&#xff1a;LLaMA 3

uniapp小程序连接蓝牙设备

uniapp小程序连接蓝牙设备 一、初始化蓝牙模块二、开始搜索三、连接蓝牙四、监听特征值变化五、调用示例utils.js文件 一、初始化蓝牙模块 这一步是必须的&#xff0c;在开发项目过程中&#xff0c;初始化蓝牙模块之后&#xff0c;紧接着就要开启一些监听的api&#xff0c;供后…

redis查询慢,你们是如何查询优化?(运维篇3)

1、查看是否写入了bigkey 如果你查询慢日志发现&#xff0c;并不是复杂度过高的命令导致的&#xff0c;而都是 SET / DEL 这种简单命令出现在慢日志中&#xff0c;那么你就要怀疑你的实例否写入了 bigkey。 Redis 在写入数据时&#xff0c;需要为新的数据分配内存&#xff0c;相…

2024年公共文化与社会服务国际会议(ICPCSS 2024)

2024年公共文化与社会服务国际会议 2024 International Conference on Public Culture and Social Services 【1】会议简介 2024年公共文化与社会服务国际会议是一个集学术性、实践性和国际性于一体的盛会。我们期待与您共同探讨公共文化与社会服务的未来发展方向&#xff0c;为…

基于STM32设计的智能婴儿床(ESP8266局域网)_2024升级版_180

基于STM32设计的智能婴儿床(采用STM32F103C8T6)(180) 文章目录 一、设计需求【1】项目功能介绍【2】程序最终的运行逻辑【3】硬件模块组成【4】ESP8266模块配置【5】上位机开发思路【6】系统功能模块划分1.2 项目开发背景1.3 开发工具的选择1.4 系统框架图1.5 系统原理图1.6 硬…

【linux】服务器设置所有用户创建虚拟环境到默认路径

【linux】服务器设置所有用户创建虚拟环境到默认路径 【创作不易&#xff0c;点点赞关注收藏】&#x1f600; 需要安装anaconda3的小伙伴可以看一下我前面的博文linux安装anaconda3 一、情况说明 我的anaconda3安装在"/public/apps/anaconda3/“&#xff0c;我希望所有…

C#实现最短路径算法

创建点集 double r 200 * 500;double width 1920;double height 1080;int col (int)(r / width);int row (int)(r / height);List<(double, double)> list1 new List<(double, double)>();for (int i 0; i < row; i){var y i * height;if (y < r){va…

java的发展

Java的发展历程是一个从无到有&#xff0c;从弱到强&#xff0c;从特定领域到广泛应用的过程。Java的发展可以分为几个重要阶段&#xff1a; 起源与早期发展。Java的起源可以追溯到1990年代初期&#xff0c;当时Sun Microsystems的工程师们为了解决嵌入式系统开发中的问题&a…

编译的艺术:在Gradle中精调编译器选项

编译的艺术&#xff1a;在Gradle中精调编译器选项 在软件开发的精细打磨过程中&#xff0c;编译器选项扮演着至关重要的角色。Gradle&#xff0c;作为一款流行的构建自动化工具&#xff0c;提供了丰富的编译器配置选项&#xff0c;让开发者能够根据项目需求定制编译过程。本文…

好莱坞级别AI视频工具Odyssey亮相!AI世界动态回顾

好莱坞级别的视觉AI&#xff1a;Odyssey 首先&#xff0c;我们要提到的就是Odyssey——一款新晋AI视频工具&#xff0c;它以其好莱坞级别的视觉AI能力引起了广泛关注。奥德赛展示的一些片段令人印象深刻&#xff0c;包括精美的无人机镜头、风景画面以及专业级的B-roll素材。虽…

Snap Video:用于文本到视频合成的扩展时空变换器

图像生成模型的质量和多功能性的显著提升&#xff0c;研究界开始将其应用于视频生成领域。但是视频内容高度冗余&#xff0c;直接将图像模型技术应用于视频生成可能会降低运动的保真度和视觉质量&#xff0c;并影响可扩展性。来自 Snap 的研究团队及其合作者提出了 "Snap …

SpringApplication.java类

Tips: 以下内容根据源码中的注解翻译 SpringApplication SpringApplication可用来从一个Java main方法引导和启动一个Spring应用。默认情况下&#xff0c;SpringApplication按照以下步骤引导你的应用&#xff1a; 创建一个合适的ApplicationContext&#xff08;依赖于你的cl…

运算放大器(2)

&#xff08;1&#xff09;反向放大器 Vout(-R2/R1)*Vi 图一运放的同向端接地0V&#xff0c;反向端和同向端虚短&#xff0c;所以也是0V 反向输入端输入电阻很高&#xff0c;虚断&#xff0c;几乎没有电流注入和流出&#xff0c;那么R1和R2相当于是串联的&#xff0c;流过一个…

MySQL上亿数据查询优化:实践与技巧

文章目录 MySQL上亿数据查询优化&#xff1a;实践与技巧一、引言二、影响查询性能的因素三、MySQL查询优化的原则四、索引优化1. 索引类型2. 索引设计原则3. 索引优化实例 五、分区表的使用1. 分区类型2. 分区实例 六、查询语句的优化1. 使用EXPLAIN分析查询2. 避免使用SELECT …

Nacos服务公网环境登陆报密码错误问题排查

作者&#xff1a;小丫 一、问题现象 nacos服务内网可以正常登录&#xff0c;如下&#xff1a; 走公网代理出来之后&#xff0c;无法正常登录&#xff0c;报错"用户名密码错误" 二、排查步骤 1、链路分析 首先确认公网代理的链路&#xff1a; 域名—>haprox…

【Docker系列】Docker 的基本概念和优势,以及在应用程序开发中的实际应用

Docker 是一种容器化平台&#xff0c;可以将应用程序及其依赖项打包到一个独立的容器中运行。Docker 的基本概念包括镜像、容器和仓库。 镜像是一个只读的文件&#xff0c;包含了运行应用程序所需的所有文件系统、库、环境变量等。容器是镜像的运行实例&#xff0c;它可以被启…

Epson打印机日常问题和解决办法

1、打印过程中缺纸&#xff0c;重新放入纸张之后&#xff0c;打印机出错。 打开“控制面板”&#xff0c;进入“设备与打印机”&#xff1a; 选择你正在使用的打印机&#xff0c;最下面可以看到打印机状态&#xff08;我这边用完脱机了&#xff0c;所以显示脱机&#xff09;&a…

Understanding EtherCAT Device Serial Number Checking

以下是对EtherCAT设备序列号检查的理解: EtherCAT(用于控制自动化技术的以太网)是一种在工业自动化中广泛使用的灵活以太网网络协议。配置和管理EtherCAT网络的一个关键方面是正确识别和验证连接的设备。这就是设备XML配置中的CheckSerialNo属性发挥作用的地方。让我们深入了解…