目录
- 使用vi provider.yml编辑配置文件

- 保存配置文件
- 使用"git status"查看我们工程中哪些文件进行了修改
- 使用"git add provider-test.yml"加入本地仓库的提交列表
- 使用"git commit -m '提交说明'"将要提交的文件提交到本地仓库
- 使用"git push origin master"已经提交到本地仓库的文件上传至远程仓库。
-
在启动文件中加上"@EnableHystrixDashboard 、@EnableCircuitBreaker"注解,然后启动工程。
-
打开浏览器访问http://localhost:7001/hystrix,可以看到如下图内容,说明服务调用的监控就搭建完成了。

-
在浏览器的地址栏中输入http://localhost:8001/hystrix.stream是无法访问的,因为我们没有将“/hystrix.stream”这目录加入工程的访问目录。
-
修改启动文件如下:
2.3 修改启动文件
2.4 监控服务
我在网络上看了一下,很多教程让你在输入框中输入http://localhost:8001/hystrix.stream然后点击下面的"monitor stream" 按钮基本上就完了,但是在我的环境里面是不行的,可能是spring cloud和spring boot的版本不一样。下面用步骤讲一下怎么做监控:
@EnableHystrixDashboard @EnableCircuitBreaker @EnableDiscoveryClient @SpringBootApplication public class MircoServiceProviderApplication { public static void main(String[] args) { SpringApplication.run(MircoServiceProviderApplication.class, args); } @Bean public ServletRegistrationBean<HystrixMetricsStreamServlet> getServlet() { HystrixMetricsStreamServlet hystrixMetricsStreamServlet = new HystrixMetricsStreamServlet() ; ServletRegistrationBean<HystrixMetricsStreamServlet> servletRegistrationBean = new ServletRegistrationBean<HystrixMetricsStreamServlet>() ; servletRegistrationBean.setServlet(hystrixMetricsStreamServlet); servletRegistrationBean.setLoadOnStartup(10); servletRegistrationBean.addUrlMappings("/hystrix.stream"); servletRegistrationBean.setName("HystrixMetricsStreamServlet"); return servletRegistrationBean ; } } -
重复第一个步骤,你会看到有一个ping一直在ping,其实就是在ping我们工程中hystrix默认给我们埋下的监控点,这也是为什么我们要用spring全家桶的原因之一,在其他的框架中像这样的事情,是需要我们自己去设计,开发的。而spring直接帮我们集成进来了,配置、配置就可以用了。效果如下:

-
我们再次访问http://localhost:8001/hystrix,监控http://localhost:8001/hystrix.stream这个地址,你会发现如图下界面,但是很不幸的告诉你,我们仍然看不到效果,为什么?卖个关子,请接着往下看。

-
请使用同样的方法将"mrico-service-consumer"工程改造,改造完后,我们访问http://localhost:8002/hystrix,输入http://localhost:8002/hystrix.stream这个地址进行监控,你会发现奇迹,但是一样看不到东西,这时候我们访问一下消费服务的接口http://localhost:8002/consumerHelloWorld?name=rose,然后再返回看一下监控页面,如果页面没有自动刷新,就手动刷一下页面,你就会看到效果了。这里面的英文是什么意思,请自行搜索,效果如下:

2.5 小结
经过上面的步骤,我们大致明白了一些问题:
- 服务的整个监控是由spring cloud帮我们集成的,而且不需要我们写任何代码。
- 对于服务监控,监控的是调用方,而不是服务提供方,我个人认为这也是一种思想,不用过度设计,比如你服务方和消费方都去监控。我相信在spring cloud没有出来之前应该有人这么做,但我尝试这种思想后过后觉得意义并不大。那么刚才我们讲的监控埋点,也是埋在了消费方的接口。对此有兴趣的小伙伴如果想知道更详细的内容,可以去百度一下。
- 为什么我第二个视频
其实如果你在spring全家桶里面做集成,做这个熔断非常简单,接下来我们写MyFristConsumerHystrix这个类,如下:@Component public class MyFristConsumerHystrix implements MyFristConsumer{ @Override public String helloWorld(String name) { return "server is closed , your send failed"; } }3.2 测试服务熔断
- 关掉服务提供工程
- 访问调用接口,你会看如下结果:

-
查看监控,你就会发现图标变红了。

3.3 小结
- 关于服务熔断,在真实使用中也不是说所有的服务都需要熔断,这个要根据实际情况来。
-
服务熔断的目的是为了避免微服务环境下,应用因为网络抖动或者服务异常的解决方案。如果应用长时间的服务异常,并且服务与服务之间依赖过多,就会引起“级联”效果,造成服务雪崩。
4. 利用turbine监控所有应用
4.1 创建工程
创建一个名称"mirco-service-turbine-hystrix-dashboard"的工程,在pom文件中要有以下依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency
