微服务熔断限流Hystrix之流聚合
简介
上一篇介绍了 Hystrix Dashboard 监控单体应用的例子,在生产环境中,监控的应用往往是一个集群,我们需要将每个实例的监控信息聚合起来分析,这就用到了 Turbine 工具。Turbine有一个重要的功能就是汇聚监控信息,并将汇聚到的监控信息提供给Hystrix Dashboard来集中展示和监控。
流程
实验
工程说明
工程名 | 端口 | 作用 |
---|---|---|
eureka-server | 8761 | 注册中心 |
service-hi | 8762 | 服务提供者 |
service-consumer | 8763 | 服务消费者 |
service-turbine | 8765 | Turbine服务 |
核心代码
eureka-server 、service-hi、service-consumer 工程代码与上一节 微服务熔断限流Hystrix之Dashboard 相同,下面是 service-turbine 工程的核心代码。
pom.xml
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>
<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>
复制代码
application.yml
server:port: 8765spring:application:name: service-turbine
eureka:client:service-url:defaultZone: http://localhost:8761/eureka/turbine:app-config: service-consumercluster-name-expression: new String("default")combine-host-port: true
复制代码
参数说明:
- turbine.app-config:指定要监控的应用名
- turbine.cluster-name-expression:指定集群的名字
- turbine.combine-host-port:表示同一主机上的服务通过host和port的组合来进行区分,默认情况下是使用host来区分,这样会使本地调试有问题
启动类
@SpringBootApplication
@EnableEurekaClient
@EnableHystrixDashboard
@EnableTurbine
public class ServiceTurbineApplication {public static void main(String[] args) {SpringApplication.run( ServiceTurbineApplication.class, args );}}
复制代码
模拟多实例
启动多个 service-consumer 工程,来模拟多实例,可以通过命令java -jar service-consumer.jar --server.port=XXXX 来实现。
为了方便,在编辑器中实现启动工程。但 idea 不支持单个应用的多次启动, 需要开启并行启动:
选择 “Edit Configurations...”
勾选 “Allow running in parallel”
测试
启动工程,访问 http//localhost:8763/hi , http//localhost:8764/hi , http//localhost:8763/oh , http//localhost:8764/oh,来产生测试数据。
访问 http://localhost:8765/hystrix ,
输入监控流地址 http://localhost:8765/turbine.stream ,点击 Monitor Stream 进入监控页面
可以看到聚合了两个实例的 Hystrix dashbord 数据。
源码
github.com/gf-huanchup…
欢迎扫码或微信搜索公众号《程序员果果》关注我,关注有惊喜~
微服务熔断限流Hystrix之流聚合相关推荐
- java中的熔断机制_微服务熔断机制与Hystrix原理
微服务是由多个子系统构成的系统,每个子系统分别负责自己的业务,各个服务之间通过HTTP请求进行通讯,所以保证每个服务的可用性是整体可用性的前提,因此在一些服务提供者不可用的情况下,导致大量请求阻塞到此 ...
- Service Mesh微服务熔断、限流的骚操作
在微服务架构中,随着服务调用链路变长,为了防止出现级联雪崩,在微服务治理体系中,熔断.限流作为服务自我保护的重要机制,是确保微服务架构稳定运行的关键手段之一. 那么什么是熔断.限流?在传统Spring ...
- 玩转Service Mesh微服务熔断、限流骚操作
在微服务架构中,随着服务调用链路变长,为了防止出现级联雪崩,在微服务治理体系中,熔断.限流作为服务自我保护的重要机制,是确保微服务架构稳定运行的关键手段之一. 那么什么是熔断.限流?在传统Spring ...
- 微服务接口限流的设计与思考(附GitHub框架源码)
http://www.infoq.com/cn/articles/microservice-interface-rate-limit?useSponsorshipSuggestions=true&am ...
- (二)微服务保护——限流规则
微服务保护--限流规则 一.快速入门: 1.簇点链路: 二.流控模式: (一)三种模式: (二)关联模式: 1.例子: 2. 使用场景: 3.案例: (三)链路模式: 1.例子: 2.案例 三.流控效 ...
- 微服务网关限流鉴权-wei-fu-wu-wang-guan-xian-liu--jian-quan
title: 微服务网关限流&鉴权 date: 2022-01-06 14:40:45.047 updated: 2022-01-06 14:40:45.047 url: https://ww ...
- 眼见为实:关于微服务熔断这几个知识点,你可能理解错了
" 微服务熔断,是当微服务中某个子服务,发生异常不可用,其他服务在进行远程调用时不能正常访问而一直占用资源,导致正常的服务也发生资源不能释放而崩溃,这时为了不造成整个微服务群瘫痪,进行的保护 ...
- 微服务(八)——Hystrix服务降级、熔断、限流(上)
目录 Hystrix服务降级.熔断.限流 Hystrix是什么 Hystrix停更进维 Hystrix的服务降级熔断限流相关概念 Hystrix支付微服务构建 JMeter高并发压测后卡顿 订单微服务 ...
- c++突破网关屏蔽_通过API网关实现微服务管控-限流,熔断和降级
今天准备谈下基于API网关来实现微服务治理管控中的服务限流,熔断和降级方面的内容.在前面谈微服务架构的时候也谈到过类似通过Hystrix,Sentinel来是服务限流熔断.包括也不断地在谈去中心化架构 ...
- 分布式架构,微服务、限流、熔断....
本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件.本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节. 要理解微服务,首先要先理解不是微服 ...
最新文章
- 交叉科学部如何建?基金委:要做好这4点
- 如何调整mintty行距及字间距
- UVA 307 Sticks
- python带通滤波_python中的fft带通滤波器
- java 方法 示例_Java扫描仪具有示例的NextNextInt()方法
- php重写curl_setopt函数,PHP curl_share_setopt函数
- ModelCoder中的代数环问题
- C++ 面向对象与面向过程的区别与联系
- 智慧楼宇管理后台、运维配置、设备台账、设备管理、维保统计、巡检统计、维修工单、报修统计、电子巡更、智能楼宇运营、运营后台、智慧社区、楼宇设备监控管理端、智能社区管理系统、楼宇运维管理系统
- 第九届蓝桥杯省赛C/C++本科B组真题解析
- 冰点下载器手机版apk_冰点文库下载器app下载
- linux下音频剪辑软件,音频剪辑软件哪个好用?5款免费开源的音频剪辑软件推荐...
- StretchDIBits显示8位图问题
- 高校大数据产品有哪些
- PHP读取txt文件自动分成指定行数
- pod 文件管理服务器,k8s中pod的状态管理
- 佩服,竟然有人把高等数学这么晦涩难懂的科目,讲解得如此通俗易懂
- 如何用Qt展示你的GIF动图
- 青龙-聚看点(稳定的毛)
- B站2020跨年晚会,被弹幕刷屏的节目是哪个,发弹幕最多的人又是谁?
热门文章
- 部署hexo后github pages页面未更新或无法打开问题
- A Beginner's Guide To Understanding Convolutional Neural Networks Part One (CNN)笔记
- 使用wwise音效引擎的好处
- 刨根问底HTTP和WebSocket协议
- 自创解决键盘最后退出的问题
- SQL Pass北京举办第六次线下活动,欢迎报名
- Docker配置国内加速器加速镜像下载的方法
- bzoj 2795	[Poi2012]A Horrible Poem hash+线性筛
- 百度编辑器ueditor字体添加
- 怎样对齐文体框和图像按钮