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

面试专区|【52道微服务架构高频题整理(附答案背诵版)】

简述什么是微服务?

微服务是一种软件架构风格,它将应用程序拆分成一系列小型、独立的服务,每个服务都运行在其自己的进程中,通过轻量级通信机制进行通信。每个服务都具有明确的业务能力,并且可以独立开发、测试、部署和扩展。微服务架构的核心思想是将应用程序分解为多个小型服务,每个服务都具有独立的功能和责任。每个服务都可以独立地开发、测试、部署和扩展,从而提高了应用程序的可维护性、可扩展性和灵活性。

简述微服务的优缺点 ?

微服务的优点主要包括:

  1. 独立性:每个微服务都是独立的、可独立部署和扩展的。
  2. 轻量级通信:微服务之间通过轻量级通信机制进行通信,例如基于HTTP的RESTful API或者消息队列等。
  3. 单一职责:每个微服务都专注于特定的业务能力,具有明确的职责和边界。
  4. 松耦合:微服务之间的依赖关系尽量减少,每个微服务都可以独立地运行和更新。
  5. 灵活性:微服务架构使得系统更加灵活,可以根据实际需求进行灵活的组合和使用,提高了系统的可维护性和可重用性。
  6. 每个服务可以独立使用数据库:每个服务可以使用自己的数据库,这使得每个服务都可以根据其业务需求独立地存储和检索数据。
  7. 开发体验好:由于每个服务都是独立的,开发人员只需要关注自己的业务领域,这使得开发更加快速和高效。
  8. 按需扩容:由于每个服务都可以独立地进行部署和扩展,因此可以根据需求进行灵活的扩容。

微服务的缺点主要包括:

  1. 处理故障难度高:由于微服务是分布式系统,故障的处理可能会更加复杂。例如,当某个服务出现故障时,需要确定故障的原因并进行修复,这可能需要跨多个服务进行调试和排查。
  2. 部署工作量大:由于每个服务都需要进行独立的部署,因此部署的工作量可能会比单体应用程序要大得多。
  3. 测试复杂度高:由于微服务之间存在复杂的依赖关系,因此测试的复杂度可能会比单体应用程序要高。
  4. 运营成本增加:由于每个服务都需要进行独立的监控和管理,因此运营的成本可能会比单体应用程序要高。
  5. 发布风险高:由于每个服务都可能有自己的发布计划和时间表,因此可能会出现不同服务的版本不一致的情况,这可能会导致一些潜在的风险。
  6. 分布性系统问题:由于微服务是分布式系统,因此可能会面临一些分布式系统的常见问题,例如网络延迟、服务调用失败、系统容量规划等。

简述分布式和微服务的区别 ?

分布式和微服务虽然都是一种架构风格,但它们有着不同的设计和部署特点。

微服务架构是一种将应用程序拆分成多个小型、独立的服务,每个服务都运行在其自己的进程中,具有明确的业务能力,并且可以独立开发、测试、部署和扩展。微服务架构的核心思想是将应用程序分解为多个小型服务,每个服务都具有独立的功能和责任。每个服务都可以独立地开发、测试、部署和扩展,从而提高了应用程序的可维护性、可扩展性和灵活性。

分布式系统则是将若干独立计算机的集合,这些计算机对用户来说就像单个相关系统。分布式系统常用于处理大型应用程序,将应用程序的不同部分部署在不同的计算机上,并通过网络通信进行数据交互。分布式系统可以处理大量的并发用户请求,并且具有较高的可靠性和容错性。

总的来说,分布式系统和微服务架构在设计和部署上存在明显的差异。微服务架构更侧重于服务的拆分和独立部署,而分布式系统更侧重于不同计算机的协作和共同工作。

简述微服务的服务怎么划分原则 ?

微服务的服务划分原则主要包括以下几点:

  1. 单一职责原则:每个微服务应该只负责一个特定的业务功能。单一职责原则有助于保持服务的聚焦和简单,便于独立开发和维护。如果一个服务承担了过多的职责,它可能会变得臃肿和复杂,从而影响到整个系统的健壮性和可维护性。
  2. 业务领域驱动划分:根据应用程序的业务需求和领域知识来对服务进行划分。这通常需要与业务专家和开发人员紧密合作,共同识别和定义各个领域的边界。通过领域驱动的划分,可以确保各个微服务的业务逻辑紧密联系在一起,便于维护和拓展。
  3. 层次结构清晰:微服务要有层次结构,不能形成网状,应该要有比较清晰的层次划分,分为高、低层,每层可以有多个服务,高层单向调用低层,同一层级之间可互调。
  4. 独立性:每个微服务都应该是独立的、可独立部署和扩展的。每个服务都应该具有自己的数据库、通信机制和身份验证等独立的功能模块。
  5. 可扩展性:每个微服务都应该能够独立地进行扩展,例如增加服务器、数据库等资源,以满足不断增长的用户需求。
  6. 松耦合:微服务之间的依赖关系应该尽量减少,每个微服务都可以独立地运行和更新。这可以提高系统的容错性和可维护性。
  7. 独立部署和扩展:每个微服务都应该能够独立地进行部署和扩展,以满足不同用户的需求和服务质量要求。
  8. 服务间通信简单:微服务之间的通信机制应该简单、可靠和高效,例如使用RESTful API或者消息队列等。
  9. 数据一致性:在分布式系统中,数据一致性是一个重要的问题。微服务架构需要处理不同服务之间的数据一致性问题,例如使用分布式事务或者基于消息的异步通信等。
  10. 日志和监控:每个微服务都应该具有独立的日志和监控机制,以便及时发现和解决问题。

总之,微服务的服务划分原则是确保每个微服务都具有清晰的责任和边界,便于独立开发、部署、扩展和维护。同时,要确保整个系统的松耦合和高内聚性,以提高系统的可靠性和可维护性。

请列举微服务设计原则 ?

微服务设计原则主要包括以下几点:

  1. 独立性:每个微服务都应该是独立的、可独立部署和扩展的。这意味着每个微服务都应该具有自己的数据库、通信机制和身份验证等独立的功能模块。
  2. 单一职责原则:每个微服务应该只负责一个特定的业务功能。这有助于保持服务的聚焦和简单,便于独立开发和维护。
  3. 无状态性:每个微服务不应该依赖于外部状态,例如其他服务的状态或者全局状态。如果需要外部状态,应该通过API调用其他服务或者使用缓存来获取。
  4. 轻量级通信:微服务之间应该使用轻量级的通信机制进行通信,例如基于HTTP的RESTful API或者消息队列等。这可以提高通信的灵活性和可扩展性。
  5. 边界明确:每个微服务的边界应该明确,具有清晰的职责和范围。这有助于确保服务的独立性和可维护性。
  6. 高内聚性:每个微服务的内部功能应该紧密联系在一起,共同实现一个特定的业务功能。这有助于保持服务的内聚性和可维护性。
  7. 松耦合:微服务之间的依赖关系应该尽量减少,每个微服务都可以独立地运行和更新。这可以提高系统的容错性和可维护性。
  8. 独立部署和扩展:每个微服务都应该能够独立地进行部署和扩展,以满足不同用户的需求和服务质量要求。
  9. 高度可配置性:每个微服务都应该具有高度可配置性,以便根据实际需求进行灵活的配置和调整。
  10. 安全性:每个微服务都应该具有必要的安全措施,例如身份验证、授权、数据加密等,以确保数据的安全性和隐私保护。

总之,微服务设计原则是确保每个微服务都具有清晰的责任和边界,便于独立开发、部署、扩展和维护。同时,要确保整个系统的松耦合和高内聚性,以提高系统的可靠性和可维护性。

简述微服务之间是如何通讯的?

微服务之间可以通过不同的通信方式进行通信,包括同步通信和异步通信。

同步通信是指微服务之间通过请求-响应的方式进行通信,例如RESTful API和RPC。在同步通信中,请求方需要等待响应方的返回结果,因此可靠性较高,但可能会出现请求排队、线程阻塞等问题,从而影响系统的响应速度和并发性能。

异步通信是指微服务之间通过消息队列进行异步通信,例如Kafka和RabbitMQ。在异步通信中,发送方向消息队列发送消息,接收方从消息队列中消费消息,消息传输以异步的方式进行,不需要等待接收方的响应。由于解耦性高,消息队列还可以支持发布-订阅模式,消息得以广播到多个服务中,助于构建高可伸缩的系统。不过异步通信也可能导致延迟较高,以及可靠性和容错性较差等问题。

在微服务架构中,通常会根据实际需求选择合适的通信方式。

简述微服务通信协议选择的方式以及考虑因素 ?

微服务通信协议的选择方式以及考虑因素主要包括以下几点:

  1. 性能:性能是服务间通信协议最重要的衡量标准之一。在分布式环境下,服务间通信协议的性能直接影响着系统的整体性能。一些常见的性能指标包括延迟、吞吐量和并发性。因此,在选择通信协议时,需要充分考虑这些性能指标,选择能够满足系统需求的通信协议。
  2. 可靠性:可靠性是指通信协议在传输数据时的可靠性。在微服务架构中,由于服务之间是相互独立的,因此需要保证通信协议的可靠性,以确保数据传输的完整性和准确性。一些常见的可靠性措施包括数据校验、重试机制和容错处理等。
  3. 易用性:易用性是指通信协议的易用程度,包括开发难度、调试和维护的便利性等。在选择通信协议时,需要考虑开发人员的技术水平和经验,选择易于理解和使用的通信协议。
  4. 可扩展性:可扩展性是指通信协议的可扩展性,包括对不同服务之间通信需求的适应能力、对未来技术发展的适应性等。在选择通信协议时,需要考虑系统的扩展需求,选择具有可扩展性的通信协议。
  5. 安全性:安全性是指通信协议的安全性,包括数据传输的加密、身份验证和授权等。在选择通信协议时,需要考虑系统的安全性需求,选择具有安全性的通信协议,以保护数据的安全性和隐私性。

综上所述,微服务通信协议的选择需要结合实际需求和系统特点,综合考虑性能、可靠性、易用性、可扩展性和安全性等因素,以选择最适合的通信协议。

请简述微服务中各组件的作用 ?

微服务中的各组件及其作用如下:

  1. 服务注册中心:这是微服务架构的核心组件,它负责服务的注册和状态维护。通常采用心跳机制,以确保其持有的服务节点列表都是可用的。
  2. 负载均衡器:这个组件通过服务名在注册中心查询该服务拥有哪些可用节点,然后注册中心返回可用节点列表给服务调用者。服务调用者内置负载均衡器,根据负载均衡策略,选择可用节点列表中的服务进行服务调用。
  3. 服务通信组件:这些组件负责实现服务间的调用。它们通常采用轻量级通信协议,如HTTP RESTful风格,并且可以使用Feign和Restemplate等API进行实现。
  4. 服务网关:这是微服务架构中的对外统一调用地址,对内部进行封装。它提供对外的统一调用地址,对内部进行封装,并具有API网关的作用。它还可以提供用户认证与授权、限流和熔断等功能。
  5. 统一配置组件:这是一种基础设施,用于全局的配置,统一管理不同服务的配置。

简述什么是服务注册与发现 ?

服务注册与发现是微服务架构中的重要概念,它们帮助实现服务的动态发现和调用。

服务注册是指将服务实例的信息注册到服务注册中心。在微服务架构中,每个服务都是独立运行的,并通过服务注册中心来管理和调用。当一个服务实例启动时,它会向服务注册中心注册自己的信息,包括服务名称、IP地址、端口号等。

服务发现是指客户端应用进程向注册中心发起查询,来获取服务的位置。服务发现的一个重要作用就是提供一个可用的服务列表。客户端可以通过查询服务注册表来获取需要调用的服务的相关信息,从而实现服务之间的通信。

服务注册与发现的作用是解耦了服务之间的直接依赖关系,使得服务之间可以动态地发现和调用。通过服务注册,可以实现服务的高可用性和负载均衡,当某个服务实例不可用时,可以自动剔除或替换,从而保证整个系统的稳定性和可靠性。同时,服务注册还能提供服务的版本管理、动态扩缩容等功能,为微服务架构带来更大的灵活性和可扩展性。

在微服务架构中,常见的服务注册与发现机制包括Eureka、Consul和Zookeeper等。其中,Eureka是Spring Cloud的默认选择,每个服务实例在启动时都会向Eureka服务器注册自己的信息,Eureka服务器会维护一个服务注册表,用于保存所有已注册的服务实例信息。其他服务可以通过查询这个注册表来获取需要调用的服务的相关信息。

请列举常用的服务注册发现的组件 ?

常用的服务注册发现组件包括:

  1. Consul:Consul是一个开源的服务网络解决方案,提供了完整的服务发现、配置和分段功能。它是一个轻量级的解决方案,可以跨平台和跨云使用。
  2. Eureka:Eureka是Netflix开源的一个服务注册和发现框架,用于在分布式系统中管理和发现微服务。Eureka采用了基于HTTP的RESTful API的设计,使得它很容易集成到Spring Cloud生态系统中。
  3. ZooKeeper:ZooKeeper是一个分布式协调服务,提供了基于名称的注册和发现服务。它可以帮助开发人员构建分布式系统中的服务注册和发现解决方案。
  4. etcd:etcd是一个高可用的键值存储系统,用于在分布式系统中管理和发现微服务。etcd提供了基于HTTP的RESTful API,并采用了Raft协议来保证系统的可靠性和一致性。
  5. Nacos:Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它提供了一站式的服务发现和配置管理功能,支持配置管理和服务发现。

这些服务注册发现组件可以帮助开发人员构建高可用、可扩展的微服务架构。不同的组件具有不同的特性和适用场景,开发人员可以根据具体需求选择合适的组件。

简述什么是服务调用 ?

服务调用是指一个软件组件通过调用另一个软件组件提供的服务来实现某种功能。在分布式系统中,服务调用是一种重要的通信方式,它通过网络请求实现组件之间的互相调用。在服务调用的过程中,客户端发起请求,服务端接收请求并处理,然后将处理结果返回给客户端。通过合理的设计和实现,服务调用可以提高系统的可用性、扩展性和灵活性。在使用服务调用时,需要注意网络通信、安全性、异常处理和服务注册与发现等问题,以保证系统的稳定性和可靠性。

请列举常用的服务调用组件 ?

常用的服务调用组件包括:

  1. RestTemplate:在Spring Cloud中,RestTemplate是用于进行HTTP请求的模板类,可以用来调用RESTful风格的Web服务。
  2. Feign:Feign是一个声明式的Web Service客户端,它使得编写HTTP客户端变得更简单。Feign会自动根据接口定义来生成HTTP请求代码。
  3. OpenFeign:OpenFeign是Feign的继任者,它提供了更强大的功能,例如负载均衡和服务发现等。
  4. Dubbo:Dubbo是一个高性能、轻量级的开源Java RPC框架,它提供了远程过程调用(RPC)功能。Dubbo可以用来调用其他服务,并提供了负载均衡、容错和路由等功能。
  5. gRPC:gRPC是一个高性能、开源的RPC框架,它提供了面向接口的通信、双向流式传输和头部压缩等功能。gRPC支持多种语言,包括Java、Go和C++等。

这些服务调用组件可以帮助开发人员实现分布式系统中的服务间通信和调用。不同的组件具有不同的特性和适用场景,开发人员可以根据具体需求选择合适的组件。

简述什么服务降级 ?

服务降级是指在面对系统负载过高、资源不足或外部依赖故障等异常情况下,通过临时屏蔽某些功能或改变服务行为,以保证核心功能的可用性和性能稳定性的一种策略。服务降级的目的是在极端或异常情况下提供有限但可靠的服务,而不是完全失败或导致系统崩溃。服务降级可以在多个层面进行,包括前端、业务逻辑和数据访问层。前端降级主要通过控制用户界面上的展示和交互来减少对后端服务的请求,例如在高负载时暂时去除某些耗时的图表或功能按钮,只展示核心内容,以提高用户体验。业务逻辑降级则是在服务层面进行降级,即在业务逻辑中根据当前系统状态或用户需求进行判断,决定是否执行某些非关键的功能或采取替代性方案,例如可以减少搜索的结果数目、缓存数据、限制操作频率等。数据访问降级则是在数据库或其他外部依赖出现故障或性能问题时,使用缓存、降低查询精确度或返回默认值等方式进行数据访问降级,以保证系统的可用性,尽管可能牺牲了一些实时性或准确性。

简述什么熔断机制 ?

熔断机制是一种在分布式系统中常用的容错措施,它能够自动发现故障并隔离故障服务,以保证系统可用性。当某个服务单元发生故障时,该服务单元会向熔断器发出警报,熔断器判断出故障服务,并且立即将故障服务与其他服务隔离,从而防止故障服务影响到整个系统。熔断机制的具体实现方式因系统而异,但通常包括设置一个熔断价格,使合约买卖报价在一段时间内只能在这一价格范围内交易,或者通过轻量级通信机制实现服务之间的调用。在2020年3月9日的纽约股市暴跌事件中,熔断机制被触发并恢复交易后,股市跌幅一度有所收窄。

简述熔断有哪几种状态 ?

熔断有三种状态:

  1. 关闭状态(Closed):所有请求都可以正常通过。
  2. 打开状态(Open):所有请求都会被降级处理,即请求不能通过。
  3. 半开状态(HalfOpen):允许一部分请求通过,以便检测服务是否恢复正常。如果在指定时间内,这部分请求都是健康的,那么断路器就会完全关闭;否则,断路器会继续保持打开状态。

由于内容太多,更多内容以链接形势给大家,点击进去就是答案了

16. 解释服务熔断原理(断路器的原理) ?

17. 简单描述降级,熔断, 限流区别 ?

18. 简述什么是限流 ?

19. 简述REST/RESTful ?它的用途是什么?

20. 简述什么是通用语言(UL)?

21. 简述什么时候需要使用DDD?

22. 为什么需要域驱动设计(DDD)?

23. 简述领域驱动设计(DDD)?

24. 详细阐述SOA 和微服务架构之间的主要区别 ?

25. 简述使用微服务架构时,你面临的挑战是什么?

26. 详细阐述微服务特点和重要特性 ?

27. 解释设计微服务的最佳实践是什么?

28. 简述SpringCloud Alibaba的整体架构 ?

29. 请列举目前的主流服务网关有哪些 ?

30. 简述微服务中基本概念消费者与提供者 ?

31. 简述市面常用微服务框架 ?

32. 请列举服务网关基本功能 ?

33. 简述什么是API网关 ?

34. 简述什么是服务网关 ?

35. 简述微服务中的API定义?

36. 如何保障微服务通信安全 ?

37. 简述关于 Rest 和微服务的要点?

38. 简述什么是不同类型的微服务测试?

39. 简述什么是幂等性(Idempotence)?

40. 简述什么是DDD有界上下文?

41. 简述 PACT 在微服务架构中的用途是什么?

42. 简述契约测试(contract test)是什么?

43. 简述什么是端到端微服务测试?

44. 简述容器在微服务中的用途是什么?

45. 解释微服务架构中的DRY是什么?

46. 简述消费者驱动的契约(CDC)是什么?

47. 简述微服务架构中的语义监控是什么?

48. 简述微服务中的反应性扩展是什么?

49. Web, RESTful API在微服务中的作用是什么?

50. 简述什么是微服务中服务配置统一管理 ?

51. 简述服务链路追踪以及实现机制 ?

52. 阐述Zookeeper、Eureka、Consul、Nacos对比区别 ?

相关文章:

面试专区|【52道微服务架构高频题整理(附答案背诵版)】

简述什么是微服务? 微服务是一种软件架构风格,它将应用程序拆分成一系列小型、独立的服务,每个服务都运行在其自己的进程中,通过轻量级通信机制进行通信。每个服务都具有明确的业务能力,并且可以独立开发、测试、部署…...

数据结构之算法的时间复杂度

1.时间复杂度的定义 在计算机科学中,算法的时间复杂度是一个函数,它定量描述了算法的运行时间。一个算法所花费的时间与其中语句的执行次数成正比列,算法中的基本操作的执行次数,为算法的时间复杂度 例1: 计算Func1…...

unity中物体被激活自动执行挂载代码

在Unity中,如果希望当物体被激活时自动执行特定的函数,可以利用 MonoBehaviour 的生命周期函数 OnEnable()。这个方法会在对象被激活时调用,可以用来执行初始化或者处理其他逻辑。以下是如何在脚本中使用 OnEnable() 方法: using UnityEngine;public class ActivateFuncti…...

Pandas数据可视化详解:大案例解析(第27天)

系列文章目录 Pandas数据可视化解决不显示中文和负号问题matplotlib数据可视化seaborn数据可视化pyecharts数据可视化优衣库数据分析案例 文章目录 系列文章目录前言1. Pandas数据可视化1.1 案例解析:代码实现 2. 解决不显示中文和负号问题3. matplotlib数据可视化…...

Redis基础教程(七):redis列表(List)

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…...

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【生成密钥(C/C++)】

生成密钥(C/C) 以生成ECC密钥为例,生成随机密钥。具体的场景介绍及支持的算法规格。 注意: 密钥别名中禁止包含个人数据等敏感信息。 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复…...

ssm“落雪”动漫网站-计算机毕业设计源码81664

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据新增流程 3.2.2 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 系统总体设…...

【面试题】Reactor模型

Reactor模型 定义 Reactor模型是一种事件驱动的设计模式,用于处理服务请求。它通过将事件处理逻辑与事件分发机制解耦,实现高性能、可扩展的并发处理。Reactor模型适用于高并发、事件驱动的程序设计,如网络服务器等。 特点 事件驱动&#…...

RedHat9 | kickstart无人值守批量安装

一、知识补充 kickstart Kickstart是一种用于Linux系统安装的自动化工具,它通过一个名为ks.cfg的配置文件来定义Linux安装过程中的各种参数和设置。 kickstart的工作原理 Kickstart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,…...

k8s-第五节-StatefulSet

StatefulSet StatefulSet 是用来管理有状态的应用,例如数据库。 前面我们部署的应用,都是不需要存储数据,不需要记住状态的,可以随意扩充副本,每个副本都是一样的,可替代的。 而像**数据库、Redis **这类…...

ai机器狗

ai机器狗的代码很早就开源了,相当于核心,最难东西美国人公开了,开源了,如果有钱,有足够资源的,造出东西有可能比公开这些核心代码的公司或者组织还好。没有技术含量,技术含量别人都解决了&#…...

数据库关键字执行顺序

在 SQL 中,关键字的执行顺序通常如下: FROM:确定要查询的表或数据源,并执行表之间的连接操作(如 INNER JOIN、LEFT JOIN 等)。FROM 子句执行顺序为从后往前、从右到左。ON:应用连接条件&#xf…...

Linux 永久挂载磁盘

文章目录 前言一、使用步骤1.命令 总结 前言 一、使用步骤 1.命令 第一步:创建挂载点 sudo mkdir /hhkj 第二步:磁盘挂载到挂载点(lsblk、lvdisplay) sudo mount /dev/sdb2 /hhkj 或者 sudo mount /dev/centos/home /hhkj 第三…...

windows启动Docker闪退Docker desktop stopped

Windows启动Docker闪退-Docker desktop stopped 电脑上很早就安装有Docker了,但是有一段时间都没有启动了,今天想启动启动不起来了,打开没几秒就闪退,记录一下解决方案。仅供参考 首先,参照其他解决方案,本…...

探索Redis GEOMETRY数据结构:地理空间索引与查询(基于Redis GEO和Java实现附近商户查找功能)

摘要 Redis是一个高性能的键值存储系统,广泛应用于缓存、消息队列、排行榜等场景。本文将介绍Redis中一个假设的GEOMETRY数据结构,用于高效地存储和查询地理空间数据。 1. Redis地理空间数据结构概述 地理空间数据结构允许用户存储地理位置信息&#…...

DP学习——策略模式

学而时习之,温故而知新。 敌人出招(使用场景) 业务中需要多个算法可替换,而不能重构代码时,怎么办?或者一个对象在运行中要根据业务切换不同的模式或者采用不同的算法,怎么办? 到…...

0701_ARM5

练习:使用usart4 main.c #include "uart4.h"int main() {// 初始化 UART4hal_uart4_init();while (1) {// 发送一个字符串//hal_put_char( hal_get_char());hal_put_string(hal_get_string());}return 0; } usart4.c #include "uart4.h"//**…...

Python用户宝典:了解并实现遗传算法

遗传算法是一种基于自然选择的技术,用于解决复杂问题。由于问题很复杂,遗传算法(而不是其他方法)被用来得出解决问题的合理方案。本文介绍遗传算法的基础知识以及如何用Python来实现。 遗传算法的要素 适应度函数 适应度函数衡…...

如何使用深度学习进行实时目标检测:速度与精度的双重挑战

如何使用深度学习进行实时目标检测:速度与精度的双重挑战 目标检测作为计算机视觉领域的核心任务之一,其目的是在图像或视频中识别和定位感兴趣的对象。随着深度学习技术的发展,基于深度学习的目标检测算法在实时性、准确性方面取得了显著进…...

创新引领,构筑产业新高地

在数字经济的浪潮中,成都树莓集团以创新驱动为核心,通过整合行业资源、优化服务、培养数字产业人才等措施,致力于打造产业高地,推动地方经济的高质量发展。 一、创新驱动,引领产业发展 1、引入新技术、新模式&#xf…...

npm,yarn清楚缓存

1.运行以下命令来清理npm缓存: npm cache clean --force或者运行以下命令清理Yarn缓存: yarn cache clean2.删除 node_modules 和锁文件: 删除 node_modules 目录和 package-lock.json 或 yarn.lock 文件,然后重新安装依赖 rm …...

httpclient访问https请求报错处理

C#通过httpclient调用https请求时,报错 错误信息为:The remote certificate is invalid according to the validation procedure 该错误是由于使用httpclient访问不合法的https站点导致出现的异常。 处理代码如下 public static string HttpPostWithT…...

ffmpeg + opencv 把摄像头画面保存为mp4文件(Ubuntu24.04)

参考链接 ffmpeg opencv 把摄像头画面保存为mp4文件_ffmpeg转化摄像头mp4-CSDN博客 调试环境 Ubuntu24.04 ffmpeg 6.1.1 opencv 4.6 g 13.2.0 C源码 #include <iostream> #include <sys/time.h> #include <string>#ifdef __cplusplus extern "…...

Fastapi 项目第二天首次访问时数据库连接报错问题Can‘t connect to MySQL server

问题描述 Fastapi 项目使用 sqlalchemy 连接的mysql 数据库&#xff0c;每次第二天首次访问数据库相关操作&#xff0c;都会报错&#xff1a;sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, “Can’t connect to MySQL server on ‘x.x.x.x’ ([Err…...

尚硅谷k8s 2

p54-56 k8s核心实战 service服务发现 Service:将一组 Pods 公开为网络服务的抽象方法。 #暴露Deploy,暴露deploy会出现在svc kubectl expose deployment my-dep --port8000 --target-port80#使用标签检索Pod kubectl get pod -l appmy-depapiVersion: v1 kind: Service metad…...

机器学习---线性回归

1、线性回归 例如&#xff1a;对于一个房子的价格&#xff0c;其影响因素有很多&#xff0c;例如房子的面积、房子的卧室数量、房子的卫生间数量等等都会影响房子的价格。这些影响因子不妨用 x i x_{i} xi​表示&#xff0c;那么房价 y y y可以用如下公式表示&#xff1a; y …...

字符串去重、集合遍历 题目

题目 JAVA38 字符串去重描述输入描述&#xff1a;输出描述&#xff1a; 示例:分析&#xff1a;代码&#xff1a;大佬代码&#xff1a; JAVA39 集合遍历描述输入描述&#xff1a;输出描述&#xff1a; 示例:分析&#xff1a;代码&#xff1a; JAVA38 字符串去重 描述 从键盘获取…...

Hook 实现 Windows 系统热键屏蔽(二)

目录 前言 一、介绍用户账户控制&#xff08;UAC&#xff09; 1.1 什么是 UAC &#xff1f; 2.2 UAC 运行机制的概述 2.3 分析 UAC 提权参数 二、 NdrAsyncServerCall 函数的分析 2.1 函数声明的解析 2.2 对 Winlogon 的逆向 2.3 对 rpcrt4 的静态分析 2.4 对 rpcrt4…...

SQL窗口函数详解

详细说明在sql中窗口函数是什么&#xff0c;为什么需要窗口函数&#xff0c;有普通的聚合函数了那窗口函数的意义在哪&#xff0c;窗口函数的执行逻辑是什么&#xff0c;over中的字句是如何使用和理解的&#xff08;是不是句句戳到你的痛点&#xff0c;哼哼&#xff5e;&#x…...

如何用Java写一个整理Java方法调用关系网络的程序

大家好&#xff0c;我是猿码叔叔&#xff0c;一位 Java 语言工作者&#xff0c;也是一位算法学习刚入门的小学生。很久没有为大家带来干货了。 最近遇到了一个问题&#xff0c;大致是这样的&#xff1a;如果给你一个 java 方法&#xff0c;如何找到有哪些菜单在使用。我的第一想…...

基于STM32设计的管道有害气体检测装置(ESP8266局域网)176

基于STM32设计的管道有害气体检测装置(176) 文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】项目硬件模块组成【3】ESP8266模块配置【4】上位机开发思路【5】项目模块划分【6】LCD显示屏界面布局【7】上位机界面布局1.2 项目功能需求1.3 项目开发背景1.4 开发工具的选择1…...

iCloud照片库全指南:云端存储与智能管理

iCloud照片库全指南&#xff1a;云端存储与智能管理 在数字化时代&#xff0c;照片和视频成为了我们生活中不可或缺的一部分。随着手机摄像头质量的提升&#xff0c;我们记录生活点滴的方式也越来越丰富。然而&#xff0c;这也带来了一个问题&#xff1a;如何有效管理和存储日…...

IDEA中使用Maven打包及碰到的问题

1. 项目打包 IDEA中&#xff0c;maven打包的方式有两种&#xff0c;分别是 install 和 package &#xff0c;他们的区别如下&#xff1a; install 方式 install 打包时做了两件事&#xff0c;① 将项目打包成 jar 或者 war&#xff0c;打包结果存放在项目的 target 目录下。…...

TreeMap、HashMap 和 LinkedHashMap 的区别

TreeMap、HashMap 和 LinkedHashMap 的区别 1、HashMap2、LinkedHashMap3、TreeMap4、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在 Java 中&#xff0c;TreeMap、HashMap 和 LinkedHashMap 是三种常用的集合类&#xff0c;它们在…...

【跟我学K8S】45天入门到熟练详细学习计划

目录 一、什么是K8S 核心功能 架构组件 使用场景 二、入门到熟练的学习计划 第一周&#xff1a;K8s基础和概念 第二周&#xff1a;核心对象和网络 第三周&#xff1a;进阶使用和管理 第四周&#xff1a;CI/CD集成和监控 第五周&#xff1a;实战模拟和案例分析 第六周…...

ubuntu下载Nginx

一、Nginx下载安装&#xff08;Ubuntu系统&#xff09; 1.nginx下载 sudo apt-get install nginx2.nginx启动 启动命令 sudo nginx重新编译(每次更改完nginx配置文件后运行&#xff09;&#xff1a; sudo nginx -s reload3.测试nginx是否启动成功 打开浏览器访问本机80端口…...

【区分vue2和vue3下的element UI Dialog 对话框组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 和 Vue 3 中&#xff0c;Element UI&#xff08;针对 Vue 2&#xff09;和 Element Plus&#xff08;针对 Vue 3&#xff09;提供了 Dialog 对话框组件&#xff0c;用于在页面中显示模态对话框。这两个库中的 Dialog 组件在属性、事件和方法的使用上有所相似&#xff…...

docker push 推送镜像到阿里云仓库

1.登陆阿里云 镜像服务&#xff0c;跟着指引操作就行 创建个人实例&#xff0c;创建命名空间、镜像仓库&#xff0c;绑定代码源头 2.将镜像推送到Registry $ docker login --username*** registry.cn-beijing.aliyuncs.com $ docker tag [ImageId] registry.cn-beijing.aliy…...

伯克利、斯坦福和CMU面向具身智能端到端操作联合发布开源通用机器人Policy,可支持多种机器人执行多种任务

不同于LLM或者MLLM那样用于上百亿甚至上千亿参数量的大模型&#xff0c;具身智能端到端大模型并不追求参数规模上的大&#xff0c;而是指其能吸收大量的数据&#xff0c;执行多种任务&#xff0c;并能具备一定的泛化能力&#xff0c;如笔者前博客里的RT1。目前该领域一个前沿工…...

昇思25天学习打卡营第17天(+1)|Diffusion扩散模型

1. 学习内容复盘 本文基于Hugging Face&#xff1a;The Annotated Diffusion Model一文翻译迁移而来&#xff0c;同时参考了由浅入深了解Diffusion Model一文。 本教程在Jupyter Notebook上成功运行。如您下载本文档为Python文件&#xff0c;执行Python文件时&#xff0c;请确…...

【Leetcode笔记】406.根据身高重建队列

文章目录 1. 题目要求2.解题思路 注意3.ACM模式代码 1. 题目要求 2.解题思路 首先&#xff0c;按照每个人的身高属性&#xff08;即people[i][0]&#xff09;来排队&#xff0c;顺序是从大到小降序排列&#xff0c;如果遇到同身高的&#xff0c;按照另一个属性&#xff08;即p…...

Linux 安装pdfjam (PDF文件尺寸调整)

跟Ghostscript搭配使用&#xff0c;这样就可以将不同尺寸的PDF调整到相同尺寸合并了。 在 CentOS 上安装 pdfjam 需要安装 TeX Live&#xff0c;因为 pdfjam 是基于 TeX Live 的。以下是详细的步骤来安装 pdfjam&#xff1a; ### 步骤 1: 安装 EPEL 仓库 首先&#xff0c;安…...

python+playwright 学习-90 and_ 和 or_ 定位

前言 playwright 从v1.34 版本以后支持and_ 和 or_ 定位 XPath 中的and和or xpath 语法中我们常用的有text()、contains() 、ends_with()、starts_with() //*[text()="文本"] //*[contains(@id, "xx")] //...

亲子时光里的打脸高手,贾乃亮与甜馨的父爱如山

贾乃亮这波操作&#xff0c;简直是“实力打脸”界的MVP啊&#xff01; 7月5号&#xff0c;他一甩手&#xff0c;甩出张合照&#xff0c; 瞬间让多少猜测纷飞的小伙伴直呼&#xff1a;“脸疼不&#xff1f;”带着咱家小甜心甜馨&#xff0c; 回了哈尔滨老家&#xff0c;这趟亲…...

MySQL篇-SQL优化实战

SQL优化措施 通过我们日常开发的经验可以整理出以下高效SQL的守则 表主键使用自增长bigint加适当的表索引&#xff0c;需要强关联字段建表时就加好索引&#xff0c;常见的有更新时间&#xff0c;单号等字段减少子查询&#xff0c;能用表关联的方式就不用子查询&#xff0c;可…...

【MySQL备份】Percona XtraBackup总结篇

目录 1.前言 2.问题总结 2.1.为什么在恢复备份前需要准备备份 2.1.1. 保证数据一致性 2.1.2. 完成崩溃恢复过程 2.1.3. 解决非锁定备份的特殊需求 2.1.4. 支持增量和差异备份 2.1.5. 优化恢复性能 2.2.Percona XtraBackup的工作原理 3.注意事项 1.前言 在历经了详尽…...

【Git 】规范 Git 提交信息的工具 Commitizen

Commitizen是一个用于规范Git提交信息的工具&#xff0c;它旨在帮助开发者生成符合一定规范和风格的提交信息&#xff0c;从而提高代码维护的效率&#xff0c;便于追踪和定位问题。以下是对Commitizen的详细介绍。 1、Commitizen的作用与优势 规范提交信息&#xff1a;通过提供…...

ABB PPC902AE1013BHE010751R0101控制器 处理器 模块

ABB PPC902AE1013BHE010751R0101 该模块是用于自动化和控制系统的高性能可编程控制器。它旨在与其他自动化和控制设备一起使用&#xff0c;以提供完整的系统解决方案 是一种数字输入/输出模块&#xff0c;提供了高水平的性能和可靠性。它专为苛刻的工业应用而设计&#xff0c…...

大模型AIGC转行记录(一)

自从22年11月chat gpt上线以来&#xff0c;这一轮的技术浪潮便变得不可收拾。我记得那年9月份先是在技术圈内讨论&#xff0c;然后迅速地&#xff0c;全社会在讨论&#xff0c;各个科技巨头、金融机构、政府部门快速跟进。 软件开发行业过去与现状 我19年决定转码的时候&…...

element-ui Tree之懒加载叶子节点强制设置父级半选效果

效果&#xff1a; 前言&#xff1a; 我们是先只展示一级的&#xff0c;二级的数据是通过点击之后通过服务器获取数据&#xff0c;并不是全量数据直接一起返回回来的。 问题&#xff1a; 当你设置了默认选中的子节点&#xff0c;但是由于刚进入页面此时tree中数据暂是没有这个…...