当前位置: 首页 > news >正文

免费的网站后台装修平台自己做网站有几个

免费的网站后台,装修平台自己做网站有几个,公司网站建站流程,河北新河网微服务系统中为了防止服务雪崩问题#xff0c;服务之间相互调用的时候一般需要开启熔断与降级#xff0c;下面就来看下feign如何集成hystrix来做熔断与降级。 依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-c…微服务系统中为了防止服务雪崩问题服务之间相互调用的时候一般需要开启熔断与降级下面就来看下feign如何集成hystrix来做熔断与降级。 依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId /dependency !--高版本才需要单独引入-- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix/artifactIdversion2.2.10.RELEASE/version /dependency需要说明的是低版本的feign默认已经依赖了hystrix不需要添加额外的依赖但是高版本的feign默认并没有依赖hystrix因此需要额外导入hystrix的依赖。 降级 所谓的降级就是在服务之间相互调用的时候如果提供者抛出了异常消费者并不会同步的也抛出异常而是给客户端返回一个降级以后的结果我们可以给FeignClient添加fallbackFactory来指定降级以后的处理逻辑。 1让feign开启降级 feign:hystrix:enabled: true2给FeingClient添加fallbackFactory 比如我们有一个UserClient FeignClient(value userservice,url http://localhost:8081,fallbackFactory UserFallbackFactory.class,configuration FeignConfig.class) public interface UserClient {GetMapping(/user/{id})public User queryById(PathVariable(id) Long id); }3实现UserFallbackFactory自定义降级逻辑 public class UserFallbackFactory implements FallbackFactoryUserClient {Overridepublic UserClient create(Throwable cause) {return new UserClient(){Overridepublic User queryById(Long id) {return new User(0L, fallback user, fallback address);}};} }4UserFallbackFactory配置到FeignConfig中 UserClient会引用这个配置从而找到UserFallbackFactory这个bean。 public class FeignConfig {Beanpublic UserFallbackFactory userFallbackFactory(){return new UserFallbackFactory();} }测试一下 如果userservice接口异常浏览器并不会抛出异常而是返回将降级以后的结果 熔断 所谓的熔断就是说假如服务提供者现在已经异常了消费者就没有必要继续去调用了反正调用也是失败干错直接走降级逻辑。那么hystrix是如何来判断应该是直接走降级逻辑还是应该发起远程调用这里边主要有以下几个参数 配置 hystrix:command:default:metrics:rollingStats:timeInMilliseconds: 5000circuitBreaker:requestVolumeThreshold: 2errorThresholdPercentage: 50sleepWindowInMilliseconds: 10000以上几个参数的含义是 5秒timeInMilliseconds以内请求次数达到2个requestVolumeThreshold以上失败率达到50%errorThresholdPercentage以上则开启熔断10秒sleepWindowInMilliseconds。 测试一下 连续访问10次接口order-service的输出 2023-09-08 09:32:44.144 INFO 4364 --- [nio-8080-exec-1] com.github.xjs.web.OrderController : OrderController.queryById(), id1 2023-09-08 09:32:44.806 INFO 4364 --- [nio-8080-exec-2] com.github.xjs.web.OrderController : OrderController.queryById(), id1 2023-09-08 09:32:45.408 INFO 4364 --- [nio-8080-exec-3] com.github.xjs.web.OrderController : OrderController.queryById(), id1 2023-09-08 09:32:45.781 INFO 4364 --- [nio-8080-exec-4] com.github.xjs.web.OrderController : OrderController.queryById(), id1 2023-09-08 09:32:45.981 INFO 4364 --- [nio-8080-exec-5] com.github.xjs.web.OrderController : OrderController.queryById(), id1 2023-09-08 09:32:46.261 INFO 4364 --- [nio-8080-exec-6] com.github.xjs.web.OrderController : OrderController.queryById(), id1 2023-09-08 09:32:46.541 INFO 4364 --- [nio-8080-exec-7] com.github.xjs.web.OrderController : OrderController.queryById(), id1 2023-09-08 09:32:46.792 INFO 4364 --- [nio-8080-exec-8] com.github.xjs.web.OrderController : OrderController.queryById(), id1 2023-09-08 09:32:47.029 INFO 4364 --- [nio-8080-exec-9] com.github.xjs.web.OrderController : OrderController.queryById(), id1 2023-09-08 09:32:47.258 INFO 4364 --- [io-8080-exec-10] com.github.xjs.web.OrderController : OrderController.queryById(), id1user-service的输出 2023-09-08 09:32:44.358 ERROR 9788 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: 查询用户异常] with root cause 2023-09-08 09:32:44.812 ERROR 9788 --- [nio-8081-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: 查询用户异常] with root cause很显然前面2次调用失败以后开启了熔断后面的8个请求都是直接走的降级逻辑请求并没有到后端的user-service。 熔断器的工作原理 背后的原理就是AOPhystrix会拦截并统计远程调用的结果如果达到熔断的条件就开启熔断开启熔断以后请求就不会到后端的微服务了。当然也不能一直熔断sleepWindowInMilliseconds时间以后如果再有新的调用hystrix会放行一个请求到后端的微服务如果请求还是失败的则继续保持熔断走降级逻辑如果请求是成功的则关闭熔断正常调用后端的微服务。 断路器控制熔断和放行是通过状态机来完成的 完整的源码下载https://github.com/xjs1919/enumdemo
http://www.zqtcl.cn/news/66091/

相关文章:

  • 酷 网站模板网站建设拍金手指排名贰贰
  • 网站分为几级页面桂林腾达网是什么网
  • 在那个网站做ppt可以赚钱网站建设什么专业
  • 如何在服务器上放网站建设工程合同范本2021
  • 网站标题更换曲靖企业网站建设
  • 深圳个性化建网站公司郑州自助建站软件
  • 网盘建网站汕头有几个区
  • 数字营销 h5 网站开发网站模板 北京公司
  • 网站建设背景分析论文上海做推广的公司
  • 网站建设的结论树莓派做网站服务器性能怎么样
  • 个人如何做网站开源 网站源代码
  • 涨口碑说做的网站wordpress 4.5 安装失败
  • 国内做性视频网站在线营销网站建设
  • 丹徒网站建设公司工作室网站
  • 万能小偷程序做网站用jsp做的网站前后端交互
  • 舟山网站设计什么样的网站空间做电影网站不卡
  • 太原cms建站模板杭州蓝韵网络有限公司
  • 农副产品销售网站开发wordpress主页不加index.php 打不开
  • 电商开发网站公司wordpress 文字 居中
  • shopex更改数据密码后网站打不开了关键词app
  • 做链家房产的网站怎么做的黄山网站建设怎么做
  • 网站建设肆金手指排名wordpress widget修改
  • 在线网站制作模拟wordpress邮件内容
  • 商务网站如何推广俄罗斯搜索引擎浏览器官网入口
  • 江苏军民融合网站建设微网站制作速成法
  • 自己做的网站加载慢的原因网站关键词指数查询
  • 天河门户网站建设广州手机网站案例
  • html怎么设置网站吗网站开发软件三剑客
  • 360网站推广官网网址网架公司厂家
  • 为什么要建设旅游网站东莞房价下跌最惨一览表