Elasticsearch安全加固实战:从单机部署到Spring Boot客户端集成
1. 项目概述为什么Elasticsearch安全加固刻不容缓如果你在生产环境用过Elasticsearch大概率经历过那种“后背发凉”的时刻某天心血来潮用curl或者浏览器直接访问一下http://你的服务器IP:9200结果发现整个集群的索引、文档、节点信息一览无余甚至还能直接执行查询和写入操作而整个过程没有任何认证阻拦。这可不是危言耸听在默认配置下Elasticsearch就是一个“裸奔”的状态。我见过太多团队为了快速上线业务直接使用默认的单机部署把安全这茬完全抛在脑后直到某天被安全扫描工具揪出来或者更糟——数据被恶意访问或篡改才追悔莫及。这个项目要解决的正是这个从“裸奔”到“武装”的核心痛点。它不仅仅是在配置文件中加几个参数那么简单而是一套从服务端到客户端的完整安全闭环实践。我们会从最基础的、风险最高的单机部署环境入手一步步加固Elasticsearch服务本身包括启用基础安全特性、配置内置用户和角色。但这只是第一步真正的挑战往往在客户端集成。很多Java应用通过Spring Boot集成Elasticsearch如果客户端连接没有配置密码验证那么服务端的安全加固就形同虚设攻击者完全可以仿冒一个客户端进行连接。因此项目的后半段重心会放在Java客户端特别是官方推荐的Java REST Client以及Spring Data Elasticsearch如何正确、安全地进行密码验证集成上。整个流程走下来你会得到一个具备基础认证与授权能力、客户端连接安全的Elasticsearch环境。这适用于所有刚开始接触Elasticsearch并计划将其用于存有业务数据、用户信息等敏感场景的开发者与运维人员。即使你目前只是在测试环境养成安全配置的习惯也能为未来平滑迁移到生产环境打下坚实基础避免在项目后期进行伤筋动骨的安全改造。2. 安全加固的整体思路与架构设计面对Elasticsearch的安全加固我们不能东一榔头西一棒子需要一个清晰的顶层设计。核心思路是由内而外分层防御。这意味着我们先要确保Elasticsearch服务本身是安全的然后再确保访问它的通道和客户端是安全的。2.1 为什么从单机部署开始很多教程一上来就讲集群、TLS证书这对新手来说门槛太高容易让人望而却步。实际上单机部署是绝大多数开发、测试甚至中小型生产环境的起点。在单机环境下完成全套安全加固其原理和步骤与集群环境高度一致。先掌握单机再扩展到集群你会对安全配置的理解深刻得多。单机环境排除了网络、节点发现等复杂因素的干扰让我们能聚焦于安全机制本身用户、角色、权限、密码与客户端认证。2.2 Elasticsearch安全特性演进与选型在Elasticsearch 6.8之前安全功能如认证、授权、TLS加密属于付费的X-Pack插件。从6.8版本开始Elastic公司将基础安全功能包括用户名/密码认证、基于角色的访问控制-RBAC、节点与传输层加密免费开放。到了7.x和8.x版本安全功能更是被深度集成并默认推荐启用。这是我们进行加固的技术基础。我们选择依赖Elasticsearch自身的内置安全特性而不是引入第三方安全插件原因在于原生集成兼容性好避免版本冲突和未知的兼容性问题。功能全面涵盖了从认证、授权到通信加密的完整链条。社区支持广泛遇到问题官方文档和社区能提供最直接的帮助。2.3 客户端集成的关键决策点服务端加固后客户端的适配是关键一环。这里主要有两个选择低级客户端Low Level REST Client更灵活但需要手动处理HTTP请求、认证头等细节。高级客户端High Level REST Client / 新的Java API Client或Spring Data Elasticsearch封装度更高通常通过配置对象即可完成安全认证集成。对于大多数Spring Boot项目使用Spring Data Elasticsearch是更自然的选择。它简化了仓库Repository的编写并且与Spring Security生态可以更好地结合。我们的实战将涵盖这两种主流方式让你了解底层原理的同时也能掌握上层框架的高效用法。注意Elasticsearch官方已计划弃用High Level REST Client推荐使用新的Elasticsearch Java API Client。但考虑到当前大量存量项目仍在使用前者且Spring Data Elasticsearch在较新版本中也提供了对新客户端的支持我们的实战会以Spring Data Elasticsearch整合新Java API Client为主线同时简要说明旧客户端的配置方式确保方案的时效性和覆盖面。3. 单机Elasticsearch服务端加固实操假设我们已经在一台服务器Linux或Windows上安装好了Elasticsearch 7.x或8.x版本。安装过程本身不是重点可以从官网下载压缩包解压或者通过包管理器安装。安装后的默认配置位于config/elasticsearch.yml和config/jvm.options。我们的所有加固操作都将围绕修改这些配置文件展开。3.1 启用基础安全功能并设置内置用户密码默认情况下安全功能是禁用的。第一步就是打开它。1. 修改config/elasticsearch.yml文件# 启用安全特性7.x/8.x 关键配置 xpack.security.enabled: true # 为HTTP层REST API启用认证 xpack.security.http.ssl: enabled: false # 我们先禁用HTTPS以简化初始配置后续再加 keystore.path: certs/http.p12 # 为传输层节点间通信启用认证和加密单机也需要 xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: certs/transport.p12 truststore.path: certs/transport.p12 # 设置集群名称单机也是一个集群 cluster.name: my-secure-cluster node.name: node-1 network.host: 0.0.0.0 # 绑定所有IP生产环境建议指定内网IP http.port: 9200这里有几个关键点xpack.security.enabled: true是总开关。我们暂时将xpack.security.http.ssl.enabled设为false。这是因为启用HTTPS需要配置证书对于初次接触的开发者先搞定用户名密码认证再叠加证书加密学习曲线更平滑。但在生产环境中两者必须同时启用。传输层SSL (transport.ssl) 即使单机也建议开启它用于Elasticsearch内部模块通信启用后更安全。2. 启动Elasticsearch并设置内置用户密码保存配置文件后启动Elasticsearch服务。如果是Linux使用systemctl start elasticsearch或./bin/elasticsearch -d后台运行。Windows则运行bin\elasticsearch.bat。启动成功后我们需要为内置用户设置密码。Elasticsearch有一系列内置用户如elastic超级管理员、kibana_systemKibana服务用户、logstash_system等。执行以下命令在Elasticsearch安装目录下# 交互式设置所有内置用户密码 ./bin/elasticsearch-setup-passwords interactive执行后命令行会提示你依次为elastic、apm_system、kibana_system、logstash_system、beats_system、remote_monitoring_user设置密码。请务必为elastic用户设置一个强密码并妥善保存这是你的“根密钥”。3. 验证基础认证设置完成后再次访问http://你的IP:9200浏览器会弹出认证对话框或者使用curl命令curl -u elastic:你设置的密码 http://localhost:9200如果返回了包含集群信息的JSON且没有报401 Unauthorized错误恭喜你基础认证已生效。3.2 配置角色与用户权限最小权限原则直接用elastic超级用户给应用程序连接是不安全的。我们应该遵循最小权限原则为不同的应用创建专属的用户和角色。1. 创建角色假设我们有一个“产品搜索”微服务它只需要对product_*索引有读写权限。我们首先创建一个角色。这可以通过Kibana的Security功能界面完成也可以使用Elasticsearch的API。这里演示API方式需要elastic用户权限curl -u elastic:密码 -X POST http://localhost:9200/_security/role/product_search_role -H Content-Type: application/json -d { cluster: [monitor], # 授予集群监控权限很多客户端需要 indices: [ { names: [product_*], privileges: [read, write, create_index, delete_index] # 根据实际需要调整 } ] } 这个角色product_search_role允许用户监控集群并对所有以product_开头的索引进行读、写、创建和删除操作。2. 创建用户并关联角色接下来创建一个用户search_app_user并为其分配刚才创建的角色。curl -u elastic:密码 -X POST http://localhost:9200/_security/user/search_app_user -H Content-Type: application/json -d { password: StrongAppPassword123!, # 设置一个强密码 roles: [product_search_role], full_name: Product Search Application User, email: appexample.com } 现在你的Java客户端就可以使用search_app_user和对应的密码来连接Elasticsearch了它的权限被严格限制在product_*索引范围内即使密码泄露损失也是可控的。3.3 启用HTTPS加密通信生产环境必备前面我们禁用了HTTP SSL现在来补上这一环。生产环境绝不允许明文传输认证信息和数据。1. 生成证书Elasticsearch提供了简易的命令来生成用于开发和测试的证书。对于生产环境建议使用正规的CA签发证书。# 在Elasticsearch配置目录下创建certs文件夹 mkdir config/certs # 生成节点证书同时用于HTTP和Transport ./bin/elasticsearch-certutil cert -out config/certs/elastic-certificates.p12 -pass 这个命令会生成一个PKCS#12格式的证书文件。-pass 表示不设置密钥库密码简化操作生产环境应设置强密码。2. 配置elasticsearch.yml启用HTTPSxpack.security.http.ssl: enabled: true # 改为true keystore.path: certs/elastic-certificates.p12 keystore.type: PKCS12 # keystore.password: yourpassword # 如果生成时设置了密码需要在此配置 xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: certs/elastic-certificates.p12 keystore.type: PKCS12 # keystore.password: yourpassword truststore.path: certs/elastic-certificates.p12 truststore.type: PKCS12 # truststore.password: yourpassword3. 重启并验证HTTPS重启Elasticsearch服务后原来的HTTP端口9200将只接受HTTPS连接。curl -k -u elastic:密码 https://localhost:9200 # -k 参数跳过证书验证因为用的是自签名证书你应该能看到同样的集群信息。现在从客户端到服务端的所有通信都已被加密。实操心得证书管理是个细致活。在开发测试环境自签名证书加-k跳过验证很方便。但在生产环境-k是绝对禁止的。你需要将CA证书或服务端证书导入到Java客户端的信任库JVM的cacerts或自定义的truststore中并在客户端连接配置里指定信任库路径。否则客户端会因证书不受信而连接失败。这是从测试到生产迁移时的一个常见卡点。4. Java客户端密码验证集成实战服务端准备好了现在轮到客户端。我们将分别演示在新的Spring Boot项目中如何使用两种主流方式集成安全的Elasticsearch客户端。4.1 使用新的Elasticsearch Java API Client推荐这是Elasticsearch官方当前主推的客户端与Spring Boot集成需要一些手动配置。1. 添加Maven依赖在你的pom.xml中除了Spring Boot starter还需要添加Java API Client依赖。dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-elasticsearch/artifactId /dependency !-- 新的Java API Client -- dependency groupIdco.elastic.clients/groupId artifactIdelasticsearch-java/artifactId version8.13.0/version !-- 请匹配你的Elasticsearch服务端版本 -- /dependency !-- 用于处理JSON序列化 -- dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-databind/artifactId /dependency2. 编写配置类创建安全的客户端Bean这是核心步骤。我们需要创建一个RestClient底层HTTP客户端和一个ElasticsearchClient并在其中注入认证信息。import co.elastic.clients.elasticsearch.ElasticsearchClient; import co.elastic.clients.json.jackson.JacksonJsonpMapper; import co.elastic.clients.transport.ElasticsearchTransport; import co.elastic.clients.transport.rest_client.RestClientTransport; import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; import org.apache.http.impl.client.BasicCredentialsProvider; import org.elasticsearch.client.RestClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; Configuration public class ElasticsearchConfig { Bean public ElasticsearchClient elasticsearchClient() { // 1. 配置认证信息 final CredentialsProvider credentialsProvider new BasicCredentialsProvider(); credentialsProvider.setCredentials( AuthScope.ANY, new UsernamePasswordCredentials(search_app_user, StrongAppPassword123!) // 使用我们创建的应用程序用户 ); // 2. 创建底层RestClient并绑定认证提供器 RestClient restClient RestClient.builder( new HttpHost(localhost, 9200, https)) // 注意是https协议 .setHttpClientConfigCallback(httpClientBuilder - httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider) // 如果是自签名证书需要配置SSLContext来跳过主机名验证或信任所有证书仅限开发 // .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE) ) .build(); // 3. 使用Jackson映射器创建传输层 ElasticsearchTransport transport new RestClientTransport( restClient, new JacksonJsonpMapper() ); // 4. 创建并返回API Client return new ElasticsearchClient(transport); } }关键解析CredentialsProvider是Apache HTTP客户端库中用于管理认证凭据的组件。我们将应用程序用户的用户名和密码设置给它。RestClient.builder指定了Elasticsearch服务器的地址和端口协议必须是https。setHttpClientConfigCallback是一个回调函数让我们能够自定义底层的HTTP客户端行为这里我们注入了凭证提供器。关于SSL证书验证如果服务端使用的是自签名证书如我们之前生成的上述代码在连接时会报证书错误。在开发环境可以临时配置SSLContext来信任所有证书代码注释部分但这在生产环境是极其危险的。生产环境正确做法是将服务端的CA证书或公钥证书导入到JVM的默认信任库或者创建一个自定义的信任库文件并在RestClient.builder的SSL回调中指定该信任库的路径和密码。3. 在Service或Repository中注入使用配置完成后你就可以在任何Spring管理的Bean中注入ElasticsearchClient来执行操作了。Service public class ProductSearchService { private final ElasticsearchClient client; public ProductSearchService(ElasticsearchClient client) { this.client client; } public void indexProduct(Product product) throws IOException { IndexResponse response client.index(i - i .index(product_index) // 索引名需符合角色权限如product_* .id(product.getId()) .document(product) ); System.out.println(Indexed product with id: response.id()); } }4.2 整合Spring Data Elasticsearch更Spring风格如果你更喜欢Spring Data的Repository抽象可以按以下方式配置。Spring Data Elasticsearch从4.4版本开始支持新的Java API Client。1. 配置application.yml或application.propertiesspring: elasticsearch: uris: https://localhost:9200 # 注意是https username: search_app_user password: StrongAppPassword123! # 对于自签名证书在开发环境可以配置以下属性生产环境勿用 # connection-timeout: 5s # socket-timeout: 30s # ssl: # trust-self-signed-certificates: true # 信任自签名证书 # verification-mode: none # 关闭证书验证重要警告ssl.verification-mode: none和trust-self-signed-certificates: true仅用于绕过开发环境的证书验证。在生产环境的配置文件中绝对不能出现这些设置。生产环境的正确姿势是将有效的服务器证书配置到JVM信任库。2. 编写实体类和Repository接口import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; Document(indexName product_index) public class Product { Id private String id; private String name; private Double price; // ... getters and setters } import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; public interface ProductRepository extends ElasticsearchRepositoryProduct, String { ListProduct findByName(String name); }3. 使用RepositorySpring Boot会自动根据配置创建具备安全认证能力的ElasticsearchClient和相应的ElasticsearchOperations并为你实现ProductRepository。你可以像使用JPA Repository一样使用它。Service public class ProductService { private final ProductRepository productRepository; public ProductService(ProductRepository productRepository) { this.productRepository productRepository; } public Product save(Product product) { return productRepository.save(product); } }这种方式极大地简化了代码你几乎感受不到底层复杂的安全认证和SSL配置Spring Boot帮你处理了大部分样板代码。但务必清楚其背后的原理尤其是在处理生产环境证书问题时。5. 常见问题排查与深度优化指南即使按照步骤操作你也可能会遇到一些坑。这里记录了几个我反复遇到的典型问题及其解决方案。5.1 连接失败问题排查清单当客户端无法连接到安全的Elasticsearch时可以按照以下清单逐项排查问题现象可能原因排查步骤与解决方案401 Unauthorized1. 用户名或密码错误。2. 用户不存在或已被禁用。3. 客户端未正确携带认证头。1. 使用curl -u user:pass命令测试密码是否正确。2. 通过elastic用户调用_security/userAPI查看用户状态。3. 检查客户端代码确认CredentialsProvider已正确设置或Spring配置的username/password无误。Connection refused或Cannot assign requested address1. Elasticsearch服务未启动。2. 防火墙/安全组阻止了9200端口。3.network.host绑定错误。1. 检查ES进程状态ps auxSSL证书错误(如PKIX path building failed)1. 客户端不信任服务端的自签名证书。2. 证书已过期。3. 客户端配置的协议是http而非https。1.开发测试在客户端配置中临时禁用证书验证仅用于测试。2.生产必须将服务端的CA证书导入到Java客户端的信任库。命令示例keytool -import -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts -file ca.crt -alias elastic-ca。3. 检查客户端连接URL确保是https://开头。NoNodeAvailableException或Failed to connect1. 客户端版本与服务端版本不兼容。2. 传输层SSL配置有误但客户端尝试了普通连接。1. 确保客户端依赖版本如elasticsearch-java与服务端大版本匹配主版本号相同。2. 确认服务端xpack.security.transport.ssl.enabled为true且客户端如果使用Transport Client旧版也需要对应配置。新版REST Client一般不受此影响。5.2 性能与稳定性优化建议安全加固会引入额外的开销加密解密、认证校验以下优化措施可以帮助减轻影响连接池配置无论是底层的RestClient还是Spring Boot自动配置的客户端都默认使用连接池。不要频繁创建和销毁客户端实例。在Spring中通常将ElasticsearchClient或RestClient配置为单例Bean。合理设置超时在application.yml或RestClient.builder中配置合理的连接超时connection-timeout和套接字超时socket-timeout避免因网络波动导致线程长时间阻塞。spring: elasticsearch: connection-timeout: 5s socket-timeout: 30s监控与日志启用Elasticsearch的审计日志在elasticsearch.yml中配置xpack.security.audit.enabled: true记录所有认证成功和失败的事件便于安全审计和问题追踪。同时监控集群节点的CPU和内存使用情况TLS加密会消耗一定的计算资源。定期轮换密码与证书为应用程序用户设置强密码策略并定期更换密码。对于自签名证书注意其有效期并在到期前重新生成和部署。可以考虑使用类似Vault的工具来动态管理密码和证书。5.3 从单机到集群的安全扩展当你的单机节点需要扩展为集群时安全配置的核心逻辑不变但需要注意以下几点证书一致性集群中所有节点必须使用由相同CA签发的证书或者共享同一个elastic-certificates.p12文件将生成好的证书文件拷贝到其他节点的config/certs/目录下。这样它们才能相互信任并建立安全的传输层连接。发现与主机配置在elasticsearch.yml中需要配置discovery.seed_hosts和cluster.initial_master_nodes。这些主机列表必须使用节点名或配置了SSL的域名/IP并且所有节点都需要开启安全特性。# 节点1配置 cluster.name: my-secure-cluster node.name: node-1 network.host: _site_ xpack.security.enabled: true xpack.security.transport.ssl.enabled: true discovery.seed_hosts: [node1.internal:9300, node2.internal:9300] # 使用主机名和传输端口 cluster.initial_master_nodes: [node-1, node-2]为Kibana、Logstash等组件配置用户在集群中Kibana、Logstash、Beats等组件也需要使用我们之前创建的kibana_system、logstash_system等系统用户及其密码来连接Elasticsearch。它们的配置文件中需要填写对应的用户名和密码。安全加固不是一个一劳永逸的动作而是一个持续的过程。从单机部署开始严格配置用户名密码、启用HTTPS、遵循最小权限原则创建应用账户再到客户端细致地集成认证与处理证书每一步都堵住了一个潜在的安全漏洞。这套组合拳打下来你的Elasticsearch就不再是那个在公网上“裸奔”的服务了。尤其是在Spring Boot生态下利用好配置文件和自动装配可以让我们在享受开发便利的同时不牺牲安全性。最后记住任何安全措施在开发环境的“临时禁用”选项在代码上线前都必须被移除或替换为生产环境的正确配置这是通往安全生产的必经之路。

相关新闻

C++字符串处理实战:5道核心题掌握std::string标准库精髓

C++字符串处理实战:5道核心题掌握std::string标准库精髓

1. 项目概述:为什么我们要死磕这5道字符串题? 如果你正在学习C,尤其是刚啃完 std::string 的基础语法,感觉“懂了”,但一上手写代码就卡壳,或者面对面试官抛出的字符串处理问题大脑一片空白,那…

2026/7/31 12:20:12 阅读更多 →
【AI视频绿幕抠像终极指南】:20年影像工程师亲授5大避坑法则与实时抠像优化公式

【AI视频绿幕抠像终极指南】:20年影像工程师亲授5大避坑法则与实时抠像优化公式

更多请点击: https://kaifayun.com 第一章:AI视频绿幕抠像的技术演进与核心挑战 AI视频绿幕抠像已从传统色度键控(Chroma Key)的像素阈值硬分割,跃迁至基于深度学习的端到端语义分割范式。早期工具依赖HSV色彩空间中绿…

2026/7/31 12:19:11 阅读更多 →
Android内存优化:Profiler工具实战与内存泄漏排查

Android内存优化:Profiler工具实战与内存泄漏排查

1. 为什么Android开发者必须掌握Profiler工具内存泄漏是Android开发中最常见也最棘手的问题之一。作为一名有五年移动端开发经验的工程师,我见过太多因为内存泄漏导致的崩溃案例——从简单的Activity泄漏到复杂的Bitmap缓存问题,轻则导致应用卡顿&#x…

2026/7/31 12:19:11 阅读更多 →

最新新闻

路径规划算法解析:从Dijkstra到仿生智能应用

路径规划算法解析:从Dijkstra到仿生智能应用

1. 路径规划算法概述:从理论到应用场景路径规划是机器人、自动驾驶、物流配送等领域的核心问题,其本质是在给定环境中找到从起点到终点的最优或可行路径。根据环境复杂度不同,可分为二维平面路径规划和三维空间路径规划两大类。在二维场景中&…

2026/7/31 12:59:24 阅读更多 →
多层板批量开短路-搭建电气类故障检测体系覆盖

多层板批量开短路-搭建电气类故障检测体系覆盖

一、多层 PCB 电气故障分类与单一检测方式的局限性多层 PCB 电气故障分为显性开短路、间歇性接触不良、层间绝缘劣化三类。内层走线断路、层间介质击穿短路属于显性故障,常规通电即可检出;孔壁微裂纹、埋孔镀层薄化会形成时通时断的间歇故障,…

2026/7/31 12:59:24 阅读更多 →
TDR时域反射检测定位内层走线阻抗类故障

TDR时域反射检测定位内层走线阻抗类故障

一、多层板阻抗失控带来的整机隐性危害通信主板、工控高速主控、伺服驱动多层板都需要严格管控 50Ω、100Ω 差分阻抗,多层介质厚度、铜箔厚度、线宽、层间对位偏差,都会造成走线阻抗突变。阻抗不连续点会引发信号反射、波形畸变、传输损耗超标&#xff…

2026/7/31 12:59:24 阅读更多 →
CodeCombat终极指南:5步开启免费游戏化编程学习之旅

CodeCombat终极指南:5步开启免费游戏化编程学习之旅

CodeCombat终极指南:5步开启免费游戏化编程学习之旅 【免费下载链接】codecombat Game for learning how to code. 项目地址: https://gitcode.com/gh_mirrors/co/codecombat 在数字时代,编程已成为一项必备技能,但传统学习方式往往让…

2026/7/31 12:59:24 阅读更多 →
STM32F103C8T6 DMA配置全解析:从原理到实战应用

STM32F103C8T6 DMA配置全解析:从原理到实战应用

1. 从“搬运工”到“甩手掌柜”:DMA在STM32中的角色转变 如果你玩过STM32F103C8T6,或者任何一款STM32,肯定对“CPU占用率”这个词不陌生。当你用轮询方式去读一个串口数据,或者用ADC连续采集时,主循环就像被堵住了一样…

2026/7/31 12:59:24 阅读更多 →
VRCT完整指南:快速解决VRChat多语言交流障碍的终极免费工具

VRCT完整指南:快速解决VRChat多语言交流障碍的终极免费工具

VRCT完整指南:快速解决VRChat多语言交流障碍的终极免费工具 【免费下载链接】VRCT VRCT(VRChat Chatbox Translator & Transcription) 项目地址: https://gitcode.com/gh_mirrors/vr/VRCT 你是否曾在VRChat中遇到语言障碍而无法与其他玩家顺畅交流&#…

2026/7/31 12:58:23 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻