一、demo项目搭建
引用网络资源: https:// blog.csdn.net/forezp/ar ticle/details/81041113
具体的demo项目搭建可参见以上网络资源。"史上最简单的SpringCloud教程 "
二、基本知识点
基本上看完以下两图就足够了
![0c0199ce40e04dfb870fd229834b22d1.png](https://i-blog.csdnimg.cn/blog_migrate/51c0f312becd4f3b5a164beeb14bf1f6.jpeg)
![95a3c98ccf9cce0ce4683710aa6eab07.png](https://i-blog.csdnimg.cn/blog_migrate/80af73b8143b7bb79ee92502ea1770c5.jpeg)
三、Dashborad配置
http://ip:port/hystrix 打开以下页面
![69fbb425ee86d24a16d659e63bc2943e.png](https://i-blog.csdnimg.cn/blog_migrate/6ef54a8a1d7ac02ba674781061c26708.jpeg)
四、hystrix参数配置
以下这个博客已经对参数使用及分类说的非常详细了
引用网络资源: https:// blog.csdn.net/tongtong_ use/article/details/78611225
我本地demo的一个配置可以参考下:
#feign开启hystrix
feign.hystrix.enabled=true
#全局超时配置,单位ms,默认值1000ms
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000
#熔断触发的最小个数/10s,时间默认是10s
hystrix.command.default.circuitBreaker.requestVolumeThreshold=5
#ribbon的超时时间
ribbon.ReadTimeout=10000
ribbon.ConnectTimeout=10000
#同一实例最大重试次数,不包括首次调用。默认值为0
ribbon.MaxAutoRetries = 0
#同一个服务其他实例的最大重试次数,不包括第一次调用的实例。默认值为1
ribbon.MaxAutoRetriesNextServer = 0
#是否所有操作都允许重试。默认值为false
ribbon.OkToRetryOnAllOperations = false
五、相关问题
1、HystrixCommandKey到底是个啥?
![b25e4e312dd3161ef948305a11ff8375.png](https://i-blog.csdnimg.cn/blog_migrate/ffdd2b49965b4d902872bb939af7fe47.jpeg)
就是:类名#方法名() 就是dashboard这里显示出来的名字
![435351444942f006cf5018d7298e9e3f.png](https://i-blog.csdnimg.cn/blog_migrate/6b387baa44c7387e8b785796f6fa99f6.jpeg)
2、hystrix.command.default.circuitBreaker.requestVolumeThreshold是时间是多长的,默认是10s
3、hystrix.command.default.execution.isolation.thread. timeoutInMilliseconds设置了超时时间为什么没生效?
需要考虑到feign最终还是要经过ribbon,ribbon有个默认重试1次的设置,同时也有默认超时时间1s。考虑到这2点就能正确的设置timeoutInMilliseconds的值了。
4、hystrix与springbootadmin
springbootadmin已经有个比较有好的管理界面,1.x的springbootadmin有把dashboard集成到springbootadmin中作为admin的一个菜单(在依赖中增加spring-boot-admin-server-ui-hystrix就可以)。看官方文档好像springbootadmin 2.x已经去掉了。