zoukankan      html  css  js  c++  java
  • Spring Cloud Hystrix 断路器

    1.继承feign和ribbon

    2.ribbon服务修改内容

    新增依赖pom.xml:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-hystrix</artifactId>
    </dependency>

    3.在启动类增加注解:@EnableHystrix

    4.修改service类,增加断路返回:

        @Service
        public class HelloService {
            @Autowired
            RestTemplate restTemplate;
    
            @HystrixCommand(fallbackMethod = "hiError")
            public String hiService(String name) {
                return restTemplate.getForObject("http://eurekaclient/hi?name="+name,String.class);
            }
    
            public String hiError(String name) {
                return "hi,"+name+",sorry,error!";
            }
        }

    5.测试,当对应的服务关闭时,访问对应服务返回如下:

    6.feign原本就继承了断路功能,需要在配置里打开:

    application.yml新增下面内容:

    feign:
      hystrix:
          enabled: true

    7.在客户端服务接口上增加注解时,加上fallback参数即可

    @FeignClient(value = "service-hi",fallback = SchedualServiceHiHystric.class)

    8.然后写这个接口的一个实现类SchedualServiceHiHystric

    package com.bennytitan.servicefeign;
    
    import org.springframework.stereotype.Component;
    
    @Component
    public class SchedualServiceHiHystric implements SchedualServiceHi {
        @Override
        public String sayHiFromClientOne(String name) {
            return "sorry "+name;
        }
    }

    这样就完成了。

    9.如果要加入Hystrix Dashboard来打开断路器仪表盘页面显示断路器工作情况。需要增加依赖:

            <!-- 断路器仪表盘 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
            </dependency>

    10.在配置bean增加下面的bean配置:

        @Bean
        ServletRegistrationBean getServlet(){
            HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
            ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
            registrationBean.setLoadOnStartup(1);
            registrationBean.addUrlMappings("/hystrix.stream");
            registrationBean.setName("HystrixMetricsStreamServlet");
            return registrationBean;
        }

    11.在服务启动类里添加注解:@EnableHystrixDashboard

    12.测试访问:http://localhost:8764/hystrix

    打开页面,输入红框内的内容后点击按钮

    完成。

  • 相关阅读:
    DELPHI SOKET 编程(使用TServerSocket和TClientSocket)
    DELPHI 任务栏无EXE显示
    Delphi 实现无窗口移动(详细使用WM_NCHITTEST和PtInRect API进行测试)
    ViewPager的简单使用
    delphi 网页提交按钮执行点击事件
    Delphi 获取网站验证码的图片
    Delphi 模拟网站验证码(酷,把随机文字写道图片上)
    张文木的文章都很不错,有空仔细看看
    深度RAMOS,把操作系统全部安装在内存上
    C# ASP.net 入门之简单通讯录
  • 原文地址:https://www.cnblogs.com/BennyTitan/p/9198418.html
Copyright © 2011-2022 走看看