真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud之熔斷器Hystrix(一)

前言

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比防城港網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式防城港網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋防城港地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。

SpringCloud 是微服務(wù)中的翹楚,最佳的落地方案。

在微服務(wù)架構(gòu)中多層服務(wù)之間會(huì)相互調(diào)用,如果其中有一層服務(wù)故障了,可能會(huì)導(dǎo)致一層服務(wù)或者多層服務(wù)

故障,從而導(dǎo)致整個(gè)系統(tǒng)故障。這種現(xiàn)象被稱為服務(wù)雪崩效應(yīng)。

SpringCloud 中的 Hystrix 組件就可以解決此類問(wèn)題,Hystrix 負(fù)責(zé)監(jiān)控服務(wù)之間的調(diào)用情況,連續(xù)多次失敗的

情況進(jìn)行熔斷保護(hù)。保護(hù)的方法就是使用 Fallback,當(dāng)調(diào)用的服務(wù)出現(xiàn)故障時(shí),就可以使用 Fallback 方法的

返回值;Hystrix 間隔時(shí)間會(huì)再次檢查故障的服務(wù),如果故障服務(wù)恢復(fù),將繼續(xù)使用服務(wù)。

源碼

GitHub地址:https://github.com/intomylife/SpringCloud

環(huán)境

JDK 1.8.0 +

Maven 3.0 +

SpringBoot 2.0.3

SpringCloud Finchley.RELEASE

開(kāi)發(fā)工具

IntelliJ IDEA

正文

commons 工程

commons 工程 - POM 文件

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.zwc

springcloud-hystrix-commons

1.0

springcloud-hystrix-commons

公用工程

jar

UTF-8

1.8

Cairo-SR3

Finchley.RELEASE

io.spring.platform

platform-bom

${platform-bom.version}

pom

import

org.springframework.cloud

spring-cloud-dependencies

${spring-cloud-dependencies.version}

pom

import

org.springframework.boot

spring-boot-maven-plugin

配置一些共用依賴

commons 工程 - 項(xiàng)目結(jié)構(gòu)

service 工程

① 此工程下有四個(gè)模塊:一個(gè)注冊(cè)中心以及服務(wù) A、B、C

② A 提供服務(wù)并且調(diào)用服務(wù) B、B 提供服務(wù)并且調(diào)用服務(wù) C 以及 C 提供服務(wù)

registry-service(注冊(cè)中心)

registry-service - POM 文件

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.zwc

springcloud-hystrix-service

1.0

com.zwc

springcloud-hystrix-registry-service

1.0

springcloud-hystrix-registry-service

注冊(cè)中心

jar

com.zwc

springcloud-hystrix-commons

1.0

org.springframework.cloud

spring-cloud-starter-netflix-eureka-server

org.springframework.boot

spring-boot-maven-plugin

主要是加入 spring-cloud-starter-netflix-eureka-server 依賴

registry-service - application.yml 配置文件

# 端口

server:

port: 8761

# 應(yīng)用名稱

spring:

application:

name: eurka-server

eureka:

instance:

# 使用 ip 代替實(shí)例名

prefer-ip-address: true

# 實(shí)例的主機(jī)名

hostname: ${spring.cloud.client.ip-address}

# 實(shí)例的 ID 規(guī)則

instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}

client:

# 是否向注冊(cè)中心注冊(cè)自己

registerWithEureka: false

# 是否向注冊(cè)中心獲取注冊(cè)信息

fetchRegistry: false

serviceUrl:

# 注冊(cè)中心地址

defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

這里使用了默認(rèn)的 8761 端口,當(dāng)然也可以更改,不過(guò)在發(fā)現(xiàn)調(diào)用服務(wù)端的注冊(cè)中心地址端口要與它一致

registry-service - 啟動(dòng)類

package com.zwc;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication

@EnableEurekaServer

public class SpringcloudHystrixRegistryServiceApplication {

public static void main(String[] args) {

SpringApplication.run(SpringcloudHystrixRegistryServiceApplication.class, args);

}

}

在啟動(dòng)類中添加 @EnableEurekaServer 注解表示此工程是注冊(cè)中心

registry-service - 啟動(dòng)項(xiàng)目

1. 項(xiàng)目啟動(dòng)成功后訪問(wèn) http://localhost:8761/ 即可看到 eureka-server 主頁(yè)面

服務(wù)工程 A(提供者和消費(fèi)者)

服務(wù)工程 A - POM 文件

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.zwc

springcloud-hystrix-a-service

1.0

com.zwc

springcloud-hystrix-a-service-core

1.0

springcloud-hystrix-a-service-core

服務(wù)工程 - A 核心

jar

com.zwc

springcloud-hystrix-commons

1.0

com.zwc

springcloud-hystrix-a-service-api

1.0

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

org.springframework.cloud

spring-cloud-starter-openfeign

org.springframework.boot

spring-boot-maven-plugin

加入 spring-cloud-starter-netflix-eureka-client 依賴

還需要加入 Feign 的起步依賴 spring-cloud-starter-openfeign

服務(wù)工程 A - application.yml 配置文件

# 端口無(wú)錫看婦科哪里好 http://www.xasgfk.cn/

server:

port: 8090

# 應(yīng)用名稱

spring:

application:

name: hystrix-a

eureka:

instance:

# 使用 ip 代替實(shí)例名

prefer-ip-address: true

# 實(shí)例的主機(jī)名

hostname: ${spring.cloud.client.ip-address}

# 實(shí)例的 ID 規(guī)則

instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}

client:

serviceUrl:

# 注冊(cè)中心地址

defaultZone: http://${eureka.instance.hostname}:8761/eureka/

注意此處配置注冊(cè)中心地址的端口為 8761 也就是上面注冊(cè)中心工程配置的端口

spring.application.name:應(yīng)用名稱,被消費(fèi)者調(diào)用時(shí)需要用到,它在消費(fèi)的同時(shí)也可以被消費(fèi)

這里除注冊(cè)中心工程以外的三個(gè)工程都與此配置相似,不一樣的地方就是端口和應(yīng)用名稱,不再贅述

服務(wù)工程 A - application.properties(注意)

# 開(kāi)啟斷路器

feign.hystrix.enabled=true

斷路器要主動(dòng)開(kāi)啟,服務(wù)調(diào)用失敗時(shí)才會(huì)熔斷

此處有一個(gè)坑,把此配置寫(xiě)到 application.yml 中熔斷不會(huì)生效

A 和 B 工程都有此配置,此次搭建中 C 工程只提供服務(wù),沒(méi)有消費(fèi)服務(wù)。所以 C 工程不用該配置

application.properties 和 bootstrap.yml 二選一就行

服務(wù)工程 A - bootstrap.yml(注意)

feign:

hystrix:


標(biāo)題名稱:SpringCloud之熔斷器Hystrix(一)
文章分享:http://weahome.cn/article/jecooe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部