![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringCloud专题
文章平均质量分 95
smart哥
一名有10余年经验的互联网老兵,历经从传统软件公司到大型互联网公司的洗礼,早年在中兴通讯等大型通信公司担任项目leader,后随着互联网的崛起,先后在前美团支付等大型互联网公司担任架构师。对互联网架构底层技术有相当的研究和独特的见解,在多个领域有着丰富的实战经验。
展开
-
再见Feign!推荐一款微服务间调用神器,跟SpringCloud绝配!
Retrofit给了我们除Feign和Dubbo之外的第三种微服务间调用选择,使用起来还是非常方便的。记得之前在使用Feign的过程中,实现方的Controller经常要抽出一个接口来,方便调用方来实现调用,接口实现方和调用方的耦合度很高。如果当时使用的是Retrofit的话,这种情况会大大改善。总的来说,Retrofit给我们提供了更加优雅的HTTP调用方式,不仅是在单体应用中,在微服务应用中也一样!原创 2024-04-19 17:04:47 · 890 阅读 · 0 评论 -
开箱即用!看看人家的微服务权限解决方案,那叫一个优雅!
对比之前使用Spring Security的微服务权限解决方案,Sa-Token的解决方案更简单、更优雅。使用Security我们需要定义鉴权管理器、分别处理未认证和未授权的情况、还要自己定义认证和资源服务器配置,使用非常繁琐。而使用Sa-Token,只要在网关上配置过滤器实现认证和授权,然后调用API实现登录及权限分配即可。具体区别可以参考下图。原创 2024-04-19 17:01:02 · 1024 阅读 · 0 评论 -
我扒了半天源码,终于找到了Oauth2自定义处理结果的最佳方案!
在《微服务权限终极解决方案,Spring Cloud Gateway + Oauth2 实现统一认证和鉴权!》一文中我们介绍了Oauth2在微服务中的使用,但是我们没有自定义Oauth2默认的处理结果。有时候我们真的很希望Oauth2中的认证授权能返回我们指定格式的结果,比如登录认证的结果、网关鉴权不通过的结果等等。本文将详细介绍Oauth2中自定义处理结果的方案,希望对大家有所帮助!原创 2024-04-18 16:16:27 · 686 阅读 · 0 评论 -
微服务聚合Swagger文档,这波操作是真的香!
对比knife4j和原生Swagger的微服务使用,再次证明knife4j是springfox-swagger的增强UI实现,完全遵循了springfox-swagger中的使用方式。原创 2024-04-18 16:12:57 · 1328 阅读 · 0 评论 -
微服务权限终极解决方案,Spring Cloud Gateway + Oauth2 实现统一认证和鉴权!
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-04-18 16:08:57 · 1923 阅读 · 1 评论 -
Spring Boot Admin:微服务应用监控
SpringBoot应用可以通过Actuator来暴露应用运行过程中的各项指标,Spring Boot Admin通过这些指标来监控SpringBoot应用,然后通过图形化界面呈现出来。Spring Boot Admin不仅可以监控单体应用,还可以和Spring Cloud的注册中心相结合来监控微服务应用。监控应用运行过程中的概览信息;度量指标信息,比如JVM、Tomcat及进程信息;环境变量信息,比如系统属性、系统环境变量以及应用配置信息;查看所有创建的Bean信息;原创 2024-04-18 16:02:44 · 777 阅读 · 0 评论 -
Spring Cloud Security:Oauth2实现单点登录
单点登录(Single Sign On)指的是当有多个系统需要登录时,用户只需登录一个系统,就可以访问其他需要登录的系统而无需登录。原创 2024-04-18 08:06:23 · 1031 阅读 · 0 评论 -
Spring Cloud Security:Oauth2结合JWT使用
JWT是JSON WEB TOKEN的缩写,它是基于 RFC 7519 标准定义的一种可以安全传输的的JSON对象,由于使用了数字签名,所以是可信任和安全的。原创 2024-04-18 08:02:30 · 750 阅读 · 0 评论 -
Spring Cloud Security:Oauth2使用入门
OAuth 2.0是用于授权的行业标准协议。OAuth 2.0为简化客户端开发提供了特定的授权流,包括Web应用、桌面应用、移动端应用等。原创 2024-04-18 07:57:03 · 1114 阅读 · 1 评论 -
使用Seata彻底解决Spring Cloud中的分布式事务问题!
单体应用中,一个业务操作需要调用三个模块完成,此时数据的一致性由本地事务来保证。Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。我们可以把一个分布式事务理解成一个包含了若干分支事务的全局事务,全局事务的职责是协调其下管辖的分支事务达成一致,要么一起成功提交,要么一起失败回滚。此外,通常分支事务本身就是一个满足ACID的本地事务。原创 2024-04-17 14:09:09 · 604 阅读 · 0 评论 -
Spring Cloud Alibaba:Sentinel实现熔断与限流
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。丰富的应用场景:承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀,可以实时熔断下游不可用应用;完备的实时监控:同时提供实时的监控功能。可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况;原创 2024-04-17 14:04:03 · 692 阅读 · 0 评论 -
Spring Cloud Alibaba:Nacos 作为注册中心和配置中心使用
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求;动态配置服务:动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置;原创 2024-04-17 13:59:53 · 824 阅读 · 0 评论 -
Spring Cloud Gateway:新一代API网关服务
Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能, 例如:熔断、限流、重试等。基于Spring Framework 5, Project Reactor 和 Spring Boot 2.0 进行构建;动态路由:能够匹配任何请求属性;可以对路由指定 Predicate(断言)和 Filter(过滤器);原创 2024-04-17 07:30:06 · 1111 阅读 · 0 评论 -
Spring Cloud Consul:服务治理与配置中心
Consul是HashiCorp公司推出的开源软件,提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。支持服务治理:Consul作为注册中心时,微服务中的应用可以向Consul注册自己,并且可以从Consul获取其他应用信息;支持客户端负责均衡:包括Ribbon和Spring Cloud LoadBalancer;原创 2024-04-17 07:26:00 · 1105 阅读 · 0 评论 -
Spring Cloud Sleuth:分布式请求链路跟踪
随着我们的系统越来越庞大,各个服务间的调用关系也变得越来越复杂。当客户端发起一个请求时,这个请求经过多个服务后,最终返回了结果,经过的每一个服务都有可能发生延迟或错误,从而导致请求失败。这时候我们就需要请求链路跟踪工具来帮助我们,理清请求调用的服务链路,解决问题。原创 2024-04-17 07:22:31 · 734 阅读 · 0 评论 -
Spring Cloud Bus:消息总线
我们通常会使用消息代理来构建一个主题,然后把微服务架构中的所有服务都连接到这个主题上去,当我们向该主题发送消息时,所有订阅该主题的服务都会收到消息并进行消费。使用 Spring Cloud Bus 可以方便地构建起这套机制,所以 Spring Cloud Bus 又被称为消息总线。Spring Cloud Bus 配合 Spring Cloud Config 使用可以实现配置的动态刷新。原创 2024-04-16 09:03:58 · 794 阅读 · 0 评论 -
Spring Cloud Config:外部集中化配置管理
Spring Cloud Config 分为服务端和客户端两个部分。服务端被称为分布式配置中心,它是个独立的应用,可以从配置仓库获取配置信息并提供给客户端使用。客户端可以通过配置中心来获取配置信息,在启动时加载配置。Spring Cloud Config 的配置中心默认采用Git来存储配置信息,所以天然就支持配置信息的版本管理,并且可以使用Git客户端来方便地管理和访问配置信息。原创 2024-04-16 09:00:34 · 1060 阅读 · 0 评论 -
Spring Cloud Zuul:API网关服务
API网关为微服务架构中的服务提供了统一的访问入口,客户端通过API网关访问相关服务。API网关的定义类似于设计模式中的门面模式,它相当于整个微服务架构中的门面,所有客户端的访问都通过它来进行路由及过滤。它实现了请求路由、负载均衡、校验过滤、服务容错、服务聚合等功能。接下来我们自定义一个过滤器来演示下过滤器的作用。原创 2024-04-16 08:55:22 · 1015 阅读 · 0 评论 -
Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用
Feign是声明式的服务调用工具,我们只需创建一个接口并用注解的方式来配置它,就可以实现对某个服务接口的调用,简化了直接使用RestTemplate来调用服务接口的开发量。Feign具备可插拔的注解支持,同时支持Feign注解、JAX-RS注解及SpringMvc注解。当使用Feign时,Spring Cloud集成了Ribbon和Eureka以提供负载均衡的服务调用及基于Hystrix的服务容错保护功能。原创 2024-04-15 18:08:54 · 1145 阅读 · 0 评论 -
Spring Cloud Hystrix:断路器执行监控
Hystrix提供了Hystrix Dashboard来实时监控HystrixCommand方法的执行情况。Hystrix Dashboard可以有效地反映出每个Hystrix实例的运行情况,帮助我们快速发现系统中的问题,从而采取对应措施。原创 2024-04-15 18:05:29 · 880 阅读 · 0 评论 -
Spring Cloud Hystrix:服务容错保护
在微服务架构中,服务与服务之间通过远程调用的方式进行通信,一旦某个被调用的服务发生了故障,其依赖服务也会发生故障,此时就会发生故障的蔓延,最终导致系统瘫痪。Hystrix实现了断路器模式,当某个服务发生故障时,通过断路器的监控,给调用方返回一个错误响应,而不是长时间的等待,这样就不会使得调用方由于长时间得不到响应而占用线程,从而防止故障的蔓延。Hystrix具备服务降级、服务熔断、线程隔离、请求缓存、请求合并及服务监控等强大功能。原创 2024-04-15 18:02:26 · 943 阅读 · 0 评论 -
Spring Cloud Ribbon:负载均衡的服务调用
在微服务架构中,很多服务都会部署多个,其他服务去调用该服务的时候,如何保证负载均衡是个不得不去考虑的问题。负载均衡可以增加系统的可用性和扩展性,当我们使用RestTemplate来调用其他服务时,Ribbon可以很方便的实现负载均衡功能。原创 2024-04-15 08:45:24 · 789 阅读 · 0 评论 -
Spring Cloud Eureka:服务注册与发现
在微服务架构中往往会有一个注册中心,每个微服务都会向注册中心去注册自己的地址及端口信息,注册中心维护着服务名称与服务实例的对应关系。每个微服务都会定时从注册中心获取服务列表,同时汇报自己的运行情况,这样当有的服务需要调用其他服务时,就可以从自己获取到的服务列表中获取实例地址进行调用,Eureka实现了这套服务注册与发现机制。原创 2024-04-15 08:41:40 · 607 阅读 · 0 评论 -
SpringCloud整体架构概览
协调任何服务,简化分布式系统开发。构建分布式系统不应该是复杂的,SpringCloud对常见的分布式系统模式提供了简单易用的编程模型,帮助开发者构建弹性、可靠、协调的应用程序。SpringCloud是在SpringBoot的基础上构建的,使开发者可以轻松入门并快速提高工作效率。SpringCloud为开发人员提供了快速构建分布式系统架构的工具,例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态等。原创 2024-04-15 08:36:06 · 664 阅读 · 0 评论