国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - SpringCloud中的斷路器(Hystrix)和斷路器監(jiān)控(Dashboard)

SpringCloud中的斷路器(Hystrix)和斷路器監(jiān)控(Dashboard)

2019-07-07 17:07虛無(wú)境 Java教程

本篇主要介紹的是SpringCloud中的斷路器(Hystrix)和斷路器指標(biāo)看板(Dashboard)的相關(guān)使用知識(shí),需要的朋友可以參考下

前言

本篇主要介紹的是SpringCloud中的斷路器(Hystrix)和斷路器指標(biāo)看板(Dashboard)的相關(guān)使用知識(shí)。

SpringCloud Hystrix

Hystrix 介紹

Netflix創(chuàng)建了一個(gè)名為Hystrix的庫(kù),它實(shí)現(xiàn)了斷路器模式。主要的目的是為了解決服務(wù)雪崩效應(yīng)的一個(gè)組件,是保護(hù)服務(wù)高可用的最后一道防線。

開(kāi)發(fā)準(zhǔn)備

開(kāi)發(fā)環(huán)境

•JDK:1.8
•SpringBoot:2.1.1.RELEASE
•SpringCloud:Finchley

注:不一定非要用上述的版本,可以根據(jù)情況進(jìn)行相應(yīng)的調(diào)整。需要注意的是SpringBoot2.x以后,jdk的版本必須是1.8以上!

確認(rèn)了開(kāi)發(fā)環(huán)境之后,我們?cè)賮?lái)添加相關(guān)的pom依賴。

<dependencies>
 <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-openfeign</artifactId>
 </dependency>
 <dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
 </dependency>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
</dependencies>

注: 實(shí)際上這里是不需要Hystrix依賴的,F(xiàn)egin已經(jīng)添加了Hystrix依賴。

SpringCloud Hystrix 示例

由于Hystrix機(jī)制是在微服務(wù)項(xiàng)目上進(jìn)行的,并且Fegin中包含了該機(jī)制。所以這里我們可以把之前的springcloud-feign的項(xiàng)目進(jìn)行簡(jiǎn)單的改造就行了。

服務(wù)端

首先是服務(wù)端這塊,為了進(jìn)行區(qū)分,創(chuàng)建一個(gè)springcloud-hystrix-eureka的項(xiàng)目,用于做注冊(cè)中心。 代碼和配置和之前的基本一樣。

application.properties配置信息:

配置信息:

spring.application.name=springcloud-hystrix-eureka-server
server.port=8002
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:8002/eureka/

配置說(shuō)明:

•spring.application.name: 這個(gè)是指定服務(wù)名稱。
•server.port:服務(wù)指定的端口。
•eureka.client.register-with-eureka:表示是否將自己注冊(cè)到Eureka Server,默認(rèn)是true。
•eureka.client.fetch-registry:表示是否從Eureka Server獲取注冊(cè)信息,默認(rèn)為true。
•eureka.client.serviceUrl.defaultZone: 這個(gè)是設(shè)置與Eureka Server交互的地址,客戶端的查詢服務(wù)和注冊(cè)服務(wù)都需要依賴這個(gè)地址。

服務(wù)端這邊只需要在SpringBoot啟動(dòng)類添加@EnableEurekaServer注解就可以了,該注解表示此服務(wù)是一個(gè)服務(wù)注冊(cè)中心服務(wù)。

代碼示例:

 @EnableEurekaServer
 @SpringBootApplication
 public class HystrixEurekaApplication {
  public static void main(String[] args) {
   SpringApplication.run(HystrixEurekaApplication.class, args);
   System.out.println("hystrix注冊(cè)中心服務(wù)啟動(dòng)...");
  }
 }

客戶端

這里我們把之前的springcloud-fegin-consumer項(xiàng)目稍微改造下,項(xiàng)目名改為springcloud-hystrix-consumer。然后在application.properties配置文件新增如下配置, feign.hystrix.enabled配置表示是否啟用熔斷機(jī)制。

    feign.hystrix.enabled=true

增加了配置之后,我們?cè)趤?lái)把之前的fegin進(jìn)行定義轉(zhuǎn)發(fā)服務(wù)的@FeignClient注解進(jìn)行添加一個(gè)回調(diào)方法fallback。代碼改造后的實(shí)現(xiàn)如下:

 @FeignClient(name= "springcloud-hystrix-consumer2",fallback = HelloRemoteHystrix.class)
 public interface HelloRemote {
  @RequestMapping(value = "/hello")
  public String hello(@RequestParam(value = "name") String name);
 } 

最后新增一個(gè)回調(diào)類,用于處理斷路的情況。這里我們就簡(jiǎn)單的處理下,返回錯(cuò)誤信息即可!

代碼示例:

 @Component
 public class HelloRemoteHystrix implements HelloRemote{
 
  @Override
  public String hello(@RequestParam(value = "name") String name) {
   return name+", 請(qǐng)求另一個(gè)服務(wù)失敗!";
  }
 }

其余的代碼就不展示了,和之前的springcloud-fegin-consumer項(xiàng)目中的一致,然后在把之前的springcloud-feign-consumer2進(jìn)行簡(jiǎn)單的改造下,項(xiàng)目名稱改為springcloud-hystrix-consumer2。然后更改下配置的端口。

功能測(cè)試

完成如上的工程開(kāi)發(fā)之后,我們依次啟動(dòng)服務(wù)端和客戶端的springcloud-hystrix-eureka、springcloud-hystrix-consumer和springcloud-hystrix-consumer2這三個(gè)程序,然后在瀏覽器界面輸入:http://localhost:8002/,即可查看注冊(cè)中心的信息。

首先在瀏覽器輸入:

http://localhost:9004/hello/pancm

控制臺(tái)打印:

接受到請(qǐng)求參數(shù):pancm,進(jìn)行轉(zhuǎn)發(fā)到其他服務(wù)

瀏覽器返回:

pancm,Hello World

然后再輸入:

http://localhost:9005/hello?name=pancm

瀏覽器返回:

pancm,Hello World

說(shuō)明程序運(yùn)行正常,fegin的調(diào)用也ok。這時(shí)我們?cè)谶M(jìn)行斷路測(cè)試。

 停止springcloud-hystrix-consumer2這個(gè)服務(wù),然后在到瀏覽器輸入:http://localhost:9004/hello/pancm 進(jìn)行查看信息。

控制臺(tái)打印:

接受到請(qǐng)求參數(shù):pancm,進(jìn)行轉(zhuǎn)發(fā)到其他服務(wù)

瀏覽器返回:

pancm, 請(qǐng)求另一個(gè)服務(wù)失敗!

出現(xiàn)以上結(jié)果說(shuō)明斷路器的功能已經(jīng)實(shí)現(xiàn)了。

示例圖:

SpringCloud中的斷路器(Hystrix)和斷路器監(jiān)控(Dashboard)

SpringCloud Hystrix-Dashboard

Hystrix-Dashboard 介紹

Hystrix-dashboard是一款針對(duì)Hystrix進(jìn)行實(shí)時(shí)監(jiān)控的工具,通過(guò)Hystrix Dashboard我們可以在直觀地看到各Hystrix Command的請(qǐng)求響應(yīng)時(shí)間, 請(qǐng)求成功率等數(shù)據(jù)。

開(kāi)發(fā)準(zhǔn)備

開(kāi)發(fā)環(huán)境

•JDK:1.8
•SpringBoot:2.1.1.RELEASE
•SpringCloud:Finchley

注:不一定非要用上述的版本,可以根據(jù)情況進(jìn)行相應(yīng)的調(diào)整。需要注意的是SpringBoot2.x以后,jdk的版本必須是1.8以上!

確認(rèn)了開(kāi)發(fā)環(huán)境之后,我們?cè)賮?lái)添加相關(guān)的pom依賴。

<dependencies>
 <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-openfeign</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>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
 </dependency>
 
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
</dependencies>

注: spring-boot-starter-actuator這個(gè)必須需要要,該jar可以得到SpringBoot項(xiàng)目的各種信息,關(guān)于該jar包的使用,可以在springboot-actuator這個(gè)項(xiàng)目中進(jìn)行查看。

SpringCloud Hystrix-Dashboard 示例

這里我們把上面的springcloud-hystrix-consumer項(xiàng)目進(jìn)行改造下,項(xiàng)目名稱改為springcloud-hystrix-dashboard-consumer。然后在到啟動(dòng)類新增如下配置。

•EnableCircuitBreaker:表示啟用hystrix功能。
•EnableHystrixDashboard:啟用 HystrixDashboard 斷路器看板 相關(guān)配置。

完整的啟動(dòng)類配置如下:

 @SpringBootApplication
 @EnableDiscoveryClient
 @EnableHystrixDashboard
 @EnableCircuitBreaker
 @EnableFeignClients
 public class HystrixDashboardApplication {
  public static void main(String[] args) {
   SpringApplication.run(HystrixDashboardApplication.class, args);
    System.out.println("hystrix dashboard 服務(wù)啟動(dòng)...");
  }
 }

然后在到application.properties配置文件中新增如下配置:

    management.endpoints.web.exposure.include=hystrix.stream
    management.endpoints.web.base-path=/

該配置的意思是指定hystrixDashboard的訪問(wèn)路徑,SpringBoot2.x以上必須指定,不然是無(wú)法進(jìn)行訪問(wèn)的,訪問(wèn)會(huì)出現(xiàn) Unable to connect to Command Metric Stream 錯(cuò)誤。

如果不想使用配置的話,也可以使用代碼進(jìn)行實(shí)現(xiàn)。

 實(shí)現(xiàn)的代碼如下:

@Component
 public class HystrixServlet extends Servlet{
  @Bean
  public ServletRegistrationBean getServlet() {
   HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
   ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
   registrationBean.setLoadOnStartup(1);
   registrationBean.addUrlMappings("/hystrix.stream");
   registrationBean.setName("HystrixMetricsStreamServlet");
   return registrationBean;
  } 
 }

功能測(cè)試

完成如上的工程改造之后,我們啟動(dòng)該程序。

 然后在瀏覽器輸入:

http://localhost:9010/hystrix

會(huì)出現(xiàn)以下的界面:

SpringCloud中的斷路器(Hystrix)和斷路器監(jiān)控(Dashboard)

可以通過(guò)該界面監(jiān)控使用了hystrix dashboard的項(xiàng)目。這里我們依照提示在中間的輸入框輸入如下的地址:

http://localhost:9010/hystrix.stream

會(huì)出現(xiàn)以下的界面:

SpringCloud中的斷路器(Hystrix)和斷路器監(jiān)控(Dashboard)

該界面就是Hystrix Dashboard監(jiān)控的界面了,通過(guò)這個(gè)界面我們可以很詳細(xì)的看到程序的信息。關(guān)于這些信息中說(shuō)明可以用網(wǎng)上找到的一張來(lái)加以說(shuō)明。

SpringCloud中的斷路器(Hystrix)和斷路器監(jiān)控(Dashboard)

注: 如果界面一直提示loading,那么是因?yàn)闆](méi)有進(jìn)行請(qǐng)求訪問(wèn),只需在到瀏覽器上輸入:http://localhost:9010/hello/pancm,然后刷新該界面就可以進(jìn)行查看了。

項(xiàng)目地址

基于SpringBoot2.x、SpringCloud的Finchley版本開(kāi)發(fā)的地址:https://github.com/xuwujing/springcloud-study

基于SpringBoot1.x、SpringCloud 的Dalston版本開(kāi)發(fā)的地址: https://github.com/xuwujing/springcloud-study-old

總結(jié)

以上所述是小編給大家介紹的SpringCloud中的斷路器(Hystrix)和斷路器監(jiān)控(Dashboard),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品免费看 | 91精品国产乱码久久久久久久久 | 国产精品久久天天躁 | 香蕉成人啪国产精品视频综合网 | 日韩国产欧美视频 | 国产日韩一区二区三区 | 国产片av在线永久免费观看 | 天天色成人综合网 | 欧美日本韩国一区二区三区 | 91视频在线免费观看 | 亚洲香蕉视频 | 久久久精品观看 | 自拍偷拍第一页 | 在线视频一区二区 | 国产精品视频一二三区 | 亚洲 中文 欧美 日韩 在线观看 | 樱桃小丸子在线观看 | 91精品国产综合久久久久久 | 网友自拍第一页 | 最新免费av网站 | 在线成人av | www.天天草 | 欧美成人一区二区 | 午夜精品久久久久久久久久久久 | 激情五月婷婷 | 狠狠爱网站 | 亚洲一区中文字幕在线观看 | 欧美自拍一区 | 国产精品美女久久久网av | 日本在线观看一区二区 | 看一级黄色大片 | 久久成人综合 | 在线视频一区二区 | 黄色av网站在线免费观看 | 日韩中文字幕在线免费观看 | 精品在线一区二区三区 | 青娱乐国产精品视频 | 亚洲一区欧美 | 高清av一区 | 久久艹综合 | 91精品免费 |