202110-28 springcloud gateway设置context-path的操作 今天说一下遇到的问题,关于springcloudgateway设置context-path的问题。1.使用场景由于没有申请二级域名,网关使用的地址是xxx.com/gateway/用nginx转发的时候/gateway/也被用来寻址。gateway没办法设置context-path,针对我这个场景有3个解决方案。2.解决方案2.1增加本地路由(有一个网址指向自己,这里就是/gateway)spring:cloud:gateway:routes:#网关本身没有contextPath,通过自己转发自己,达到... 继续阅读 >
202110-28 springcloud gateway 映射失效的解决方案 网关解决的问题:自动路由,反向代理,负载均衡鉴权、监控使用springcloudgateway路由匹配predicate并到达指定位置请求过来通过handlermapping来判断是否可以处理,能处理通过handler去处理,处理前经过一系列filtergateway配置id代表某一条规则uri代表目的地predicate代表路由规则,解析请求头、请求方法、请求时间、请求路径等请求参数才可路由到uri的目的地filter代表过滤器,可在请求过程中额外添... 继续阅读 >
202110-15 SpringCloud 如何使用feign时的复杂参数传递 Feign传参注意最近在用SpringCloud尝试重构以前的项目,使用Feign客户端组件来调用微服务,经常出现参数传不过去变成null的问题,网上查了一下发现feign在参数上的使用还是有一定的限制的,主要是要注意:1.当参数比较复杂时,feign即使声明为get请求也会强行使用post请求2.不支持@GetMapping类似注解声明请求,需使用@RequestMapping(value="url",method=RequestMethod.GET)3.使用@RequestParam注解时必须要在后面加上参数... 继续阅读 >
202110-15 SpringCloud Gateway 路由配置定位原理分析 环境:springcloudHoxton.SR11本节主要了解系统中的谓词与配置的路由信息是如何进行初始化关联生成路由对象的。每个谓词工厂中的Config对象又是如何被解析配置的。所有的谓词工厂中的Config中属性值是如何被配置的。在SpringCloudGateway中的所有谓词工厂如下:命名规则:XxxRoutePredicateFactory。所有的这些谓词工厂都是如下的继承关系publicclassMethodRoutePredicateFactoryextendsAbstractRoutePredicateFactory<Met... 继续阅读 >
202110-15 SpringCloud 微服务最佳开发实践 现在基于SpringCloud的微服务开发日益流行,网上各种开源项目层出不穷。我们在实际工作中可以参考开源项目实现很多开箱即用的功能,但是必须要遵守一定的约定和规范。本文结合我们实际的开发中遇到的一些问题整理出了一份微服务开发的实践规范,欢迎各位大佬拍砖指点。Maven规范1.所有项目必须要有一个统一的parent模块所有微服务工程都依赖这个parent,parent用于管理依赖版本,maven仓库,jar版本的统一升级维护在parent下层可以... 继续阅读 >
202110-12 seata springcloud整合教程与遇到的坑 SEATA概要seata是alibaba出的一款分布式事务管理器,他有侵入性小,实现简单等特点。我们能够使用seata实现分布式事务管理,是微服务必备的组件。他可以实现在微服务之间的事务管理,也可以实现多个数据源的事务管理。seata在阿里内部,和众多的公司都有应用,因此我们可以放心的使用它。依赖<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId></dependen... 继续阅读 >
202110-12 解决spring cloud zuul与nginx的域名转发问题 nginx配置proxy_set_headerHost$http_host;springzuul配置#设置转发时携带域名zuul:add-host-header:true#设置不忽略头信息,否则无法写入cookiesensitive-headers:坑:给zuul网关添加nginx转发携带域名Zuul问题问题描述给zuul的配置文件添加下列不起作用zuul:add-proxy-headers:true#注意这个proxy问题解决是添加错了!!!#add-proxy-headers:true是错的add-host-header:true#才是对的以上为个人经验,... 继续阅读 >
202110-12 SpringCloud Zuul实现负载均衡和熔断机制方式 一、场景笔者就Zuul网关下实现其负载均衡与熔断机制(雪崩)进行实践,前提是已经导入zuul相关依赖springboot版本:1.5.9.RELEASEspringcloud版本:Dalston.SR5<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zuul</artifactId></dependency><dependency><groupId>com.netflix.zuul</groupId>... 继续阅读 >
202110-12 SpringCloud如何实现Zuul集群(负载均衡) 目录前言:一、使用Nginx+Zuul实现网关集群1.创建Eurek注册中心、会员服务、订单服务(略)2.创建Zuul服务3.下载Nginx服务器二、测试三、补充Nginx和网关的区别在什么地方?Nginx也可以实现网关,为什么不用Nginx实现网关呢?关于Nginx负载均衡故障转移:前言:在微服务架构中,有一个组件可以说是必不可少的,那就是微服务网关,微服务网关处理了负载均衡,缓存,路由,访问控制,服务代理,监控,日志等。API网关在微服务架... 继续阅读 >
202110-12 springcloud gateway如何实现路由和负载均衡 简介:gateway主要是做路由负载,过滤主要是替代zuul1.x性能比zuul好zuul是基于Servlet,gateway是基于spring-webflux用的netty+reactoryml文件实现路由负载的配置亲自测试spring:application:name:xgyx_gatewaycloud:discovery:locator:enabled:truegateway:routes:-id:a#随便定义不重复就好uri:lb://xgyx-welfareservice-x#服务名称predicate... 继续阅读 >
202110-01 SpringCloud gateway如何修改返回数据 版本说明开源软件版本springboot2.1.6.RELEASEjdk11.0.3gradle主要引入了springboot2.1,lombokplugins{id'org.springframework.boot'version'2.1.6.RELEASE'id'java'id"io.freefair.lombok"version"3.6.6"}applyplugin:'io.spring.dependency-management'group... 继续阅读 >
202109-30 springcloud + mybatis + seate集成示例 目录一.客户端1.引包 2.编写配置类 3.修改启动类 4.在需要开启分布式事物的方法上添加注解 二.服务端1.下载seata-server2.修改配置文件(本文以nacos为样例,store记录为mysql)3.创建表一.客户端1.引包<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId><version>2.1.1.RELEASE</version></dependency> 2.编写配置类@Configura... 继续阅读 >
202109-29 SpringCloud feign服务熔断下的异常处理操作 今天做项目的时候,遇到一个问题,如果我调用某个服务的接口,但是这个服务挂了,同时业务要求这个接口的结果是必须的,那我该怎么办呢,答案是通过hystrix,但是又有一点,服务不是平白无故挂的(排除服务器停电等问题),也就是说有可能是timeoutorwrongargument等等,那么我该如何越过hystrix的同时又能将异常成功抛出呢第一点:先总结一下异常处理的方式:1):通过在controller中编写@ExceptionHandler方法直接在controller... 继续阅读 >
202109-24 详解SpringCloud新一代网关Gateway 目录一、概述简介1.1、简介1.2、作用二、三大核心概念2.1、Route路由2.2、Predicate断言2.3、Filter过滤2.4、总体三、Getway工作流程四、入门配置4.1、pom4.2、路由配置五、通过微服务名实现动态路由六、Predicate的使用七、Filter的使用7.1、作用7.2、SpringCloudGateway的Filter7.3、自定义过滤器一、概述简介1.1、简介SpringCloudGateway作为SpringCloud生态系统中的网关,目标是替代Zuul,在SpringCloud2.0以上版本中,... 继续阅读 >
202109-22 SpringCloud的JPA连接PostgreSql的教程 项目目录结构父build.gradle文件如下spring-cloud-dependencies和spring-cloud-alibaba-dependencies之间有版本对应关系的。并不是可以随意搭配的。具体版本对应关系参考:版本关系本想使用WebFlux模块的,奈何openfeign不支持。buildscript{ext{springBootVersion='2.1.13.RELEASE'springBootManagementVersion='1.0.8.RELEASE'}repositories{mavenLocal()maven{url'... 继续阅读 >
202109-19 SpringCloud zuul 网关如何解决跨域问题 跨域在SpringCloud中zuul和springboot要同时配置才能实现网关处理跨域解决AccesstoXMLHttpRequestat‘http://192.168.2.173:8001/energy-base/groupType/getPageByType?timestamp=1557886425725'fromorigin‘http://localhost:3000'hasbeenblockedbyCORSpolicy:The‘Access-Control-Allow-Origin'headercontainsmultiplevalues‘http://localhost:3000,*',butonlyoneisallowed.Access-Control-Al... 继续阅读 >