202011-10 Spring Cloud Zuul集成Swagger实现过程解析 SpringCloudZuul集成Swagger1.准备服务注册中心eureka-server2.创建微服务swagger-service-astep1.创建微服务swagger-service-a(SpringBoot项目),添加eureka-client起步依赖,web起步依赖和swagger依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><a... 继续阅读 >
202011-06 Spring Cloud Alibaba 之 Nacos教程详解 Nacos技术讲解一提到分布式系统就不的不提一下CAP原则Nacos简介Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合性解决方案。官方介绍是这样的:Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构的... 继续阅读 >
202011-06 Spring Cloud 系列之负载均衡 Ribbon的示例代码 1.1简介1.1.1概述 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。Ribbon现在已经进入维护状态,但目前仍在大规模使用,SpringCloud准备使用LoadBalance... 继续阅读 >
202011-03 Spring Cloud 系列之注册中心 Eureka详解 1.1简介 1.1.1概述 NetflixEureka是由Netflix开源的一款基于REST的服务发现组件,包括EurekaServer及EurekaClient。2012年9月在GitHub上发布1.1.2版本,目前Netflix以宣布闭源,所以市面上还是以1.x版本为主。Eureka提供基于REST的服务,在集群中主要用于服务管理。Eureka提供了基于Java语言的客户端组件,客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条件。使用... 继续阅读 >
202010-28 spring cloud oauth2 实现用户认证登录的示例代码 需求在微服务架构中,我们有很多业务模块,每个模块都需要有用户认证,权限校验。有时候也会接入来自第三方厂商的应用。要求是只登录一次,即可在各个服务的授权范围内进行操作。看到这个需求,立马就想到了这不就是单点登录吗?于是基于这样的需求,作者使用spring-cloud-oauth2去简单的实现了下用户认证和单点登录。相关介绍OAuth2OAuth2是一个关于授权的网络标准,他定制了设计思路和执行流程。OAuth2一共有四种授权模式:授权... 继续阅读 >
202010-28 Spring Cloud Alibaba整合Sentinel的实现步骤 一、需求实现一个简单的整合sentinel,不涉及sentinel的用法二、实现步骤1、下载sentineldashboardhttps://github.com/alibaba/Sentinel/releases注意:默认会启动8080端口,如果端口冲突,可以在启动命令上加入-Dserver.port=新端口默认用户名和密码[sentinel/sentinel]启动控制台可用的配置项2、服务提供者和消费者引入sentinel依赖<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-a... 继续阅读 >
202010-20 解决Spring Cloud Feign 请求时附带请求头的问题 问题描述Feign在请求时是不会将request的请求头带着请求的,导致假如Feign调用的接口需要请求头的信息,比如当前用户的token之类的就获取不到解决方案FeignConfiguration通过实现Feign的RequestInterceptor将从上下文中获取到的请求头信息循环设置到Feign请求头中。/***feign配置文件*将请求头中的参数,全部作为feign请求头参数传递*@author:linjinp*@create:2020-06-2809:54**/@Configurationpubli... 继续阅读 >
202010-10 Spring Cloud Gateway不同频率限流的解决方案(每分钟,每小时,每天) SpringCloudGateway简介SpringCloudGateway是SpringCloud的一个全新项目,该项目是基于Spring5.0,SpringBoot2.0和ProjectReactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。SpringCloudGateway作为SpringCloud生态系统中的网关,目标是替代Zuul,在SpringCloud2.0以上版本中,没有对新版本的Zuul2.0以上最新高性能版本进行集成,仍然还是使用的Zuul2.0之前的非Re... 继续阅读 >
202010-10 Spring Cloud OpenFeign REST服务客户端原理及用法解析 OpenFeign是什么?OpenFeign是REST服务客户端,REST其实就是HTTP啦,所以OpenFeign其实就是HTTP客户端,那么他和HttpClient有什么不同呢OpenFeign的使用方法更加的简单OpenFeign配合Spring的HttpMessageConverters可以自动把结果转换成Java对象OpenFeign配合Ribbon、Eureka和SpringCloudLoadBalancer可以支持负载均衡如何使用OpenFeign第一步引入OpenFeign<dependency><groupId>org.springframework.cloud</groupId>... 继续阅读 >
202010-10 Spring Cloud中使用jib进行docker部署的步骤详解 Jib介绍Jib是Google开发的可以直接构建Java应用的Docker和OCI镜像的类库,以Maven和Gradle插件形式提供。通过Jib,Java开发者可以使用他们熟悉的Java工具来构建容器。Jib是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。它不需要你编写Dockerfile或安装Docker,而且可以直接集成到Maven和Gradle中——只需要将插件添加到构建中,就可以立即将Java应用程序... 继续阅读 >
202010-10 Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程 1前言欢迎访问南瓜慢说www.pkslow.com获取更多精彩文章!Docker&Kubernetes相关文章:容器技术之前介绍了SpringCloudConfig的用法,但对于Kubernetes应用,可能会需要读取ConfigMap的配置,我们看看Springboot是如何方便地读取ConfigMap和Secret。2整合SpringCloudKubenetesSpringCloudKubernetes提供了SpringCloud应用与Kubernetes服务关联,我们也可以自己写Java程序来获取Kubernetes的特性,但Spring又为我们做了。... 继续阅读 >
202010-10 Spring Cloud Admin健康检查 邮件、钉钉群通知的实现 本文主要介绍了SpringCloudAdmin的使用,分享给大家,具体如下:源码地址:https://github.com/muxiaonong/Spring-Cloud/tree/master/cloudadminAdmin简介官方文档:WhatisSpringBootAdmin?SpringBootAdmin是一个用于管理和监控SpringBoot微服务的社区项目,可以使用客户端注册或者Eureka服务发现向服务端提供监控信息。注意,服务端相当于提供UI界面,实际的监控信息由客户端Actuator提供通过SpringBootAdmin,你可以... 继续阅读 >
202010-10 Spring Cloud Feign 自定义配置(重试、拦截与错误码处理) 代码实践 基于spring-boot-starter-parent2.1.9.RELEASE,spring-cloud-openfeign2.1.3.RELEASE引子Feign是一个声明式、模板化的HTTP客户端,简化了系统发起Http请求。创建它时,只需要创建一个接口,然后加上FeignClient注解,使用它时,就像调用本地方法一样,作为开发者的我们完全感知不到这是在调用远程的方法,也感知不到背后发起了HTTP请求:/***@authoraxin*@suammryxx客户端*/@FeignClient(value="xxClient",url="${... 继续阅读 >
202010-09 Spring Cloud负载均衡及远程调用实现详解 负载均衡使用微服务后,为了能够承担高并发的压力,同一个服务可能会启动多个实例。这时候消费者就需要负载均衡,把请求分散到各个实例。负载均衡主要有两种设计:服务端负载均衡客户端负载均衡对于传统的分布式服务来说,大多使用服务端负载均衡。一般会使用Nginx或者ELB等工具作为负载均衡器,如下图:传统负载均衡而在SpringCloud中,使用的是「客户端负载均衡」的方式,使用「Ribbon」组件来实现客户端的负载均衡。只要引入了... 继续阅读 >
202010-09 Spring Cloud Gateway重试机制原理解析 重试,我相信大家并不陌生。在我们调用Http接口的时候,总会因为某种原因调用失败,这个时候我们可以通过重试的方式,来重新请求接口。生活中这样的事例很多,比如打电话,对方正在通话中啊,信号不好啊等等原因,你总会打不通,当你第一次没打通之后,你会打第二次,第三次…第四次就通了。重试也要注意应用场景,读数据的接口比较适合重试的场景,写数据的接口就需要注意接口的幂等性了。还有就是重试次数如果太多的话会导致请求... 继续阅读 >
202010-09 Spring Cloud Feign统一设置验证token实现方法解析 我们也在zuul中通过前置过滤器来统一设置token,其实还漏掉了一种,那就是业务服务调用业务服务的时候,是没有zuul这种前置过滤器的,那么我们该如何设置呢?其实也挺简单的,因为我们服务之前的调用是依赖于Feign的,我们可以从Feign上来做文章。如果你仔细看过Feign的文档的话,肯定会注意到下面一段代码:staticclassDynamicAuthTokenTarget<T>implementsTarget<T>{publicDynamicAuthTokenTarget(Class<T>clazz,... 继续阅读 >