Springcloud 集成 Turbine

Springcloud 集成 Turbine

1.搭建Springcloud项目

项目结构如下:

image-20210111195748837

我们将在base、demo和turbine模块搭建

base(9005)、demo(9002)为正常项目

turbine(8031)为监控模块

2.项目配置

该项目使用nacos作为注册和配置中心,具体使用方法不做累述

1.base模块配置(demo模块相同):

  • maven依赖

    <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</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
    
  • 修改配置文件

    management:
      endpoints:
        web:
          exposure:
            include: "*"
          cors:
            allowed-origins: "*"
            allowed-methods: "*"
    
  • 修改配置文件

    @EnableDiscoveryClient
    @EnableHystrix
    @EnableHystrixDashboard
    @EnableCircuitBreaker
    @RestController
    @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
    @MapperScan({"com.manage.cloud.mapper"})
    public class BaseApplication {
        @Value("${server.port}")
        private String port;
    
        public static void main(String[] args) {
            SpringApplication.run(BaseApplication.class, args);
        }
    
        @RequestMapping("/hi")
        @HystrixCommand(fallbackMethod = "hiError")
        public String home(@RequestParam(value = "name", defaultValue = "evan") String name) {
            return "hi " + name + " ,i am from port:" + port;
        }
    
        public String hiError(String name) {
            return "hi,"+name+",sorry,error!";
        }
    
    }
    

2. Turbine配置

  • maven依赖,Turbine要排除Eureka依赖,否则启动报错

            <!--集群监控-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-turbine</artifactId>
                <version>1.4.7.RELEASE</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.cloud</groupId>
                        <artifactId>spring-cloud-netflix-eureka-client</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework.cloud</groupId>
                        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
                    </exclusion>
                </exclusions>
    
            </dependency>
            <!--注册中心-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>${nacos.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.hdrhistogram</groupId>
                        <artifactId>HdrHistogram</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
            </dependency>
    
    
  • 配置文件

    management:
      endpoints:
        web:
          exposure:
            include: "*"
          cors:
            allowed-origins: "*"
            allowed-methods: "*"
    
    hystrix:
      dashboard:
        proxy-stream-allow-list: "*"
    turbine:
      app-config: base,demo
      aggregator:
        clusterConfig: default
      clusterNameExpression: new String("default")
      combine-host: true
      instanceUrlSuffix:
        default: actuator/hystrix.stream
    
  • 启动类

    @SpringBootApplication
    @EnableDiscoveryClient
    @RestController
    @EnableHystrix
    @EnableHystrixDashboard
    @EnableCircuitBreaker
    @EnableTurbine
    public class TurbineApplication {
        public static void main(String[] args) {
            SpringApplication.run(TurbineApplication.class, args);
        }
    }
    

3.测试

1.分别启动demo/base/turbin项目

启动后可以在Nacos查看是否启动成功

image-20210111201150380

2.访问dashboard页面

http://localhost:8031/hystrix

image-20210111201435914

3.查看集群监控

image-20210111201514217

image-20210111201531822

4.调用服务

分别调用http://localhost:9005/hi和http://localhost:9005/hi

image-20210111201622002

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值