网站开发会什么,凡客家具质量怎么样,北京专业做网站电话,学生模拟网站开发项目目录
#x1f9c2;1.熔断机制❤️❤️❤️
#x1f32d;2.修改8001服务 ❤️❤️❤️
#x1f95e;3.测试 ❤️❤️❤️
#x1f953;4. 服务监控hystrixDashboard❤️❤️❤️ #x1f32d;5.仪表盘❤️❤️❤️
#x1f9c2;6.仪表盘的使用 ❤️❤️❤️ 1.熔断机…
目录
1.熔断机制❤️❤️❤️
2.修改8001服务 ❤️❤️❤️
3.测试 ❤️❤️❤️
4. 服务监控hystrixDashboard❤️❤️❤️ 5.仪表盘❤️❤️❤️
6.仪表盘的使用 ❤️❤️❤️ 1.熔断机制❤️❤️❤️ 熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在Spring Cloud框架里,熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。熔断机制的注解是HystrixCommand。 服务的降级-进而熔断-恢复调用链路 2.修改8001服务 ❤️❤️❤️
在controller层添加新的方法 涉及到断路器的三个重要参数快照时间窗、请求总数阀值、错误百分比阀值。 1:快照时间窗:断路器确定是否打开需要统计一些请求和错误数据,而统计的时间范围就是快照时间窗,默认为最近的10秒。2:请求总数阀值:在快照时间窗内必须满足请求总数阀值才有资格熔断。默认为20意味着在10秒内如果该hystrix命令的调用次数不足20次,即使所有的请求都超时或其他原因失败,断路器都不会打开。3:错误百分比阀值当请求总数在快照时间窗内超过了阀值比如发生了30次调用如果在这30次调用中有15次发生了超时异常也就是超过50%的错误百分比在默认设定50%阀值情况下这时候就会将断路器打开。 //服务熔断HystrixCommand(fallbackMethod paymentCircuitBreaker_fallback, commandProperties {HystrixProperty(name circuitBreaker.enabled, value true),//是否开启断路器HystrixProperty(name circuitBreaker.requestVolumeThreshold,value 10),//请求次数HystrixProperty(name circuitBreaker.sleepWindowInMilliseconds,value 10000),//时间窗口期HystrixProperty(name circuitBreaker.errorThresholdPercentage,value 60),//失败率达到多少后跳闸})GetMapping(/payment/hystrix/errorId/{id})public CommonResult paymentCircuitBreaker(PathVariable(id) Integer id) {if (id 0) {throw new RuntimeException(id不能为负数);}Payment result paymentService.getById_ErrorId(id);if (result ! null) {return new CommonResult(200, 查寻成功,端口: serverPort ,线程池: Thread.currentThread().getName(), result);} else {return new CommonResult(404, 查询失败,端口: serverPort ,线程池: Thread.currentThread().getName());}}//降级方法public CommonResult paymentCircuitBreaker_fallback(PathVariable(id) Integer id) {return new CommonResult(200, id不能为负id id);} 开启和关闭的条件 1.当满足一定的阀值的时候(默认10秒内超过20个请求次数)2.当失败率达到一定的时候(默认10秒内超过50%的请求失败)3.到达以上阀值断路器将会开启4.当开启的时候所有请求都不会进行转发5.一段时间之后默认是5秒这个时候断路器是半开状态会让其中一个请求进行转发。如果成功断路器会关闭若失败继续开启。重复4和5 3.测试 ❤️❤️❤️ 当输入id为负数时刷新浏览器10次在用正确的id访问发现仍然错误过一段时间恢复 4. 服务监控hystrixDashboard❤️❤️❤️ Hystrix提供了准实时的调用监控(Hystrix Dashboard) , Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Spring Cloud也提供了Hystrix Dashboard的整合对监控内容转化成可视化界面。 5.仪表盘❤️❤️❤️
1.建工程 在父工程下创建9001.注意jdk和maven版本 2.导pom 1.springboot依赖 2.通用依赖 3.dashboard依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.example/groupIdartifactIdcloud-api-commons/artifactIdversion${project.version}/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix-dashboard/artifactId/dependency
3.改yml 只添加服务端口即可 server:port: 9001
4.主启动 EnableHystrixDashboard用于启用Hystrix Dashboard功能 SpringBootApplication
EnableHystrixDashboard
public class HystrixDashboardMain9001 {public static void main(String[] args) {SpringApplication.run(HystrixDashboardMain9001.class);}
}5.测试
访问localhost:9001/hystrix看到豪猪页面也搭建成功 6.仪表盘的使用 ❤️❤️❤️
1.加依赖
要监控的服务一定要导入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency 2.主启动类 此配置是为了服务监控而配置与服务容错本身无关springcloud升级后的坑ServletRegistrationBean因为springboot的默认路径不是/hystrix.stream,只要在自己的项目里配置上下面的servlet就可以了 Beanpublic ServletRegistrationBean getServlet() {HystrixMetricsStreamServlet streamServlet new HystrixMetricsStreamServlet();ServletRegistrationBean registrationBean new ServletRegistrationBean(streamServlet);registrationBean.setLoadOnStartup(1);registrationBean.addUrlMappings(/hystrix.stream);registrationBean.setName(HystrixMetricsstreamServlet);return registrationBean;}
如果不配置访问时会报错误 3.测试 解读