- 浏览: 499024 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
Hystrix 断路器
由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务累计,导致服务瘫痪,甚至导致服务“雪崩”。
为了解决这个问题,就出现断路器模型。
当对特定的服务的调用达到一个阀值(hystric 是5秒20次) 断路器将会被打开。
就是当服务不可用时就会返回断路器设定的值,防止长时间等待和重试。
当断路器打开后,超过一定时间后又会重新允许请求尝试访问(默认为5s)。
ribbon方式:
feign方式:(feign是自带断路器的)
勘误:有人反映feign的熔断器不起作用,springcloud版本的问题,用这个:
监控平台搭建Hystrix-dashboard
使用Turbine组件做集群数据汇总
https://www.cnblogs.com/yepei/p/7169127.html(Hystrix使用详解)
https://www.cnblogs.com/leeSmall/p/8847652.html(Hystrix 熔断机制(Hystrix基本配置、服务降级、HystrixDashboard服务监控、Turbine聚合监控))
https://blog.csdn.net/hry2015/article/details/78577695?utm_medium=referral(相关参数注解配置)
由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务累计,导致服务瘫痪,甚至导致服务“雪崩”。
为了解决这个问题,就出现断路器模型。
当对特定的服务的调用达到一个阀值(hystric 是5秒20次) 断路器将会被打开。
就是当服务不可用时就会返回断路器设定的值,防止长时间等待和重试。
当断路器打开后,超过一定时间后又会重新允许请求尝试访问(默认为5s)。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency>
ribbon方式:
@SpringBootApplication //spring boot 开启应用 //@EnableDiscoveryClient //Discovery Service”有多种实现,比如:eureka, consul, zookeeper。 @EnableEurekaClient //只能为eureka作用 @EnableHystrix//断路器 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } }
package com.Service; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //ribbon远程调用服务 @Service("callService") public class CallService { final static Logger logger = LogManager.getLogger(CallService.class); @Autowired RestTemplate restTemplate; @HystrixCommand(fallbackMethod = "callServiceError") public String callService(String name) { //这里只是把IP和端口号变成了服务的名字(通过HTTP进行远程服务调用的) return restTemplate.getForObject("http://eureka-Client/eurekaClient/Test/test",String.class); } public String callServiceError(String name) { return "hi,"+name+",sorry,error!"; } }
feign方式:(feign是自带断路器的)
server.port=8765 #logging.pattern.level=INFO #服务器路径 server.context-path=/feign # #eureka.instance.hostname=localHost #表示是否注册自身到eureka服务器,因为当前这个应用就是eureka服务器,没必要注册自身,所以这里是false。 #eureka.client.registerWithEureka=false #fetchRegistry表示是否从eureka服务器获取注册信息,同上,这里不需要 #eureka.client.fetchRegistry=false #设置eureka服务器所在的地址,查询服务和注册服务都需要依赖这个地址。 #eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/ eureka.client.serviceUrl.defaultZone=http\://localhost\:8761/eurekaServer/eureka/ spring.application.name=feign #自定义断路器(网上有说falser的,但实测应该使用true) feign.hystrix.enabled=true
package com.Service; import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @FeignClient(value = "eureka-Client",fallback = CallServiceError.class) //服务名字 public interface CallService { @RequestMapping(value = "/eurekaClient/Test/test",method = RequestMethod.GET) String callService(); }
package com.Service; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; @Component public class CallServiceError implements CallService{ @Override public String callService() { return "sorry Error!"; } }
勘误:有人反映feign的熔断器不起作用,springcloud版本的问题,用这个:
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR6</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
监控平台搭建Hystrix-dashboard
使用Turbine组件做集群数据汇总
https://www.cnblogs.com/yepei/p/7169127.html(Hystrix使用详解)
https://www.cnblogs.com/leeSmall/p/8847652.html(Hystrix 熔断机制(Hystrix基本配置、服务降级、HystrixDashboard服务监控、Turbine聚合监控))
https://blog.csdn.net/hry2015/article/details/78577695?utm_medium=referral(相关参数注解配置)
发表评论
-
分布式跟踪系统
2017-07-18 11:21 434分布式跟踪系统 Zipkin(分服务端和客户端) 1.服务 ... -
spring cloud config 加密使用
2017-06-29 09:49 2153spring cloud config 加密使用 数据不加密 ... -
spring cloud config 高可用的分布式配置中心(Spring Cloud Config)
2017-06-28 09:29 506spring cloud config 高可用的分布式配置中心 ... -
spring cloud config client 使用
2017-06-28 08:42 752spring cloud config client 使用 ... -
spring cloud config service 使用
2017-06-28 08:35 657spring cloud config service 使用 ... -
spring cloud zuul 使用
2017-06-27 10:58 789spring cloud zuul 使用 1.可以实现请求路 ... -
spring cloud feign方式使用服务
2017-06-26 15:17 745spring cloud feign方式使用服务 feig ... -
spring cloud ribbon方式使用服务
2017-06-26 14:32 419spring cloud ribbon方式使用服务 < ... -
spring cloud 向 eureka 注册服务
2017-06-26 11:41 488spring cloud 向 eureka 注册服务 &l ... -
spring cloud eureka 服务搭建
2017-06-26 10:41 358spring cloud eureka 服务搭建 注册服务默 ...
相关推荐
断路器
Spring Cloud 提供了断路器模式的实现,名为 Hystrix,用于防止服务间的级联故障,提高系统的容错性。断路器模式的核心思想是在调用远程服务时,通过一个中间层(即断路器)来监控调用的健康状况。当服务出现故障时...
Spring Cloud Netfix Hystrix断路器例子工程。使用Spring Cloud Netflix Hystrix以及Spring RestTemplate或Spring Cloud Netflix Feign实现断路器模式。
"spring cloud Hystrix断路器的使用" spring cloud Hystrix断路器是Netflix开发的一种断路器模式,用于防止级联故障在微服务架构中。断路器的使用可以防止服务之间的级联故障,使得系统更加稳定和可靠。 Hystrix...
“断路器”本身是一种开关装置,当某个服务单元发生故障监控(类似熔断保险丝),向调用方法返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方法无法处理的异常,这样就保证了服务...
Spring Cloud Hystrix断路器实现容错和降级 Spring Cloud Hystrix断路器是一种实现容错和降级的机制,它可以在服务不可用时,对配置了断路器的方法实行降级策略,临时调用备用方法。这种机制可以避免服务雪崩效应,...
spring cloud微服务框架demo完整可用2版 比第一版多集成了mybatis...(注册中心+生产者+消费者+feign负载均衡+hystrix断路器+仪表盘+gate路由网关+config配置中心+mybatis+oracle+mybatisPlus generator代码自动生成)
Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。复杂分布式...
在分布式系统中,Spring Cloud Hystrix 是一个关键的组件,它作为一个断路器来防止服务雪崩。断路器模式是微服务架构中的一个重要概念,用于提高系统的容错性和稳定性。下面我们将深入探讨 Spring Cloud Hystrix 的...
骆驼hystrix端点 将子端点包装到同步hystrix断路器中的骆驼端点。 该项目可将hystrix组件轻松集成到骆驼路线中。 一个非常简单的示例可能如下所示:private class TestRoute extends RouteBuilder {@Overridepublic ...
通过以上步骤,我们可以构建一个利用Hystrix断路器的Feign客户端,实现对故障服务的智能处理,提高系统的整体稳定性和可靠性。 总结来说,Spring Cloud Hystrix是一个强大的工具,它通过断路器模式有效地解决了...
Feign使得编写消费其他服务的客户端变得更简单,同时也内置了Hystrix断路器,以确保高可用性。 总之,Spring Cloud Hystrix作为微服务架构中的关键组件,通过断路器机制提高了系统的稳定性和容错性。结合Eureka ...
Hystrix是Netflix开源的一款强大的断路器库,它适用于Java环境,并且广泛应用于Spring Cloud框架中。本教程将深入探讨如何使用Hystrix在微服务中实现断路器功能。 首先,让我们理解断路器的工作原理。断路器在正常...
本篇主要介绍的是SpringCloud中的断路器(Hystrix)和断路器指标看板(Dashboard)的相关使用知识,需要的朋友可以参考下
在本文中,我们将深入探讨“Spring Cloud Hystrix 断路器”的概念及其在实际应用中的工作原理。 首先,我们来理解什么是断路器模式。断路器模式是软件设计模式的一种,用于在系统中引入故障保护机制。当服务出现...
3. `eureka-consumer-feign-hystrix`:这是一个服务消费者,它使用Feign客户端和Hystrix断路器来调用`eureka-producer`提供的服务。Feign是一个声明式Web服务客户端,使得编写Web服务客户端变得简单。而Hystrix则是...