如何构建一个高效的微服务治理闭环管理体系

news2024/11/15 12:51:18

随着企业业务的快速发展和数字化转型的推进,微服务架构因其高度的灵活性、可扩展性和可维护性而逐渐成为主流。然而,微服务架构的复杂性也带来了诸多治理挑战。为了有效应对这些挑战,构建一个微服务治理闭环至关重要。

1、微服务治理概述

微服务治理是指对微服务架构中的服务进行有效管理和控制,确保服务的高可用性、高性能和安全性,前面已经介绍过,这里包括诸如服务注册与发现、服务配置管理、服务监控、服务限流、服务熔断、服务负载均衡、服务安全等各个方面。进行微服务治理的目标是实现服务之间的协同和优化,提高系统的整体效率和稳定性。

微服务治理的目的

1. 通过微服务治理确保服务高可用性:通过服务治理,可以实时监控服务的运行状况,发现和解决潜在问题,确保服务的高可用性。

2. 通过微服务治理提高系统性能:通过对服务进行限流、熔断等操作,可以避免系统过载,提高系统性能。

3. 通用微服务治理保障服务安全性:通过服务治理,可以对服务进行安全控制,如身份认证、权限校验等,确保服务的安全性。

4. 通用微服务治理进行更便捷地服务维护:通过服务治理,可以实现服务的自动化部署、监控和故障排查,降低运维成本,提高服务维护效率。

5. 通过微服务治理促进服务间的协同:通过服务治理,可以实现服务之间的有效协同,提高系统的整体效率和稳定性。

微服务治理的挑战

 

a7f615b62db2f758f8801389c2b6669d.png

微服务治理的进程中,面临的挑战主要包括以下方面:

1. 服务拆分的挑战:如何将一个庞大的单体应用拆分成多个微服务,并确保各个服务之间的协同和优化。

2. 服务发现的挑战:在微服务架构中,服务数量众多,如何实现服务的自动发现和动态注册。

3. 服务监控的挑战:如何实时监控服务的运行状况,发现和解决潜在问题。

4. 服务限流的挑战:如何避免系统过载,实现服务的限流和熔断。

5. 服务安全的挑战:如何对服务进行安全控制,如身份认证、权限校验等。

6. 服务配置管理的挑战:如何实现服务的动态配置管理,提高服务维护效率。

7. 服务路由的挑战:如何根据实际需求,实现服务之间的动态路由。

8. 服务熔断的挑战:如何避免服务雪崩效应,实现服务的熔断和降级。

9. 服务事务管理的挑战:如何保证微服务架构下的分布式事务一致性。

10. 跨服务协同的挑战:如何实现跨服务的事务和协同,提高系统的整体效率和稳定性。

 

随着服务数量的增加和系统复杂性的提升,如何有效地管理和治理这些微服务成为了新的挑战。接下来将和大家一起深入探讨如何构建一个包括数据驱动、持续改进、自动化和智能化在内的微服务闭环治理体系,以实现高效的服务管理和运维,确保系统的稳定性和业务的高效运行。

2、数据驱动:微服务治理的基石

在微服务治理中,数据扮演着至关重要的角色。通过收集、分析和可视化微服务运行过程中的各种数据(如性能指标、错误日志、调用链路等),可以更好地洞察系统的行为模式、性能瓶颈和潜在风险。这些数据不仅为治理决策提供了有力支持,还是评估治理效果的重要依据。

为了实现数据驱动的治理,需要构建一个完善的数据采集、存储和分析体系。这包括使用监控工具(如 Prometheus、Zipkin 等)来收集运行数据,利用时序数据库或日志管理系统来存储数据,以及运用数据分析和可视化技术来挖掘数据价值。

数据收集

数据收集是数据驱动的第一步,包括收集微服务的各种运行数据,比如系统日志、监控指标、链路跟踪等。这些数据都可以帮助我们了解服务的运行状况,发现潜在问题和优化空间。它是数据驱动微服务治理的基础,涉及到从各个微服务中收集必要的运行时数据。

  1. 应用程序日志收集:这个都懂,我们可以使用日志框架,比如 Log4j、Logback,在应用程序中记录对应的日志,并通用日志收集的 Agent 将日志发送到日志存储系统,云上的话,比较推荐阿里云的日志服务 SLS。
  2. 容器日志收集:现在基本上都是容器化技术,比如 Docker、Kubernetes,可以用日志驱动程序把容器日志发送到日志收集系统。
  3. 监控指标收集:应用程序对接 metrics 接口,比如 Prometheus 格式的指标,这样可以通过 Prometheus 等监控工具定期抓取这些指标数据。
  4. 分布式跟踪:可以使用分布式跟踪系统来收集服务间调研的跟踪数据,便于分析服务调用链和性能瓶颈。
    1. Zipkin:由 Twitter 开发的开源分布式跟踪系统,用于跟踪、监控和分析微服务架构中的请求流
    2. Jaeger:由 Uber Technologies 开发的开源分布式跟踪系统,与 Zipkin 类似,用于监控和诊断微服务架构中的性能问题
    3. 各家云厂商对应的服务:AWS X-Ray、Google Cloud Trace、Alibaba Cloud Trace
  1. 基础设施监控:使用基础设施监控工具收集服务器、网络、存储等基础设施的监控数据
  2. 用户行为日志:系统中用户操作行为日志收集,这个是只要是人操作的系统都必须具备的功能

数据存储

数据存储涉及到如何选择合适的数据存储方案来保存收集到的数据,以便后续的分析和处理。数据存储的目标是确保数据的安全、可靠、高效访问,并支持快速的查询和分析功能。

  1. 存储需求分析:在存储方案确定之前首先要对存储需求进行详细的分析,比如要分析需要存储的数据类型、规模、访问模式、查询需求和性能要求。然后根据需求分析的结果,确定需要使用何种存储方案。
  2. 关系型数据库:用于存储结构化数据,可以支持复杂的查询和事务处理,可以选择的也比较典型,比如:MySQL、PostgreSQL 等。
  3. NoSQL 型数据库:用于存储非结构化和半结构化数据,可以选择 MongoDB、Redis 等。
  4. 时序型数据库:专门用于存储时间序列数据,比如我们的监控指标、日志等,可以选择 InfluxDB、Prometheus 等。
  5. 日志存储系统:用于存储和分析日志数据,要求提供全文搜索和聚合分析的功能,一般可选择 ES、Logstash 等。
  6. 对象存储系统:用于存储大量的非结构化数据,比如图片、视频、文档类型的数据等,一般可选择 Amazon S3、Google Cloud Storage、Azure Blob Storage 等。
  7. 其他数据存储相关技术:
    1. 数据分区和索引:对数据进行分区和建立索引提升查询性能
    2. 数据备份和恢复:定期对数据进行备份,备份策略可选择全量备份、增量备份、差异备份等,可以确保出现问题时可快速恢复数据
    3. 数据安全和合规性:需要从技术层面确保数据存储符合安全标准和合规要求
    4. 数据全生命周期管理:确定数据的生命周期,可以增加数据归档、删除、迁移等相关策略

数据分析

数据分析是对收集到的数据进行实时和离线分析,以发现潜在问题和优化空间。数据分析可以帮助我们了解服务的性能瓶颈、故障原因等,从而为优化和改进提供依据。数据分析主要包括以下部分:

  1. 数据预处理: 关于治理相关的数据预处理主要包括:
    1. 数据清洗:去除数据中的噪声和不完整信息,确保数据质量
    2. 数据转换:将数据转换为统一的格式,便于后续分析
    3. 数据聚合:按照一定的规则将数据合并,如按时间聚合、按服务聚合等
  1. 实时数据分析:使用流处理技术,比如 Apache Kafka、Apache Flink、Spark Streaming 等对实时数据进行处理和分析。实时数据分析可以用于监控服务的健康状况,如检测异常流量、响应时间过长等场景。
  1. 离线数据分析:对存储在数据库或数据湖中的历史数据进行批量处理和分析,离线数据分析可以用于发现长期趋势、性能瓶颈、用户行为等。
  1. 数据挖掘和机器学习:再高级一点的系统能力,就是应用数据挖掘技术和机器学习算法对数据进行深入分析,以发现数据中的模式和关联。比如可以使用聚类算法对用户进行分群,使用预测模型预测服务负载等。
  1. 数据可视化:使用可视化工具,比如 Grafana、Kibana 等,将分析结果以图表、仪表盘等形式展示出来,帮助团队更快地理解和传达分析结果。
  1. 数据报告:可以通过工具定期生成数据报告,总结分析结果和洞察,分享给团队成员和管理层,同样数据报告也可以用于跟踪服务性能、评估改进措施的效果等。
  1. 决策支持:基于数据分析的结果,为服务优化、资源调配、故障排查等提供决策支持,比如可以根据性能分析结果,决定是否需要扩展服务实例或优化代码。
  1. 持续学习和优化:数据分析是一个持续的过程,需要不断学习和优化分析模型和算法,通过收集新的数据和反馈,不断改进数据分析的效果和准确性。

数据可视化

数据可视化是将分析结果以图表、仪表盘等形式展示出来,便于团队快速了解服务状况。数据可视化可以帮助我们发现问题的趋势和模式,从而更好地指导决策。常用的数据可视化工具有 Grafana、Kibana 等。

  1. 数据可视化的重要性:数据可视化可以提高数据洞察的效率,使复杂的数据更容易理解,帮助团队更快地识别趋势、模式和异常,从而做出更明智的决策。
  1. 可视化工具的选择:选择合适的可视化工具是关键,常见的工具包括 Grafana、Kibana、Tableau、Power BI 等,这些工具通常支持多种数据源,并提供丰富的图表类型和自定义选项。
  1. 图表类型的选用:根据数据的类型和分析目标选择合适的图表类型,如柱状图、折线图、饼图、散点图、热力图等,比如柱状图适用于展示一段时间内的数据变化,饼图适用于展示数据的组成比例。
  1. 仪表盘的设计: 设计仪表盘时,应该考虑信息的组织结构和用户的需求,仪表盘应该清晰、直观,避免信息过载,关键指标应该突出显示。
  1. 实时数据可视化:实时数据可视化可以提供服务的即时状态,帮助团队及时发现和解决问题。
  1. 交互式可视化:交互式可视化允许用户与图表进行交互,如缩放、筛选、排序等,以探索数据的更多细节,这种方式的可视化可以提高用户的参与度,帮助他们更好地理解数据。
  1. 基于地理信息的可视化:对于分布式微服务架构,使用地图等地理信息可视化工具可以展示服务的全球分布和性能。
  1. 多维数据可视化:微服务架构中的数据通常具有多个维度,使用多维数据可视化可以展示更多的细节和关联。
  1. 可视化报告:定期生成可视化报告,总结分析结果和洞察,分享给团队成员和管理层。
  1. 数据故事讲述:使用数据故事讲述的方法,通过一系列图表和图形来讲述数据背后的故事,可以帮助更好地传达分析结果和洞察。

数据决策

数据决策是基于数据和分析结果来制定和执行决策。数据决策可以帮助我们更客观、科学地评估和优化服务,提高系统的稳定性和性能。在微服务治理中,数据决策可以帮助团队更客观、科学地评估和优化服务,提高系统的稳定性和性能。

  1. 数据驱动的决策文化:需要在企业内建立一个数据驱动的决策文化,鼓励团队成员使用数据来支持他们的观点和决策,同时要通过培训和教育,提高团队成员的数据分析和决策能力。
  1. 决策支持系统:使用决策支持系统,比如 BI 工具、数据仓库、数据分析平台等,来帮助团队成员访问和分析数据,需要提供自助式分析、预测模型、模拟等功能。
  1. 数据驱动的指标和关键绩效指标:定义和跟踪与业务目标相关的指标和 KPI,以便于监控和评估服务的性能,比如,可以跟踪服务的响应时间、错误率、吞吐量等指标。
  1. 数据分析结果的应用:将数据分析结果应用于服务设计、资源调配、故障排查等方面,比如可以根据性能分析结果,决定是否需要扩展服务实例或优化代码。
  1. 智能决策和自动化:利用人工智能和机器学习技术,实现更智能的决策和自动化操作。
  1. 决策的评估和迭代:对决策的结果进行评估,以便了解其效果和影响,同时要根据评估结果,不断迭代和优化决策过程。
  1. 决策的沟通和协作:要确保决策过程中的透明度和沟通,使团队成员能够理解和支持决策,同时,使用协作工具和平台,促进团队成员之间的协作和知识共享。
  1. 决策的合规性和伦理:确保决策符合相关的法律法规和伦理标准,如数据保护法规、隐私保护等。

数据驱动的微服务治理强调构建一个闭环的治理体系,即从数据收集、存储、分析、可视化到决策,形成一个持续迭代、不断优化的过程。这个闭环可以帮助我们持续改进服务治理,提高系统的整体效率和稳定性。

 

a9305b11c9f1cade9f8e9b8246454eae.png

数据驱动的微服务治理强调使用数据来指导决策和行动,构建一个闭环的治理体系,从而实现服务的高效管理和运维。数据驱动的微服务治理可以帮助我们更好地应对微服务架构带来的挑战,提高系统的稳定性和性能。

3、持续改进:微服务治理的核心原则

微服务治理不是一蹴而就的过程,而是需要持续不断地进行改进和优化。这要求企业建立一种持续改进的文化,鼓励团队成员不断寻求改进机会,并勇于尝试新的治理策略和技术。持续改进是微服务治理的核心原则,它强调不断地评估和优化微服务架构和治理过程,以适应不断变化的需求和环境。在持续改进这部分主要包括以下几个方面:

审计和监控

审计和监控是持续改进的基础,通用持续对服务的运行状况进行监控,可以及时发现潜在的问题和改进机会。从上面数据驱动部分,我们可以使用日志记录、监控工具和告警系统来收集和分析服务的运行数据。

性能和可靠性度量

前面在度量体系有讲到这部分的内容,要持续改进,我们就要先定义和跟踪与业务目标相关的性能和可靠性度量,比如我们服务的相约时间、错误率、吞吐量等指标。基于性能和可靠性的度量,可以帮助研发团队更好地了解服务的当前状态,并确定改进的方向。

用户反馈和需求分析

互联网时代,产品系统要向不停地进步,就需要持续的收集用户反馈,了解用户的需求和期望,以及他们对服务性能和功能的满意度,我们可以通过对用户行为和使用模式的分析,来发现改进的机会。

竞争对手分析

对竞争对手的服务和产品,进行全方面的分析,可以了解他的优劣势以及行业的趋势,这样可以有利于我们确定自己的竞争优势和改进方向。

技术趋势和创新

作为技术人,本身是要持续关注新技术和创新的,要了解如何将这些新技术应用到微服务治理中,比如,我们可以探索 AI、容器化技术等在微服务治理中的应用。

团队协作和知识共享

微服务的团队需要建立完善的跨团队的协作机制,促进知识共享和经验交流。同样团队协作也是可以帮助快速实现最佳实践和创新思路的方式。

定期复盘和评估

我们要固定时间定期对微服务治理的效果进行复盘和评估,确定改进的机会和优先级。

培训与教育

内部需要提供培训与教育的机会,帮助团队成员提升对应的技能,整体团队实力提升之后,是能更好地应对挑战和变化。

 

通过持续改进,团队是可以不断提高微服务的性能和可靠性,适应不断变化的需求和环节,实现更好的业务成果。持续改进是一个循环过程,是需要团队不断地收集反馈、分析数据、制定和执行改进措施,并评估结果。

4、自动化:微服务治理的关键

面对微服务架构中的大量服务和复杂依赖关系,手动进行治理既不现实也不高效。因此,自动化成为提高微服务治理效率的关键手段。它通过减少手动干预和提高效率来优化服务治理流程。主要包括以下内容:

自动化部署

使用持续集成和持续部署(CI/CD)的工具,比如云厂商服务、Jenkins、GitLab 等来自动化应用程序的构建、测试和部署过程,自动化部署可以减少手动操作,降低部署风险,并加快迭代速度。

自动化监控

使用配置监控工具,比如云厂商服务、Prometheus、Grafana 等,来自动化监控微服务的性能、可用性和健康状况,通用自动化监控可以实时发现异常和性能瓶颈,确保服务的稳定性和可靠性。

自动化故障转移和限流

使用服务网格和断路器模式来自动化微服务的故障转移和限流,当一个服务出现故障或者过载时,自动化系统就可以快速切换到备用服务或者限流访问,来保护系统整体的可用性。

自动化配置管理

使用配置管理工具,比如云厂商服务、Ansible、Chef 等来自动化配置文件的部署和管理,自动化配置管理可以确保服务始终运行在正确的配置上,减少配置错误带来的风险。

自动化日志管理和分析

使用日志管理工具,比如云厂商服务、Elasticsearch、Logstash、Kibana等来自动化日志的收集、存储、索引和分析,自动化日志管理可以提供快速的问题诊断和故障排查能力。

自动化测试

使用自动化测试工具,比如云厂商服务、Selenium、JUnit 等来自动化测试微服务的功能和性能,自动化测试可以确保微服务在发布前经过全面的测试,减少缺陷和故障的风险。

自动化文档和知识库

使用文档和知识库工具,比如文档服务产品(钉钉文档、飞书文档、Notion 等)、GitHub等来自动化文档的生成和管理,自动化文档和知识库可以帮助团队快速访问和更新服务相关的信息。

自动化安全防护

使用安全工具,比如云厂商服务、OWASP ZAP、Selenium等来自动化安全扫描和漏洞检测,自动化安全防护可以确保微服务的安全性,及时发现和修复安全漏洞。

自动化通知和告警

配置告警系统,比如云厂商服务、PagerDuty、Alertmanager等来自动化通知和告警,确保在出现问题时能够及时响应,自动化告警可以帮助团队快速定位问题,并采取相应的措施。

自动化性能优化

使用性能分析工具,比如云厂商服务、Gatling、Locust等来自动化性能测试和优化,自动化性能优化可以确保微服务能够处理预期的负载,并针对瓶颈进行优化。

 

通过这些关键的自动化内容,微服务治理可以提高效率,减少人为错误,确保服务的稳定性和可靠性。自动化还可以加速开发和部署流程,缩短反馈循环,促进快速迭代和创新。

5、智能化:微服务治理的未来发展方向

随着人工智能和机器学习技术的不断发展,智能化正逐渐成为微服务治理的未来发展方向之一。智能化治理能够利用这些先进技术来自动分析数据、识别问题、推荐解决方案,并持续优化治理策略。它通过应用人工智能和机器学习技术,实现更高效、更智能的服务管理和控制。

服务预测性维护

利用机器学习算法分析历史数据和监控指标,预测服务可能出现的故障和性能瓶颈。预测性维护可以减少系统停机时间,提高服务的可用性。

自动化服务优化

应用人工智能技术自动调整服务配置、资源分配和负载均衡,以优化性能和降低成本。比如现在很多云厂商服务产品已经支持的可以根据预测的负载自动调整服务实例的数量。

智能故障诊断

使用自然语言处理和模式识别技术,自动分析日志和监控数据,以快速诊断和定位服务故障。智能故障诊断可以减少故障排查的时间,提高系统的可靠性。

自动化服务编排

利用人工智能技术来自动化服务部署、配置和升级过程,以提高效率和降低人为错误。自动化服务编排可以简化运维工作,让团队专注于更复杂的问题。

智能资源调度

利用机器学习算法预测资源需求,自动分配和调度计算资源,以提高资源利用率。智能资源调度可以优化资源分配,减少资源浪费。

自动化服务安全

利用人工智能技术来自动化安全防护措施,如入侵检测、异常行为分析等。自动化服务安全可以提高系统的安全性,减少安全事件的发生。

智能服务治理

利用人工智能技术来自动化服务治理流程,如服务注册、发现、配置管理等。智能服务治理可以提高治理效率,减少人工干预。

个性化服务管理

利用机器学习算法分析用户行为和需求,提供个性化的服务管理和优化方案。个性化服务管理可以提高用户满意度,提升服务质量。

自动化服务创新

利用人工智能技术来自动化服务创新和研发,如自动生成新的服务原型、优化算法等。自动化服务创新可以加速产品迭代,提高竞争力。

持续学习和优化

利用机器学习算法来自动化持续学习和优化服务治理过程,以适应不断变化的需求和环境。持续学习和优化有助于提高微服务的治理效果和效率。
 

通过应用人工智能和机器学习技术,微服务治理可以实现更高效、更智能的服务管理和控制,提高系统的整体性能和可靠性。

 

智能化服务治理的未来发展方向主要包括:

  • 更高效的资源利用和性能优化
  • 更快速的故障诊断和相应
  • 更智能的服务编排和自动化
  • 更高级的安全防护和风险管理
  • 更个性化的服务管理和优化
  • 更快的服务创新和迭代

5、构建微服务治理闭环

将数据驱动、持续改进、自动化和智能化相结合,可以构建一个完整的微服务治理闭环。在这个闭环中,数据驱动提供了治理决策的依据和评估标准;持续改进确保了治理过程的不断优化和完善;自动化提高了治理效率,减少了人工干预;智能化则为治理带来了更高的智能水平和自动化程度。

这个闭环不仅有助于企业更好地应对微服务架构带来的治理挑战,还能为企业的数字化转型提供有力支持。通过不断优化和完善微服务治理闭环,企业可以构建一个更加稳定、高效和安全的微服务生态系统,从而更好地满足业务需求并推动创新发展。

 

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

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

相关文章

SpringCloud-Ribbon:负载均衡(基于客户端)

6. Ribbon:负载均衡(基于客户端) 6.1 负载均衡以及Ribbon Ribbon是什么? Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具。简单的说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负…

C++面试宝典第27题:完全平方数之和

题目 给定正整数 n,找到若干个完全平方数(比如:1、4、9、16、...),使得它们的和等于n。你需要让组成和的完全平方数的个数最少。 示例1: 输入:n = 12 输出:3 解释:12 = 4 + 4 + 4。 示例2: 输入:n = 13 输出:2 解释:13 = 4 + 9。 解析 这道题主要考察应聘者对于…

Android中的MVVM

演变 开发常用的框架包括MVC、MVP和本文的MVVM,三种框架都是为了分离ui界面和处理逻辑而出现的框架模式。mvp、mvvm都由mvc演化而来,他们不属于某种语言的框架,当存在ui页面和逻辑代码时,我们就可以使用这三种模式。 model和vie…

Mybatis- plus 基本使用

目录 一. 引入依赖 二.定义Mapper 三.常见注解 3.1TableName 3.2.TableId 3.3TableField 3.4常见配置 一. 引入依赖 由于这个starter包含对mybatis的自动装配&#xff0c;因此完全可以替换掉Mybatis的starter。 <dependency><groupId>com.baomidou</gr…

阿里云企业用户2核4G5M固定带宽199元一年,续费不涨价

2024年2月阿里云服务器租用价格表更新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核…

[职场] 服务行业个人简历 #笔记#笔记

服务行业个人简历 服务员个人简历范文1 姓名: XXX国籍:中国 目前所在地:天河区民族:汉族 户口所在地:阳江身材: 160cm43kg 婚姻状况:未婚年龄: 21岁 培训认证:诚信徽章: 求职意向及工作经历 人才类型:普通求职 应聘职位: 工作年限:职称:初级 求职类型:全职可到职日期:随时 月薪…

进程间通信(5):信号灯集

信号灯也叫信号量&#xff0c;是不同进程间或一个给定进程内部不同线程间同步的机制。 信号灯集为信号量的集合&#xff0c;实现同步、互斥机制&#xff0c;配合共享内存使用&#xff0c;解决资源竞争问题。 函数&#xff1a;semget、semctl、semop 实现流程&#xff1a; 1…

滑动窗口(二)

文章目录 Leetcode1658. 将 x 减到 0 的最小操作数题目解法&#xff08;滑动窗口&#xff09; Leetcode904. 水果成篮题目解法&#xff08;滑动窗口&#xff09; Leetcode438. 找到字符串中所有字母异位词题目解法&#xff08;滑动窗口&#xff09; Leetcode1658. 将 x 减到 0 …

如何从iPhone15上恢复意外删除的数据文件(备忘录、通讯录、照片等)

您是否正在寻找恢复 Apple 设备上丢失数据的方法&#xff1f;这是最好用的 iPhone 15数据恢复软件的汇总。 iPhone 数据恢复软件允许从Apple 设备中检索丢失或删除的数据。随着越来越依赖智能手机来存储个人和专业信息&#xff0c;数据丢失可能是一种令人沮丧和压力很大的体验…

licheepi nano 从零开始使用sd卡启动

本文目的&#xff1a;licheepi nano从零开始&#xff0c;使用sd卡启动&#xff1b; 某些原因导致需要重新捣鼓uboot&#xff0c;但过程中频繁出错&#xff0c;后悔最初没有记录详细的操作方法&#xff0c;此帖主要为自己出口气&#xff0c;重新记录&#xff1b; 持续完善&#…

CentOS 安装 redis 7.2

nginx官网 https://redis.io/download/ 把鼠标放到这里&#xff0c;复制下载地址 在服务器找个文件夹执行命令 wget https://github.com/redis/redis/archive/7.2.4.tar.gz tar -zxvf 7.2.4.tar.gz make make install 看到这几行就说明安装成功了 不放心的话再查看下b…

Java基础常见面试题总结-并发(一)

线程池 线程池&#xff1a;一个管理线程的池子。 为什么平时都是使用线程池创建线程&#xff0c;直接new一个线程不好吗&#xff1f; 嗯&#xff0c;手动创建线程有两个缺点 不受控风险频繁创建开销大 为什么不受控&#xff1f; 系统资源有限&#xff0c;每个人针对不同业…

【C++】引用与内联

个人主页 &#xff1a; zxctsclrjjjcph 文章封面来自&#xff1a;艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 引用2.1 引用概念2.2 引用使用场景2.3 引用特性2.4 引用和指针的区别2.5 传值、传引用效率比较2.5.1 值和引用的作为返回值类型的性能比较 3. 内联函数3.1 …

React + SpringBoot + Minio实现文件的预览

思路&#xff1a;后端提供接口&#xff0c;从minio获取文件的预览链接&#xff0c;返回给前端&#xff0c;前端使用组件进行渲染展示 这里我从minio获取文件预览地址用到了一个最近刚开源的项目&#xff0c;挺好用的&#xff0c;大伙可以试试&#xff0c;用法也很简单 官网&am…

【Unity】QFramework通用背包系统优化:TipPanel优化

前言 在学习凉鞋老师的课程《QFramework系统设计&#xff1a;通用背包系统》第五章时&#xff0c;笔者对物品提示TipPanel界面进行了一些优化。 优化内容包括&#xff1a; 解决闪烁问题跟随鼠标移动自适应界面大小生成位置优化 效果还是蛮丝滑的&#xff1a; 解决闪烁问题 …

Unknown system variable ‘tx_read_only

使用datagrip可以创建成功 但是使用pycharm就会报一个错误“Unknown system variable tx_read_only”

springboot164党员教育和管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

作业2.8

1、选择题 1.1、以下选项中,不能作为合法常量的是 ____B______ A&#xff09;1.234e04 B&#xff09;1.234e0.4 C&#xff09;1.234e4 D&#xff09;1.234e0 1.2、以下定义变量并初始化错误的是_____D________。 A) char c1 ‘H’ &#xff1b; B) char c…

第3章 模板

学习目标 了解模板与模板引擎Jinja2&#xff0c;能够复述模板引擎和模板的作用 掌握模板变量的语法&#xff0c;能够在Jinja2模板中定义模板变量 掌握过滤器的使用&#xff0c;能够在Jinja2模板中使用过滤器过滤模板变量保存的数据 掌握选择结构的使用&#xff0c;能够在Jin…

Redis篇之过期淘汰策略

一、数据的过期策略 1.什么是过期策略 Redis对数据设置数据的有效时间&#xff0c;数据过期以后&#xff0c;就需要将数据从内存中删除掉。可以按照不同的规则进行删除&#xff0c;这种删除规则就被称之为数据的删除策略&#xff08;数据过期策略&#xff09;。 2.过期策略-惰…