![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
九、SpringCloud
SpringCloud
还能在学一小时
这个作者很懒,什么都没留下…
展开
-
微服务面试合集
在微服务中,假如一个或者多个服务出现故障,如果这时候,依赖的服务还在不断发起请求,或者重试,那么这些请求的压力会不断在下游堆积,导致下游服务的负载急剧增加。不断累计之下,可能会导致故障的进一步加剧,可能会导致级联式的失败,甚至导致整个系统崩溃,这就叫服务雪崩。服务雪崩服务高可用部署:确保各个服务都具备高可用性,通过冗余部署、故障转移等方式来减少单点故障的影响。限流和熔断:对服务之间的请求进行限流和熔断,以防止过多的请求涌入导致后端服务不可用。原创 2024-01-18 09:02:25 · 2006 阅读 · 0 评论 -
在分布式系统中,如何确定哪些服务或组件导致了性能瓶颈?SkyWalking提供了哪些工具和技术来帮助我们进行故障排查?
首先,SkyWalking具有服务、服务实例、端点指标分析功能,可以监控并收集各种性能指标,如请求响应时间、调用频率等。通过观察服务拓扑图,可以快速定位到被频繁调用的服务或调用链路中的瓶颈。最后,SkyWalking的上下文传播和分布式跟踪功能,可以帮助我们跟踪请求在分布式系统中的传播路径,了解请求在各服务之间的调用情况,找出调用过程中出现的问题。综上所述,通过SkyWalking提供的一系列工具和技术,我们可以较为方便地进行故障排查和性能优化工作,从而提升分布式系统的性能和可用性。原创 2024-01-18 09:25:20 · 393 阅读 · 0 评论 -
请解释什么是SkyWalking,以及它为什么重要
它提供了一种简便的方式来清晰地观测分布式系统,甚至可以观测横跨不同云的系统。具体来说,SkyWalking可以用于收集、分析、聚合以及可视化分布式系统的数据,这些数据包括分布式拓扑图、应用性能指标、Trace和日志等。通过使用SkyWalking,可以提高分布式系统的可靠性和性能,同时可以帮助开发者和运维团队快速定位和解决问题。此外,SkyWalking还可以设置告警规则,当系统出现异常情况时及时通知相关人员,以减少系统故障时间和提高系统的可用性。原创 2024-01-18 09:40:46 · 321 阅读 · 0 评论 -
SkyWalking中的数据是如何收集和传输的
在SkyWalking的数据传输过程中,可能会使用到GRPC等协议进行高效的数据传输。而在数据消费阶段,SkyWalking也支持多种不同的数据处理和消费方式,具体方式可以在配置中进行设置。原创 2024-01-18 10:07:34 · 601 阅读 · 0 评论 -
使用OAuth2时,如何存储和传输敏感信息,例如用户名和密码
使用OAuth2时,不建议直接存储和传输敏感信息,比如用户名和密码。这是由于OAuth2协议自身的设计,它鼓励使用临时凭证(例如访问令牌和刷新令牌)进行安全地授权和认证,而不是直接使用敏感的用户信息。以上是一般的做法,但实际操作中可能还需要考虑其他因素,比如数据的备份和恢复策略、对第三方服务的信任程度等。原创 2024-01-18 10:32:52 · 380 阅读 · 0 评论 -
OAuth2有哪几种授权模式
OAuth2的授权模式包括以下四种:原创 2024-01-18 10:41:22 · 467 阅读 · 0 评论 -
OAuth2授权模式
传统的客户端-服务器身份验证模型中存在的问题。在这种模型中,客户端通过使用资源所有者的凭据对服务器进行身份验证,从而请求访问受限资源(受保护的资源)。为了使第三方应用程序能够访问受限资源,资源所有者需与第三方共享其凭据。第三方应用程序通常需要明文存储资源所有者的凭据(通常是密码),以备将来使用。服务器需要支持密码身份验证,而且密码身份验证存在安全弱点。第三方应用程序可能获得对资源所有者受保护资源的过于广泛的访问权限,而资源所有者无法限制对资源的访问时长或访问的资源子集。原创 2024-01-18 10:57:01 · 902 阅读 · 0 评论 -
使用OAuth2有什么优点和缺点
使用OAuth2有以下几个优点:然而,使用OAuth2也存在一些缺点:原创 2024-01-18 11:06:30 · 574 阅读 · 0 评论 -
如何处理OAuth2的刷新令牌
当使用OAuth2时,如果访问令牌过期,客户端应用程序可以使用刷新令牌从授权服务器获取一个新的访问令牌。刷新令牌是一个特殊的令牌,它允许您在不重新输入凭据的情况下重新获得访问权限。刷新令牌应该在安全的环境中存储,并且不应该被暴露给未授权的用户或应用程序。总之,处理OAuth2的刷新令牌时,应该遵循最佳实践,确保刷新令牌在安全的环境中存储、传输和使用,并且应该有一个有限的生命周期和能够撤销的机制。原创 2024-01-18 11:17:19 · 487 阅读 · 0 评论 -
什么是限流算法,网关如何实现限流
限流算法是指用于限制单位时间内服务的请求数量的算法,目的是防止服务被过高的请求压力所击垮。原创 2024-01-18 11:30:11 · 387 阅读 · 0 评论 -
在微服务架构中,网关的作用是什么
在微服务架构中,网关(Gateway)具有以下作用:原创 2024-01-18 11:39:09 · 935 阅读 · 0 评论 -
什么情况下需要用到分布式事务?有哪些方案?
在这些场景下,我们需要使用分布式事务来保证数据的一致性。常用的分布式事务方案包括两阶段提交(2PC)、三阶段提交(3PC)、TCC、Saga、本地消息表等。其中,两阶段提交和三阶段提交都是基于锁机制实现的,而TCC、Saga和本地消息表则是基于业务逻辑实现的。选择哪种方案取决于业务需求、系统复杂性和性能等多个因素。分布式事务是指在多个网络节点或服务之间进行数据一致性处理的情况。原创 2024-01-18 11:56:26 · 667 阅读 · 0 评论 -
说说Seata的执行流程
Seata的整体执行流程设计为两阶段提交,其执行流程如下:原创 2024-01-18 13:57:07 · 454 阅读 · 0 评论 -
什么是Seata?谈谈你对Seata的理解
例如,在一个电商微服务系统中,订单服务和库存服务需要协同工作,如果订单服务已经创建成功,但库存服务因为某些原因失败了,就会导致数据不一致的问题。Seata的主要特点是无侵入以及高性能。它对业务无侵入,可以减少技术架构上的微服务化所带来的分布式事务问题对业务的侵入,同时高性能则是减少分布式事务解决方案所带来的性能消耗。在Seata的事务处理中主要有三个重要的角色:事务的协调者(TC)、事务的管理者(TM)和事务的作业管理器(RM)。,它主要用于解决在分布式系统中全局事务的一致性问题。原创 2024-01-18 14:08:39 · 374 阅读 · 0 评论 -
Sentinel 与Hystrix的区别是什么
它的主要特点包括实时监控和动态规则配置、丰富的流量控制策略、细粒度的服务保护以及支持多种编程语言。Sentinel可以实时监控服务的请求流量和各项指标,并提供实时的仪表盘和可视化的监控界面。此外,Sentinel还支持对每个具体的服务接口进行熔断、降级和限流等操作,以实现精确的服务保护策略。Hystrix通过将每个服务调用放入独立的线程池中来实现线程隔离,防止一个服务的延迟或故障影响其他服务。此外,Hystrix还提供了降级处理功能,可以在服务不可用或响应过慢时返回预定义的降级响应,保证系统的可用性。原创 2024-01-18 14:14:19 · 799 阅读 · 0 评论 -
如果 Sentinel 的异常处理规则不满足需求,应该怎么办?
Sentinel 允许您通过自定义实现 BlockedExceptionHandler 接口,然后将自定义的异常处理器对象交给 Spring 容器进行管理。如果 Sentinel 的默认异常处理机制无法满足您的需求,您可以选择自定义异常处理规则。这样,您可以根据具体的应用场景和业务需求,灵活地扩展 Sentinel 的异常处理能力。您可以根据实际业务需求,定制化异常处理策略,例如全局兜底处理、日志打印、空指针检查等。同时,您还可以在处理器中加入自定义的业务逻辑,例如对异常进行分类、统计和反馈等。原创 2024-01-19 09:53:56 · 291 阅读 · 0 评论 -
Sentinel 是什么?它是如何工作的?
Sentinel 的基本概念包括资源、规则和处理器。资源是 Sentinel 的关键概念,可以是 Java 应用程序中的任何内容,例如由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。规则是围绕资源的实时状态设定的,可以包括流量控制规则、熔断降级规则以及系统保护规则,所有规则可以动态实时调整。Sentinel 是阿里巴巴开源的一款分布式服务架构的轻量级流量控制产品,它主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助您保护服务的稳定性。原创 2024-01-19 10:03:06 · 477 阅读 · 0 评论 -
什么是降级熔断?为什么要进行熔断?
是指当某个服务的调用失败次数或异常比例达到一定阈值时,自动切断对该服务的调用,让请求快速失败,避免影响其他服务而导致雪崩效应。是指当某个服务不可用或响应缓慢时,提供一个备用的处理逻辑,例如返回默认值、缓存值、错误提示等,以保证服务的可用性和容错性。降级可以在熔断时触发,也可以在其他情况下触发,例如系统负载过高、资源紧张等。熔断降级的目的是为了保护系统的稳定性和可用性,防止故障扩散和蔓延,提高用户体验和信任度。熔断降级是一种分布式系统的保护机制,用于应对服务不稳定或不可用的情况。原创 2024-01-19 10:11:44 · 379 阅读 · 0 评论 -
Seata是什么?它的工作原理是什么?
Seata的工作原理是基于两阶段提交协议的演变,通过将业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源,然后通过异步提交的方式快速完成事务。此外,Seata还提供了多种事务模式,包括AT、TCC、Saga和XA事务模式,以适应不同的业务场景。具体来说,当一个应用启动一个全局事务时,GTM会为该事务分配一个全局事务ID,并将该ID发送给所有的应用节点。在分布式环境中,每个应用节点都会与GTM和BTM交互,以确保全局事务的一致性和数据的一致性。原创 2024-01-19 10:23:43 · 469 阅读 · 0 评论 -
谈谈Ribbon和Feign区别
Feign使用注解和模板方法简化了远程调用的编写,使得调用远程服务的代码更加清晰和简洁。它更注重简洁的声明式编程模型,你只需编写接口并使用注解描述HTTP请求,Feign会在运行时生成实现类来执行实际的HTTP请求。,需要配合其他库如RestTemplate来发送http请求,而Feign则采用声明式编程模型,只需编写接口和注解即可。总的来说,如果你需要更多的控制和自定义负载均衡策略,可以选择Ribbon;Ribbon和Feign都用于构建分布式系统中的微服务,但两者在用途、编程模型和集成上存在差异。原创 2024-01-19 10:33:47 · 458 阅读 · 0 评论 -
Nacos的服务注册表结构是怎样的?
结构为Map<String, Map<String, Service>>,其中最外层Map的key就是namespaceId,值是一个Map。内层Map的key是group拼接serviceName,值是Service对象。Service对象内部又是一个Map,key是集群名称,值是Cluster对象。接下来就是服务(Service)了,一个服务包含多个实例,但是可能处于不同机房,因此Service下有多个集群(Cluster),Cluster下是不同的实例(Instance)。原创 2024-01-19 10:43:22 · 363 阅读 · 0 评论 -
Nacos中的Namespace是什么?如何使用它来组织和管理微服务
在Nacos中,每个Namespace都有自己独立的配置和服务注册表。要使用Namespace,在Nacos客户端初始化时,您需要指定要使用的Namespace ID。通过使用Namespace,您可以对不同Namespace下的服务进行分组和管理,例如可以使用Nacos提供的Group功能对同一Namespace下的服务进行分组,方便管理和查找。通过使用Namespace,可以将不同的环境(例如开发、测试和生产)或不同的应用程序(例如Web应用和移动应用)的配置和服务信息分离开来,以避免冲突和错误。原创 2024-01-19 10:51:22 · 891 阅读 · 0 评论 -
说下你对DDD的理解
领域模型描述了业务领域的规则和逻辑,让开发人员更好地理解业务需求;限界上下文则定义了一个特定的业务领域内的模型和代码,使其可以独立于其他上下文进行开发和维护。总之,DDD是一种设计和开发复杂软件系统的 方法,它通过建立领域模型、分层架构、限界上下文和事件溯源等技术,使得开发人员能够更好地理解和满足业务需求。事件溯源则是一种存储和处理业务事件的技术,支持审计、合规和业务分析等需求。,旨在帮助开发人员更好地理解和设计复杂的软件系统。它的主要目的是让开发人员和领域专家能够更好地协作,以满足业务需求。原创 2024-01-19 10:59:35 · 342 阅读 · 0 评论 -
Nacos、Eureka、Zookeeper注册中心的区别
Nacos、Eureka和Zookeeper都是常用的注册中心,它们在功能和实现方式上存在一些不同。原创 2024-01-19 11:06:10 · 458 阅读 · 0 评论 -
说下Hystrix与Sentinel的区别
Sentinel更适用于需要流量控制和熔断降级的场景,它可以根据系统负载和响应时间来实现自动熔断和降级操作。Hystrix基于命令模式设计,将外部资源的调用封装在命令对象中,通过线程池或信号量来实现隔离。它提供了丰富的配置选项,如线程池大小、超时时间等,以实现对系统资源的有力控制。Hystrix更适用于需要高并发、快速响应的场景,因为它可以快速隔离和恢复故障。总之,Hystrix和Sentinel都是服务熔断器,用于提高系统的弹性。Hystrix和Sentinel都是服务熔断器,用于提高分布式系统的弹性。原创 2024-01-19 11:12:19 · 980 阅读 · 0 评论 -
单体应用、SOA 和微服务架构有什么区别
每个服务都是一个单独的应用程序,可以独立部署、运行和扩展。微服务架构具有更高的灵活性和可维护性,适用于复杂的大型系统,强调服务的自治和独立性。但是,实施微服务架构也需要投入大量的工作,包括服务的定义、通信机制的选择、服务的管理等。SOA的优点是提供了跨系统的服务复用和松散耦合的交互方式,但实现SOA需要投入大量的工作,包括服务的定义、接口的选择、协议的制定等。这种架构风格容易部署和测试,但随着系统规模的扩大,它的灵活性和可维护性会降低。单体应用、SOA和微服务架构都是不同的架构风格,适用于不同的情况。原创 2024-01-19 11:17:02 · 317 阅读 · 0 评论 -
你对微服务是怎么理解的
微服务架构使得开发人员可以更加专注于单个服务的开发与测试,降低了系统的复杂性,提高了系统的可维护性和可扩展性。同时,每个服务可以根据具体的业务需求选择合适的语言、工具进行构建,提高了系统的灵活性和可维护性。,每个服务都可以独立地进行部署、扩展和升级,从而提高了系统的可靠性和可用性。总的来说,微服务架构思想使得应用程序更加灵活、可维护和可扩展,为构建高效、可靠的大型应用程序提供了有力支持。微服务是一种架构思想,它将应用程序拆分为一系列小型、独立的服务,每个服务负责处理一项特定业务功能。这种架构风格的特点是。原创 2024-01-19 11:24:15 · 352 阅读 · 0 评论 -
初识微服务、微服务与单体架构和分布式架构区别、拆分服务注意事项
优点:架构简单,部署成本低缺点:耦合度高优点:耦合度低,利于服务升级拓展缺点:拆分粒度,集群地址如何维护,服务之间调用,服务健康如何感知优点:拆分粒度更小,服务更独立,耦合度低缺点:架构复杂,运维,监控,部署难道提高。原创 2023-09-01 16:13:07 · 78 阅读 · 0 评论 -
简述Nacos注册中心和Nacos配置管理
2. 在服务的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml。不是所有配置都适合到配置中心,维护起来比较麻烦,建议将一些关键参数,需要运行时调整到参数放到nacos配置中心,一般是自定义配置。进入nacos文件conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf。1. 在application.yml中引入nacos配置的依赖。修改conf/nginx.conf文件配置。原创 2023-09-01 17:13:46 · 341 阅读 · 0 评论