二 SpringCloud - Eureka注冊中心,feign遠程調用,hystrix降級和熔斷

1、項目模塊介紹

二 SpringCloud - Eureka注冊中心,feign遠程調用,hystrix降級和熔斷

文章插圖
2、 父項目主要依賴 spring-cloud 的 版本控制
<properties><!--springCloud 版本--><scd.version>Dalston.SR4</scd.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${scd.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>3、 eureka 模塊3.1 主要依賴<!--eureka 注冊中心 依賴--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency>3.2 配置信息# 端口server:port: 8096# 服務名spring:application:name: edocmall-eureka# eureka 服務注冊與發現 配置eureka:client:#Eureka 監控頁面service-url:defaultZone: http://127.0.0.1:${server.port}/eurekaregister-with-eureka: false # 是否注冊自己的服務到注冊中心,默認為trueon-demand-update-status-change: false # 是否主動拉取其他注冊的服務信息,默認也是true3.3 主啟動類上的注解@EnableEurekaServer //eureka服務端啟動,可以就接受別人來注冊3.4 測試 訪問啟動項目,訪問 http://localhost:8096
二 SpringCloud - Eureka注冊中心,feign遠程調用,hystrix降級和熔斷

文章插圖
4、server 服務提供模塊4.1 主要依賴<!--eureka 客戶端依賴--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency>4.2 配置信息# 端口server:port: 8097# 服務名配置,eureka注冊信息 , 服務調用基于服務名 , 必須增加spring:application:name: edocmall-server#數據源配置datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/kh96_springboot_edocbd?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMTusername: rootpassword: root# mybatis-plus 配置mybatis-plus:configuration:map-underscore-to-camel-case: true# eureka 注冊中心的配置eureka:client:service-url:defaultZone: http://127.0.0.1:8096/eureka# 注冊中心的地址# 關閉自我保護機制,保證不可用的服務及時剔除server:enable-self-preservation: false4.3 代碼介紹
二 SpringCloud - Eureka注冊中心,feign遠程調用,hystrix降級和熔斷

文章插圖
4.4 主啟動類上的注解@MapperScan("com.kgc.scd.mapper")@EnableEurekaClient // 開啟 eureka 服務注冊,將此服務注冊到 eureka中4.5 請求測試服務提供端的請求最好先單獨測試一下,成功后再進行遠程調用;
二 SpringCloud - Eureka注冊中心,feign遠程調用,hystrix降級和熔斷

文章插圖
5、 web 服務消費模塊5.1 使用restTemplate 調用5.1.1主啟動類向容器中放入 restTemplate@SpringBootApplicationpublic class Edocmall96WebApplication {public static void main(String[] args) {SpringApplication.run(Edocmall96WebApplication.class, args);}//往容器中添加 restTemplate@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}}5.1.2請求中直接調用具體url下的請求@RestControllerpublic class WebEntryController {@Autowiredprivate RestTemplate restTemplate;// 根據文檔編號,獲取文檔詳情@GetMapping("/entryById")public RequestResult<EdocEntryVO> entryDetail(Integer id){log.info("------ 根據文檔編號:{},獲取文檔詳情 ------",id);//模擬發送http請求請求server端,獲取文檔詳情//弊端:消費端,必須在程序內,記錄提供者的ip地址,如果地址出現變更,還需要計時更新,如果服務者有多個及其,無法實現負載均衡EdocEntryVO edocEntryVO = restTemplate.getForObject("http://127.0.0.1:8097/entry?id="+id,EdocEntryVO.class);return ResultBuildUtil.success(edocEntryVO);}}5.1.3 請求測試
二 SpringCloud - Eureka注冊中心,feign遠程調用,hystrix降級和熔斷

文章插圖
5.2 使用 feign 遠程調用5.2.1 主要依賴<!--eureka 客戶端依賴--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><!--feign遠程調用依賴--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId><version>1.3.5.RELEASE</version></dependency>5.2.2 配置信息# 端口server:port: 8098spring:application:name: edocmall-web# 服務名# eureka 注冊中心的配置eureka:client:service-url:defaultZone: http://127.0.0.1:8096/eureka# 關閉自我保護機制,保證不可用的服務及時剔除server:enable-self-preservation: false# 開啟客戶端服務降級,默認是關閉的惡 , 需要打開feign:hystrix:enabled: true

推薦閱讀