大数据面试题之Greenplum(2)

目录

Greenplum如何计算内存设置推荐值

Greenplum在哪里看日志?

Greenplum 可用的客户端有哪些?

Greenplum可以设置自动关闭空闲连接么?

Greenplum 有没有支持非x86架构的版本,或者是支持arm、支持国产CPU的版本?

Greenplum排查问题的方法

Greenplum数据库启动停止的问题分析

Greenplum数据库状态不正常分析及处理

Greenplum扩容问题分析及处理


Greenplum如何计算内存设置推荐值

一、总体原则

  • 最大化内存使用:在不影响系统稳定性和其他应用程序性能的前提下,应尽可能最大化Greenplum数据库的内存使用,以提高查询性能和吞吐量。
  • 合理配置资源:根据系统的CPU、内存、磁盘IO等资源情况,合理配置Greenplum数据库的内存参数,确保资源得到充分利用。

二、关键参数
gp_vmem_protect_limit
作用:该参数限制了每个segment实例可以使用的最大虚拟内存量,以防止内存溢出。
计算方法:

  • 首先,计算所有Greenplum数据库进程可用的内存(gp_vmem)。这通常取决于系统的总内存、操作系统和其他应用程序的内存需求。
  • 然后,根据segment实例的数量和故障期间可能激活的镜像segment数量,计算每个segment实例应分配的内存量。
  • 公式示例:gp_vmem_protect_limit = gp_vmem / max_acting_primary_segments,其中max_acting_primary_segments是主机上可以运行的主段的最大数量(考虑故障情况)。

statement_mem

作用:设置每个查询在segment主机中可用的内存量。
计算方法:

  • 如果配置了资源队列,则statement_mem不能超过资源队列设置的值或max_statement_mem。
  • 如果没有配置资源队列,则可以使用类似gp_vmem_protect_limit的计算方法,但通常会更细粒度地考虑并发查询的数量和每个查询的内存需求。
  • 示例公式:(gp_vmem_protect_limitGB * .9) / max_expected_concurrent_queries,其中.9是考虑缓存空间后的可用内存比例。

MEMORY_LIMIT
作用:在资源队列中,该参数设置队列中可以执行的查询的总内存量(即最大并发数)。
设置方法:根据队列中查询的并发性和每个查询的内存需求来设置。确保总内存量不超过segment实例的内存限制。
三、其他考虑因素

  • 系统负载:考虑系统的整体负载情况,包括CPU使用率、磁盘IO等,以确保内存设置不会导致系统资源过度竞争。
  • 并发查询:根据预期的并发查询数量来调整内存设置,以确保系统能够处理高峰期的查询负载。
  • 监控和调整:定期监控Greenplum数据库的内存使用情况,并根据实际情况调整内存设置。

四、结论
Greenplum数据库的内存设置推荐值计算是一个需要综合考虑多个因素的过程。通过合理配置gp_vmem_protect_limit、statement_mem和MEMORY_LIMIT等关键参数,可以最大化Greenplum数据库的内存使用,提高查询性能和吞吐量。同时,还需要注意系统负载、并发查询和监控调整等因素,以确保数据库的稳定性和性能。

请注意,以上计算方法和建议仅供参考,具体设置应根据实际情况进行调整。在实际操作中,建议参考Greenplum官方文档和最佳实践指南,以获取更详细和准确的信息。

Greenplum在哪里看日志?

在Greenplum数据库系统中,日志文件存储在每个数据库节点(包括Master节点和Segment节点)的数据目录下的pg_log目录中。具体来说:

  1. Master节点日志:Master节点的日志文件非常重要,因为它包含了系统操作、查询执行计划、错误信息等。这些日志文件位于Master节点的数据目录的pg_log子目录下,文件名遵循一定的命名规则,例如gpdb-yyyy-mm-dd_hhmmss.csv。
  2. Segment节点日志:每个Segment实例也有自己的日志文件,它们同样位于各自Segment节点的数据目录的pg_log子目录下,命名规则与Master节点相似。

要查看这些日志,你可以直接登录到相应的服务器上,然后导航到相应目录查看日志文件。对于分布式环境,手动查看每个节点的日志可能效率较低,此时可以利用Greenplum提供的工具来集中查看和过滤日志:

  • 使用gpssh工具可以远程登录到各个Segment节点。
  • 结合gplogfilter工具,可以在所有Segment节点上集中查找和过滤日志条目。例如,你可以通过在Master节点上执行带有适当参数的gpssh和gplogfilter命令,快速定位特定错误或事件相关的日志信息。

此外,操作日志(如gpstart, gpstop, gpstate等工具的操作记录)通常位于gpAdminLogs目录下,便于跟踪管理操作的历史记录。记得根据实际情况和安全策略,定期备份和清理日志文件,以避免磁盘空间不足的问题。

Greenplum 可用的客户端有哪些?

Greenplum数据库支持多种客户端工具,用于连接、管理及执行查询操作。以下是一些常用的Greenplum客户端应用:

  1. psql: 作为Greenplum和PostgreSQL的命令行客户端,提供了一个直接与数据库交互的方式,适用于执行SQL查询、管理数据库对象和查看数据库状态。
  2. gpAdmin: Greenplum特有的管理工具,用于执行数据库管理任务,如集群配置、系统监控和性能调优。
  3. Aqua Data Studio: 一款强大的多数据库管理工具,通过JDBC支持连接到Greenplum,提供图形化界面进行数据库管理、查询、数据可视化等功能。
  4. pgAdmin: 虽然是为PostgreSQL设计,但由于Greenplum与PostgreSQL的兼容性,pgAdmin也可以用来管理Greenplum数据库,提供图形化界面进行数据库对象管理、查询编辑器等。
  5. Navicat Premium: 一款流行的数据库管理工具,支持多种数据库类型,包括Greenplum,提供直观的界面进行数据库设计、数据迁移、数据同步等操作。
  6. ODBC/JDBC驱动: Greenplum提供了ODBC和JDBC驱动,使得任何支持这些标准接口的客户端应用都能够连接到Greenplum数据库,比如Excel、Tableau、Power BI等数据可视化工具,以及自研的客户端应用。
  7. 其他第三方工具: 包括各种数据库管理工具(如DBeaver、DataGrip等)和ETL工具(如Talend、Informatica等),只要支持PostgreSQL或有针对Greenplum的特定连接器,均能作为Greenplum的客户端使用。

选择合适的客户端取决于具体需求,如是否需要图形界面、是否需要进行复杂的管理任务、以及是否需要集成到现有的工作流中等。

Greenplum可以设置自动关闭空闲连接么?

Greenplum可以设置自动关闭空闲连接。通过配置参数gp_vmem_idle_resource_timeout,您可以控制空闲会话在指定时间后自动终止。默认情况下,这个参数的值是18秒,意味着如果一个会话在这段时间内保持空闲,Greenplum将会终止它以回收资源。
要调整此设置,您需要使用gpconfig命令来更改配置,然后重启Greenplum集群以使更改生效。例如,如果您希望将空闲会话超时时间设置为60秒,可以按照以下步骤操作:
登录到Greenplum的Master节点。
执行命令更改配置:

gpconfig -c gp_vmem_idle_resource_timeout -v 60

这里-c用于指定配置参数名称,-v用于指定新的值(以秒为单位)。
重启Greenplum集群以应用更改。这通常涉及使用gpstop -r命令来优雅地重启整个集群。

Greenplum 有没有支持非x86架构的版本,或者是支持arm、支持国产CPU的版本?

Greenplum作为一款开源MPP(Massively Parallel Processing,大规模并行处理)数据分析平台,其官方发布的二进制发行版本主要面向x86架构的服务器。具体来说,从现有的官方和商业版本来看,Greenplum并没有直接提供非x86架构(如ARM或国产CPU)的版本。
然而,由于Greenplum是开源软件,用户可以通过编译其源代码来支持非x86架构。在社区中,已经有成功的案例展示了如何在ARM架构的服务器上编译Greenplum,并制作了相应的安装包。这些案例通常涉及到配置编译环境、安装依赖包、下载并编译Greenplum源代码等步骤。
对于国产CPU的支持,虽然Greenplum官方没有直接提供针对特定国产CPU的发行版,但理论上如果国产CPU兼容ARM或其他已支持的指令集,那么通过编译源代码的方式也有可能实现Greenplum在这些平台上的运行。不过,这可能需要用户自行解决一些兼容性和性能优化的问题。
总的来说,虽然Greenplum官方没有直接提供非x86架构的版本,但用户可以通过编译源代码的方式来支持ARM或国产CPU等架构。这为用户提供了更灵活的选择,同时也需要用户具备一定的技术能力和对系统架构的理解。
请注意,随着技术的不断发展和Greenplum版本的更新迭代,未来Greenplum官方可能会推出更多支持不同架构的版本。因此,建议用户关注Greenplum的官方发布信息和社区动态,以获取最新的支持和信息。

Greenplum排查问题的方法

Greenplum作为一款分布式数据库,其排查问题的方法涉及多个层面,包括系统监控、日志分析、性能调优以及特定问题的排查等。以下是一些常用的Greenplum排查问题的方法:
1. 系统监控

  • 使用监控工具:Greenplum通常与监控系统集成,如Ganglia、Nagios或专门的Greenplum监控解决方案。通过监控工具可以实时查看数据库的性能指标,如CPU使用率、内存占用、磁盘I/O等,及时发现潜在问题。
  • 查询状态信息:通过执行SQL查询来获取系统状态信息,如使用gp_segment_configuration表来查看segment的状态,使用gpstate命令来检查集群的整体状态。

2. 日志分析

  • 主节点和segment节点日志:Greenplum的日志分布在主节点和各个segment节点上。当出现问题时,首先需要查看这些日志文件,特别是那些与问题发生时间相近的日志。日志文件通常包含详细的错误信息、警告和堆栈跟踪,这些信息对于定位问题至关重要。
  • 错误日志级别:重点关注日志级别为ERROR、FATAL的内容,这些通常表示严重的错误或故障。
  • 使用gpperfmon工具:Greenplum Performance Monitor(gpperfmon)是一个性能监控工具,它可以收集数据库的性能数据并存储在Greenplum数据库中。通过分析这些数据,可以识别性能瓶颈和潜在问题。

3. 性能调优

  • 查询优化:检查执行计划,了解查询是如何在Greenplum中执行的。使用EXPLAIN命令来查看查询的执行计划,并根据需要调整查询或数据库配置以优化性能。
  • 资源分配:确保资源(如CPU、内存和磁盘I/O)在集群中合理分配。通过调整资源配额或限制,可以防止某些查询或用户过度占用资源,从而影响其他查询或用户的性能。

4. 特定问题排查
锁表问题:

  • 查询当前锁表的相关信息,可以使用gp_toolkit.gp_locks_on_relation视图来查看锁信息。
  • 使用pg_stat_activity视图来查看当前所有查询的状态,以及它们是否因为锁而等待。
  • 如果发现死锁,可以使用pg_cancel_backend或pg_terminate_backend函数来终止导致死锁的事务。

segment实例丢失:

  • 使用gpstate命令查看segment实例的状态,确认是否存在丢失的实例。
  • 检查主节点日志,找出segment实例丢失的原因,可能是频繁的内存溢出等。
  • 使用gprecoverseg命令尝试恢复丢失的segment实例。

集群启动失败:

  • 使用gpstart -v命令查看启动日志明细,找出启动失败的原因。
  • 检查数据目录的权限和完整性,确保没有损坏的文件或目录。
  • 根据日志中的错误信息,逐一解决存在的问题,直到集群成功启动。

5. 求助社区和官方支持

  • 如果在排查问题时遇到困难,可以寻求Greenplum社区的帮助。社区中有许多经验丰富的用户和开发者,他们可能遇到过类似的问题,并能提供有用的建议。
  • 另外,也可以联系Greenplum的官方支持团队,他们提供专业的技术支持和解决方案。

综上所述,Greenplum排查问题的方法包括系统监控、日志分析、性能调优以及针对特定问题的排查。通过综合运用这些方法,可以有效地定位和解决Greenplum数据库中的问题。

Greenplum数据库启动停止的问题分析

Greenplum数据库的启动和停止过程中可能会遇到各种问题,这些问题可能涉及系统配置、资源限制、权限管理等多个方面。以下是对Greenplum数据库启动和停止过程中常见问题的分析:
一、启动问题
1、初始化问题

  • 问题描述:在尝试启动Greenplum数据库之前,必须首先使用gpinitsystem工具对数据库进行初始化。如果初始化过程未完成或失败,将导致数据库无法启动。
  • 解决建议:检查gpinitsystem的日志输出,确认初始化过程是否成功完成。如果初始化失败,根据日志中的错误信息进行相应的修复。

2、配置文件错误

  • 问题描述:数据库的配置文件(如postgresql.conf、pg_hba.conf等)中的设置错误可能导致数据库启动失败。
  • 解决建议:检查配置文件中的设置,确保所有配置项都是正确的。可以使用gpconfig工具来查看和修改配置参数。

3、资源限制

  • 问题描述:系统资源(如CPU、内存、磁盘空间等)不足也可能导致数据库启动失败。
  • 解决建议:检查系统的资源使用情况,确保有足够的资源供Greenplum数据库使用。如果资源不足,可能需要增加资源或优化数据库配置。

4、网络问题

  • 问题描述:Greenplum数据库是一个分布式系统,需要各个节点之间的网络通信。网络问题(如网络延迟、网络中断等)可能导致数据库启动失败。
  • 解决建议:检查网络连接和配置,确保所有节点之间的网络通信正常。

5、权限问题

  • 问题描述:如果Greenplum数据库的文件或目录的权限设置不正确,可能导致数据库无法启动。
  • 解决建议:检查数据库文件和目录的权限设置,确保它们符合Greenplum数据库的要求。

6、启动日志

  • 重要性:启动过程中的详细日志是诊断问题的重要依据。
  • 操作建议:在启动Greenplum数据库时,应查看启动日志以获取详细的错误信息。可以使用gpstart -v命令来查看详细的启动日志。

二、停止问题
1、正常停止

  • 操作:使用gpstop工具可以正常停止Greenplum数据库。默认情况下,gpstop会等待所有活动事务完成后再停止数据库。
  • 注意:在停止数据库之前,应确保所有重要的数据都已保存,并且没有正在进行的重要事务。

2、快速停止

  • 操作:使用gpstop -M fast命令可以立即停止Greenplum数据库,但会回滚所有正在进行的事务并中断所有连接。
  • 注意:快速停止模式可能会导致数据丢失或不一致,因此应谨慎使用。

3、停止失败

  • 问题描述:有时由于系统资源问题、权限问题或数据库内部错误等原因,gpstop可能无法成功停止数据库。
  • 解决建议:首先检查gpstop的日志输出以获取错误信息。如果问题仍然无法解决,可能需要手动杀掉数据库进程或使用其他工具来停止数据库。但请注意,手动杀掉进程可能会导致数据损坏或不一致,因此应尽量避免使用此方法。

三、总结
Greenplum数据库的启动和停止过程中可能会遇到各种问题,这些问题可能涉及系统配置、资源限制、权限管理等多个方面。为了有效地解决这些问题,建议遵循以下步骤:

  1. 查看日志:首先查看启动或停止过程中的日志输出,以获取详细的错误信息。
  2. 检查配置:确认数据库的配置文件设置是否正确,并检查系统资源是否足够。
  3. 尝试重启:如果问题是由于临时故障引起的,尝试重启数据库可能会解决问题。
  4. 联系支持:如果问题无法解决,建议联系Greenplum的技术支持团队以获取帮助。

Greenplum数据库状态不正常分析及处理

Greenplum数据库状态不正常可能由多种因素引起,包括但不限于配置错误、资源不足、网络问题、权限问题以及数据损坏等。以下是对Greenplum数据库状态不正常进行分析及处理的详细步骤:
一、状态不正常分析
1、查看日志

  • 主节点日志:首先查看主节点的日志文件,这些文件通常位于/usr/local/godb/data/master/gpseg-1/pg_log/(路径可能根据安装配置有所不同)。重点关注发生异常的时间段内的日志,查找可能的错误信息或警告。
  • segment节点日志:如果问题涉及到segment节点,也需要查看相应节点的日志文件。

2、检查系统资源

  • CPU和内存:检查系统的CPU和内存使用情况,确认是否有资源瓶颈导致数据库性能下降或无法正常工作。
  • 磁盘空间:检查磁盘空间是否充足,避免因磁盘满导致数据库无法写入数据。

3、网络检查

  • 确认所有节点之间的网络通信正常,没有网络延迟或中断现象。

4、权限检查

  • 确保Greenplum数据库的文件和目录具有正确的权限,特别是数据目录和日志文件目录。

5、数据库配置

  • 检查数据库的配置文件(如postgresql.conf、pg_hba.conf等),确认配置参数设置正确。

6、查看数据库状态

  • 使用gpstate命令查看Greenplum数据库的整体状态,确认是否有segment实例丢失或处于异常状态。

二、处理步骤
1、针对具体错误进行处理
根据日志文件中的错误信息或警告,查找对应的解决方案。例如,如果日志中显示有segment实例丢失,可以尝试使用gprecoverseg命令来恢复丢失的segment实例。
2、资源不足处理
如果是因为资源不足导致的问题,考虑增加系统资源或优化数据库配置以减少资源消耗。
3、网络问题处理
解决网络问题,如重启网络设备、检查网络配置等。
4、权限问题处理
修改文件和目录的权限,确保Greenplum数据库有正确的访问权限。
5、数据库配置优化
根据实际情况调整数据库的配置参数,以提高数据库的性能和稳定性。
6、数据损坏处理
如果数据库中的数据文件损坏,可能需要使用数据库提供的数据恢复工具来恢复数据。在极端情况下,可能需要从备份中恢复数据。
7、联系技术支持
如果以上步骤无法解决问题,建议联系Greenplum的技术支持团队以获取更专业的帮助。
三、总结
Greenplum数据库状态不正常可能由多种因素引起,需要通过查看日志、检查系统资源、网络、权限以及数据库配置等多个方面来进行分析。在处理过程中,需要根据具体情况采取相应的措施来解决问题。如果问题复杂或难以解决,建议及时联系技术支持团队以获取帮助。

Greenplum扩容问题分析及处理

在处理Greenplum数据库的扩容问题时,可以遵循以下步骤进行分析及处理:
问题分析
1、需求分析:首先明确扩容的原因,是由于数据量增长导致存储需求增加,还是分析任务增多需要更多计算资源,或是为了提高系统的可用性和容错能力。
2、现有架构审查:检查当前Greenplum集群的硬件配置、Segment分布、资源分配情况,以及是否有未充分利用的资源。
3、性能监控:通过Greenplum内置的监控工具(如gpperfmon)和日志文件分析系统性能瓶颈,确定是否真的需要扩容,或者是否存在可以通过优化查询、索引调整等手段解决的问题。
4、规划扩容方案:
横向扩容:增加新的Segment节点,适合数据量增大,提升存储和并行处理能力。
纵向扩容:增加现有节点的资源,如内存、CPU,适合单节点处理能力不足的情况。
混合扩容:结合横向和纵向,根据具体情况综合考虑。
处理步骤
1、准备新节点:
确保新节点的硬件配置与现有节点相匹配或更优。
安装相同版本的Greenplum软件,配置操作系统、创建gpadmin用户、配置SSH无密码登录等。
2、使用gpexpand工具:
使用gpexpand命令前,需创建扩容配置文件,定义新Segment的布局。
执行gpexpand初始化、准备、运行和最终化阶段,此过程会复制数据到新节点,并更新系统目录表。
3、数据重分布:在扩容过程中,数据会被重新分布以平衡新旧节点间的负载,此过程可能会消耗大量时间和资源,需要监控并合理安排时间窗口。
4、验证和调整:
扩容完成后,验证数据完整性,确保所有数据正确无误地迁移到新节点。
调整资源分配策略,如调整work_mem、maintenance_work_mem等参数,以优化新集群的性能。
5、监控与优化:
持续监控系统性能,使用gp_toolkit视图和日志来识别潜在问题。
根据实际运行情况调整查询计划、索引策略等,进一步提升性能。
6、文档与培训:
记录扩容过程和遇到的问题及其解决方案,供未来参考。
对运维团队进行新架构和管理工具的培训,确保他们能够有效维护扩展后的系统。
在整个过程中,细致的规划、充分的测试和适时的监控是成功扩容的关键。同时,及时与Greenplum社区或专业支持沟通,可以有效解决遇到的复杂问题。

引用:通义千问、文心一言

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

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

相关文章

Python 爬虫与 Java 爬虫:相似之处、不同之处和选项

在信息时代,网络上可用的数据量巨大且不断增长。为了从这些数据中提取有用的信息,爬虫已成为一种重要的技术。Python 和 Java 都是流行的编程语言,都具有强大的爬虫功能。本文将深入探讨 Python 爬虫和 Java 爬虫之间的差异,以帮助…

【RIP实验-熟悉基础配置】

实验拓扑 实验要求 根据实验拓扑的IP地址分配,为所有设备配置对应的IP地址和环回地址。全网运行RIPv2,将R1、R2、R3和R4的物理端口、Loopback地址和10.1.00网段进行宣告。并在rip协议下配置路由自动汇总,观察R1/R2是否能够收到10.0.0.0的详细…

Python虚拟环境:Virtualenv和Pipenv的安装理解与使用

Python虚拟环境:Virtualenv和Pipenv的安装理解与使用 引言 在Python开发中,一个常见的问题是不同项目依赖不同版本的库,这可能导致版本冲突。为解决这个问题,Python社区创造了虚拟环境工具,如Virtualenv和Pipenv。本…

Postman API网络:连接API开发的桥梁

🌐 Postman API网络:连接API开发的桥梁 在当今的API驱动世界中,Postman不仅是一款强大的API开发和测试工具,还提供了一个名为API网络的功能,它允许用户共享和发现API。通过API网络,开发者可以构建、测试、…

Go语言从字符串中匹配IPV6公网地址

package mainimport ("fmt""net""regexp" )func Ipv6PatternStr(data string) []net.IP {var ips []net.IP// 使用正则表达式匹配以240开头,可能包含::的IPv6地址部分// 注意:这个正则表达式不会确保整个IPv6地址的合法性…

门墙柜加工中心是做什么的?

门墙柜加工中心,带有六工序自动换刀,是一款主要针对门板、衣柜门板、墙板扣件等工件的加工设备。 它可以实现多种加工工艺,如侧孔、三合一、隐性件等连接件,铰链孔,天地铰链槽、门锁孔槽、免拉手槽、海棠槽、灯槽、拉…

Linux系统学习 —— 计算机基础(笔记篇)

一、电脑硬件 电脑硬件由输入,控制计算,输出三部分组成。 输入部分包括键鼠,读卡器(外部接口),扫描仪(打印机的扫描仪)。计算控制部分包括CPU , 内存,硬盘&…

EHT DUP transmission

在Wi-Fi 7(802.11be)中,DUP(Duplicated Transmission)传输是一种增强的传输机制,用于提高数据传输的可靠性和效率,特别是在高干扰环境下。下面将详细解释DUP传输过程及其意义,并给出…

从模型到应用:李彦宏解读AI时代的新趋势与挑战

如何理解李彦宏说的“不要卷模型,要卷应用” 开源项目的机遇与挑战 7月4日,2024世界人工智能大会暨人工智能全球治理高级别会议在上海世博中心举办。在产业发展主论坛上,百度创始人、董事长兼首席执行官李彦宏呼吁:“大家不要卷…

Shell学习——Shell printf命令

文章目录 printf命令 printf命令 printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认的 printf 不会像 echo 自动添加换行符,我们可以手动添加 \n。 printf 命令的语…

MATLAB数据统计描述和分析

描述性统计就是搜集、整理、加工和分析统计数据, 使之系统化、条理化,以显示出数据资料的趋势、特征和数量关系。它是统计推断的基础,实用性较强,在数学建模的数据描述部分经常使用。 目录 1.频数表和直方图 2 .统计量 3.统计…

Apache Doris:下一代实时数据仓库

Apache Doris:下一代实时数据仓库 概念架构设计快速的原因——其性能的架构设计、特性和机制基于成本的优化器面向列的数据库的快速点查询数据摄取数据更新服务可用性和数据可靠性跨集群复制多租户管理便于使用半结构化数据分析据仓一体分层存储 词条诞生 概念 Apa…

Security认证要点速记

登录校验流程 springSecurity已经为我们默认实现了一个用不着的登录功能,我们需要自己实现个符合我们需求的登录功能,所以我们需要去了解默认登录功能的流程,对其中的部分进行替换 SpringSecurity底层就是过滤器链,包含实现了各种…

HarmonyOS Next应用开发之系统概述

一、鸿蒙系统概述 鸿蒙系统可以分为华为鸿蒙系统(HUAWEI HarmonyOS)和开源鸿蒙系统(OpenHarmony),华为鸿蒙系统是基于OpenHarmony基础之上开发的商业版操作系统。他们二者的关系可以用下图来表示: 1.1、…

使用Go编写的持续下行测速脚本,快速消耗流量且不伤硬盘

介绍 使用go语言编写的持续下行测速脚本,可用于任意平台使用,通过指定URL清单文本文件自动遍历测速,支持多线程,支持多平台 特性 轻量级,无依赖采用内存进行缓存数据,不占用磁盘(如果内存较小请使用gcd项目),最大程度减少磁盘IO,保护硬盘寿命可自定义最大下载文件…

webpack之ts打包

tsconfig.json配置 // 是否对js文件进行编译,默认false"allowJs": true,// 是否检查js代码是否符合语法规范,默认false(引入的外部文件有可能语法有问题)"checkJs": true, allowJs和checkJs基本是同时出现,因为有了allowJs 这个检查…

30米全国地表覆盖数据分享

我们在《136G全国1m土地覆盖数据》一文中,为你分享过全国1米土地覆盖数据。 现在再为你分享30米全国地表覆盖数据,你可以在文末查看该数据的领取方法。 30米全国地表覆盖数据 土地覆盖数据是各项研究中经常使用的数据。 它不仅可以帮助我们快速进行用…

python批量压缩zip文件

import os import os.path as osp import zipfile import shutil import glob def extract_zip(zip_path, extract_dir): with zipfile.ZipFile(zip_path, r) as zip_file: # 首先确保提取目录存在 os.makedirs(extract_dir, exist_okTrue) …

开发个人Go-ChatGPT--6 OpenUI

开发个人Go-ChatGPT–6 OpenUI Open-webui Open WebUI 是一种可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线运行。它支持各种 LLM 运行器,包括 Ollama 和 OpenAI 兼容的 API。 功能 由于总所周知的原由,OpenAI 的接口需要密钥才…

【南京蓝领新材料】水力颗粒分离器工作原理

水力颗粒分离器工作原理 在装置内部设有一个具有一定空间的滤网,雨水从进水管流入,先进入滤网过滤,雨水中的悬浮物和漂浮物将被拦截在此滤网内。 在装置底部有三个腔室,当雨水中小的颗粒物流到每个腔室挡墙前时,颗粒物…