使用Hystrix实现微服务的容错处理(二)
使用Turbine聚合监控数据
Turbine简介
turbine是一个聚合Hystrix监控数据的工具,他可将所有相关的/hystrix.stream端点的数据聚合到一个组合的/turbine.stream。从而让集群的监控更加方便
,引入Turbine后,架构如下
使用Turbine监控多个微服务
- 将之前的电影微服务复制一份,改名为
micro-movie-service2
- 复制一个项目改造成turbine项目,添加依赖
compile group: 'org.springframework.cloud', name: 'spring-cloud-netflix-turbine', version: '2.1.2.RELEASE'
- 给Turbine主类添加@EnableTurbine注解
@SpringBootApplication
@EnableTurbine
public class HystrixTurbineServicedApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixTurbineServicedApplication.class, args);
}
}
- 编写配置文件
server:
port: 8860
spring:
application:
name: micro-hystrix-turbine-service
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://127.0.0.1:3306/micro_user?useUnicode=true&characterEncoding=utf-8&useSSL=true
username : root
password : xda265856
driverClassName : com.mysql.jdbc.Driver
jpa:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
ddl-auto: update
show-sql: true
eureka:
client:
healthcheck:
enabled: true
serviceUrl:
defaultZone: http://root:root123@localhost:8761/eureka/,http://root:root123@localhost:8762/eureka/
instance:
prefer-ip-address: true
turbine:
app-config: micro-movie-service2,micro-movie-service
cluster-name-expression: "'default'"
- 按照以下顺序启动各个服务
- Eureka Server集群
- 启动用户微服务集群
- 启动两个电影微服务
- 启动turbine
- 启动dashboard
- 访问:http://127.0.0.1:8870/movie/1,让micro-movie-service1产生监控数据
- 访问: http://127.0.0.1:8871/movie/1,让micro-movie-service2产生监控数据
- 打开Hystrix Dashboard首页:http://127.0.0.1:8000/hystrix。在URL一栏中输入:http://localhost:8860/turbine.stream,即可查看到监控页面