SpringCloud
多来哈米
或悲极或大喜,总要留给回忆!
展开
-
springboot优雅启停(停服时停止相关线程池)
前言每次系统无法正常停止,通过kill -9杀进程。原因是系统线程池未关闭,一直处于运行中。停服做相应关闭相应的bean(@Service、@Component等类)实现IApplicationStartedService(源码如下):重写start方法:我们系统这里会开启线程执行定时任务;stop方法:停止相应任务中线程池,若未使用线程池-忽略;package com.mortals.framework.springcloud.service;public interfac原创 2021-12-15 16:29:35 · 4084 阅读 · 3 评论 -
基于eureka的多节点feign接口,不停服无感知部署
前景:双节点feign调用,但是每次部署,停单节点,还是会影响用户请求???what??大体原因:服务直接停止,eureka心跳30秒,可能状态未同步,导致ribbon依旧将请求分发到停机的服务上;如何优雅启停服务……网上一堆文章————看来是我们自己玩得草率了哈哈操作:①提前将服务置为【OUT_OF_SERVICE】状态(然后等90秒,文章是这么说的,多等会儿总没错)curl -H "Content-Type:application/json" -X PUT -u r..原创 2021-04-02 11:32:42 · 1110 阅读 · 0 评论 -
java使用feign接口下载文件
1、feign接口定义(注意:Response 导包)import feign.Response; /** * 导出定义 */ @PostMapping(value="/xx/export") Response export(@RequestBody JSONObject data);2、接收feign的流,写入response中 ...原创 2020-04-13 11:40:56 · 6076 阅读 · 30 评论 -
Spring Cloud Zuul统一异常处理
一、在zuul的errorfilter中处理(我使用的这种)二、zuul会抛ZuulException,然后转发路径为/error的Controller;(作为替补)import com.alibaba.fastjson.JSONObject;import com.mortals.iot.framework.config.InterceptorConfig;import co...原创 2020-03-09 15:11:04 · 1732 阅读 · 0 评论 -
Zuul中使用interceptor拦截器
package com.mortals.iot.module.common;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter;import org.springf...原创 2020-03-01 20:05:36 · 2520 阅读 · 0 评论 -
Spring Cloud Zuul动态修改路由后的请求url
场景:根据路由规则分发请求到相应子系统;but有些子系统有context-path的前缀;解决办法:自定义filter继承ZuulFilter,在run方法中重新指向新的URI地址:package com.mortals.iot.module.common.interceptor;import com.netflix.zuul.ZuulFilter;import co...原创 2020-03-06 17:35:46 · 2267 阅读 · 6 评论 -
关于spring zuul和spring gateway场景探讨总结
首先推荐使用gateway(据说zuul已经不维护了);场景:用户请求到系统,大部分直接路由转发,并且支持扩展自己系统的Controller及业务;这种场景使用:zuul (我当时还想用gateway)原因:因为gateway和zuul不一样,gateway用的是长连接,netty-webflux,zuul1.0用的就是同步webmvc 第二代的Gateway则是由Sp...原创 2020-02-28 17:36:42 · 1215 阅读 · 0 评论