202301-31 使用kotlin编写spring cloud微服务的过程 创建工程使用idea的springinitializr创建一个项目,语言选择kotlin,类型为gradle。根据需要选择依赖配置文件yml或者properties文件和java是完全一样的,这里不详细说明修改build.gradle.kts中的参数:plugins{//springboot版本id("org.springframework.boot")version"2.3.3.RELEASE"//自动依赖包版本管理id("io.spring.dependency-management")version"1.0.10.RELEASE"...}//springcloud版本extra["springCloudVers... 继续阅读 >
202301-31 spring cloud gateway转发服务报错的解决 目录springcloudgateway转发服务报错错误如下解决方案使用gateWay做为网关遇到的404问题GateWay有几个重要的配置,也是最重要的东西我在项目中访问gateWay服务的时候springcloudgateway转发服务报错错误如下javax.net.ssl.SSLHandshakeException:error:1000009c:SSLroutines:OPENSSL_internal:HTTP_REQUEST在springcloudgateway项目中,使用了SSL验证后,为了增加系统性能,引入了netty-tcnative-boringssl-static依赖来增加... 继续阅读 >
202205-15 Spring Cloud Alibaba Nacos Config进阶使用 目录一、SpringBoot使用NacosConfig实现多环境切换1.现象2.引入依赖3.添加bootstrap.yaml配置文件4.配置对应关系图5.文件格式简述6.启动nacos7.添加生产配置8.添加测试controller9.启动Springboot工程并观察到如下日志则为成功10.浏览器验证11.调整激活环境12.新建test环境配置13.test配置关系图14.测试方法15.重启springboot服务,监控控制台输出16.浏览器验证17.配置修改实时生效18.不同环境配置动态切换... 继续阅读 >
202204-30 spring-cloud-gateway启动踩坑及解决 目录spring-cloud-gateway启动踩坑1、webflux与mvc不兼容2、webflux使用netty作为容器3、后来实验了下很坑得springcloudgateway异常spring-cloud-gateway启动踩坑本人使用的版本是2.1.2,以下只记录几个小问题,但确实实实在在的把个人恶心的要死要活的找不到办法,几经挣扎,最终解决。更可恨的是开发的过程中,没有出现异常,后来由于项目组其它人加了依赖,不知不觉对项目的兼容造成了英雄,真的是被撞的头破血流,才找到原因1、... 继续阅读 >
202204-16 Spring Cloud 专题之Sleuth 服务跟踪实现方法 目录准备工作实现跟踪抽样收集整合Zipkin1.下载Zipkin2.引入依赖配置3.测试与分析持久化到mysql1.创建zipkin数据库2.启动zipkin3.测试与分析在一个微服务架构中,系统的规模往往会比较大,各微服务之间的调用关系也错综复杂。通常一个有客户端发起的请求在后端系统中会经过多个不同的微服务调用阿里协同产生最后的请求结果。在复杂的微服务架构中,几乎每一个前端请求都会形成一条复杂的分布式的服务调用链路,在每条链路中任何一... 继续阅读 >
202203-17 Spring cloud alibaba之Gateway网关功能特征详解 目录1.网关简介2.什么是springcloudgateway2.1核心概念3.SpringCloudGateway快速开始5.路由断言工厂(RoutePredicateFactories)配置6.自定义路由断言工厂7.Filter过滤器8.自定义过滤器9.自定义全局过滤器(GlobalFilters)10.Gateway跨域配置(CORSConfiguration)11.Gateway整合Sentinel进行流控12.流控配置说明13.自定义重写流控返回信息1.网关简介所谓的网关就是指系统的统一入口,它封装了运用程序的内部结构,为客户... 继续阅读 >
202202-12 Nacos+Spring Cloud Gateway动态路由配置实现步骤 目录前言一、Nacos环境准备1、启动Nacos配置中心并创建路由配置2、连接Nacos配置中心二、项目构建1、项目结构2、编写测试代码三、测试动态网关配置1、启动服务,观察注册中心2、访问网关,观察服务日志四、总结前言Nacos最近项目一直在使用,其简单灵活,支持更细粒度的命令空间,分组等为麻烦复杂的环境切换提供了方便;同时也很好支持动态路由的配置,只需要简单的几步即可。在国产的注册中心、配置中心中比较突出,容易上手... 继续阅读 >
202202-12 Spring Cloud Gateway自定义异常处理Exception Handler的方法小结 版本:SpringCloud2020.0.3常见的方法有实现自己的DefaultErrorWebExceptionHandler或仅实现ErrorAttributes.方法1:ErrorWebExceptionHandler(仅供示意)自定义一个GlobalErrorAttributes:@ComponentpublicclassGlobalErrorAttributesextendsDefaultErrorAttributes{@OverridepublicMap<String,Object>getErrorAttributes(ServerRequestrequest,ErrorAttributeOptionsoptions){Throwableerror... 继续阅读 >
202112-14 spring cloud服务之间的调用之ribbon详解 前言昨天,我们通过一个实例演示了,spring-cloud服务注册组件——Eureka的基本配置和简单用法,但是服务注册就是为了方便后期的发现和调用,所以今天我们趁热打铁,分享下spring-cloud服务之间的调用。服务间的调用关于spring-cloud的服务调用,我们首先需要了解它的两个核心组件Ribbon和Feign。我们都知道,springboot的接口都是基于REST实现的,但是在实际线上运行的时候,考虑到用户规模、服务可用性等方面的因素,我们一般很... 继续阅读 >
202112-10 Spring Cloud OAuth2中/oauth/token的返回内容格式 目录背景实现原理代码实现相关类关键切面拦截器背景在前后端分离的项目中,一般后端返回给前端的格式是一个固定的json格式。在这个前提下,SpringCloudOAuth2生成accesstoken的请求/oauth/token的返回内容就需要自定义。访问/oauth/token示例如下:原始返回值的格式如下:我们希望使用我们自己固定的json格式,如下:实现原理原理就是通过切面编程实现对/oauth/token端点请求的结果进行拦截封装处理,由于/oauth/token是Spring... 继续阅读 >
202111-17 浅谈如何在项目中使用Spring Cloud Alibaba Sentinel组件 目录Sentinel是什么Sentinel与Hystrix的区别 Sentinel分为两大部分:一、控制台(Dashboard) 二、搭建客户端1.在自己的项目中引入依赖2.编辑项目中的 application.yml或者bootstrap.yml文件3.资源是Sentinel中的一个关键概念。它可以是任何东西,例如服务、方法,甚至是代码片段。三、查看接口的流量的详情1.实时监控2.簇点链路3.等等:其他使用方法有待发掘 Sentinel是什么随着微服务的流行,服务和服务... 继续阅读 >
202111-09 Spring cloud alibaba之Ribbon负载均衡实现方案 目录1.什么是Ribbon1.1客户端的负载均衡1.2服务器端的负载均衡1.3常见负载均衡算法2.Nacos使用Ribbon3.Ribbon负载均衡策略3.1常用负载均衡描述3.3修改默认的负载均衡策略--配置文件的方式3.4自定义负载均衡策略4.使用springcloudloadbalancer替代ribbon1.什么是Ribbon目前主流的负载均衡方案分为以下两种:(1)集中式负载均衡:在消费者和服务提供者中间使用独立的代理方式进行负载,有硬件的(F5),软件的Nginx(2)客户端事... 继续阅读 >
202111-07 Spring Cloud Stream简单用法 目录简单使用SpringCloudStream构建基于RocketMQ的生产者和消费者生产者消费者Stream其他特性消息发送失败的处理消费者错误处理SpringCloudStream对SpringCloud体系中的Mq进⾏了很好的上层抽象,可以让我们与具体消息中间件解耦合,屏蔽掉了底层具体MQ消息中间件的细节差异,就像Hibernate屏蔽掉了具体数据库(Mysql/Oracle⼀样)。如此⼀来,我们学习、开发、维护MQ都会变得轻松。⽬前SpringCloud... 继续阅读 >
202111-07 关于Spring Cloud健康检查的陷阱 SpringCloud健康检查的陷阱健康检查基于SpringBootActuator的健康检查是SpringCloud微服务的必备组件,用来确保我们的服务是否可用。引入SpringBootActuator后,通过http://ip:port/health,可以看到HealthEndPoint给我们提供默认的监控结果,包含磁盘检测和数据库检测。如下{"status":"UP","diskSpace":{"status":"UP","total":398458875904,"free":315106918400,"thresho... 继续阅读 >
202110-29 spring cloud gateway集成hystrix全局断路器操作 gateway集成hystrix全局断路器pom.xml添加依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency>在配置文件中,增加spring.cloud.gateway.default-filters:default-filters:-name:Hystrixargs:name:fallbackcmdfallbackUri:forward:/fallbackcontroller一定要注意是spring.cloud.gateway.default-filters这个配置节。如上的配... 继续阅读 >
202110-29 spring cloud gateway集成hystrix实战篇 springcloudgateway集成hystrix本文主要研究一下springcloudgateway如何集成hystrixmaven<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency>添加spring-cloud-starter-netflix-hystrix依赖,开启hystrix配置实例hystrix.command.fallbackcmd.execution.isolation.thread.timeoutInMilliseconds:5000spri... 继续阅读 >