2019独角兽企业重金招聘Python工程师标准>>>

简介

上一节我们讨论feign的配置,这节我们讨论一下,feign+hystrix调用生产者时,进行容错处理

一、创建模块(microservice-consumer-movie-feign-with-hystrix)

二、pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>microservice-spring-cloud</artifactId><groupId>com.jacky</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>microservice-consumer-movie-feign-with-hystrix</artifactId><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix</artifactId></dependency></dependencies><build><plugins><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><executions><!--设置在执行maven 的install时构建镜像--><execution><id>build-image</id><phase>install</phase><goals><goal>build</goal></goals></execution></executions><configuration><!--安装了docker的主机,并且打开了api remote接口设置--><dockerHost>http://192.168.6.130:5678</dockerHost><pushImage>true</pushImage><!--设置上传镜像到私有仓库,需要docker设置指定私有仓库地址--><!--镜像名称--><imageName>${docker.repostory}/${docker.image.prefix}/${project.artifactId}:${project.version}</imageName><!--镜像的基础版本--><baseImage>java:openjdk-8-jdk-alpine</baseImage><!--镜像启动参数--><entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin></plugins></build>
</project>

三、配置文件application.yml

spring:application:name: microservice-consumer-movie-feign-with-hystrix
server:port: 7901
eureka:client:healthcheck:enabled: trueserviceUrl:defaultZone: http://jacky:admin@peer1:8761/eureka/,http://jacky:admin@peer2:8762/eureka/,http://jacky:admin@peer3:8763/eureka/instance:prefer-ip-address: trueinstance-id: ${spring.application.name}:${spring.cloud.client.ipAddress}:${spring.application.instance_id:${server.port}}

四、实体类User.java

package com.jacky.cloud.entity;import java.math.BigDecimal;public class User {private Long id;private String username;private String name;private Short age;private BigDecimal balance;public Long getId() {return this.id;}public void setId(Long id) {this.id = id;}public String getUsername() {return this.username;}public void setUsername(String username) {this.username = username;}public String getName() {return this.name;}public void setName(String name) {this.name = name;}public Short getAge() {return this.age;}public void setAge(Short age) {this.age = age;}public BigDecimal getBalance() {return this.balance;}public void setBalance(BigDecimal balance) {this.balance = balance;}}

五、生产者发生错误时使用的类(HystrixClientFallback.java)

package com.jacky.cloud.feign;import org.springframework.stereotype.Component;import com.jacky.cloud.entity.User;@Component
public class HystrixClientFallback implements UserFeignClient {@Overridepublic User findById(Long id) {User user = new User();user.setId(0L);return user;}
}

六、feign客户端UserFeignClient.java

package com.jacky.cloud.feign;import com.jacky.cloud.entity.User;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;@FeignClient(name = "microservice-provider-user", fallback = HystrixClientFallback.class)
public interface UserFeignClient {@RequestMapping(value = "/simple/{id}", method = RequestMethod.GET)public User findById(@PathVariable("id") Long id);
}

七、MovieController.java

package com.jacky.cloud.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;import com.jacky.cloud.entity.User;
import com.jacky.cloud.feign.UserFeignClient;@RestController
public class MovieController {@Autowiredprivate UserFeignClient userFeignClient;@GetMapping("/movie/{id}")public User findById(@PathVariable Long id) {return this.userFeignClient.findById(id);}
}

八、启动类

package com.jacky.cloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
@EnableCircuitBreaker
public class ConsumerMovieFeignApplication {public static void main(String[] args) {SpringApplication.run(ConsumerMovieFeignApplication.class, args);}
}

Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六

转载于:https://my.oschina.net/u/4045192/blog/3005259

Java B2B2C o2o多用户商城 springcloud架构-docker-feign-hystrix(六)相关推荐

  1. (四)Java B2B2C o2o多用户商城 springcloud架构-断路器(Hystrix)

    2019独角兽企业重金招聘Python工程师标准>>> 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestT ...

  2. (十)Java B2B2C o2o多用户商城 springcloud架构- SSO单点登录之OAuth2.0登录认证(1)

    2019独角兽企业重金招聘Python工程师标准>>> 之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAu ...

  3. Java B2B2C o2o多用户商城 springcloud架构 (六)分布式配置中心(Spring Cloud Config)

    一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...

  4. (十四)Java springcloud B2B2C o2o多用户商城 springcloud架构- Spring Cloud构建分布式电子商务平台...

    通过Spring Cloud构建PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台,之前我们讲了很多关于Spring Cloud的概念文章,从本 ...

  5. Java springcloud B2B2C o2o多用户商城 springcloud架构

    Spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.用java实施的电子商务平台太少了,使用spring cloud技术构建的b2b2c电子商务平台更少,大型企 ...

  6. Java B2B2C o2o多用户商城 springcloud架-企业云架构common-service代码结构分析

    2019独角兽企业重金招聘Python工程师标准>>> 当前的分布式微服务云架构平台使用Maven构建,所以common-service的通用服务按照maven构建独立的系统服务,结 ...

  7. (十五)Java springcloud B2B2C o2o多用户商城 springcloud架构-commonservice-sso服务搭建(一)...

    2019独角兽企业重金招聘Python工程师标准>>> 前面几篇我们已经介绍了Spring Cloud和oauth2的知识点,今天我们要利用Spring Cloud和oauth2进行 ...

  8. Java springcloud B2B2C o2o多用户商城 springcloud架构 (十七)上传文件

    2019独角兽企业重金招聘Python工程师标准>>> 这篇文章主要介绍,如何在springboot工程作为服务器,去接收通过http 上传的multi-file的文件. 构建工程 ...

  9. Java springcloud B2B2C o2o多用户商城 springcloud架构 (二十二)创建含有多module的springboot工程...

    这篇文章主要介绍如何在springboot中如何创建含有多个module的工程,栗子中含有两个 module,一个作为libarary. 工程,另外一个是主工程,调用libary .其中libary ...

最新文章

  1. map,filter,reduce函数总结
  2. 【操作系统】虚拟化CPU、Memory,共享文件
  3. asp.net 取windows的所有进程
  4. 最新kali之hping3
  5. 像中文的罗马音字体复制_罗马音字体复制大全
  6. Ubuntu下的“千千静听”-Audacious
  7. vim生成连续数字列
  8. 是你需要的前端编码风格吗?
  9. 解决mysql主从 The slave IO thread stops because the master has @@GLOBAL.GTID_MODE OFF and this server
  10. 经典计算机书籍-自制系列
  11. linux 7 开启远程桌面,CentOS 7 安装使用 VNC 远程桌面
  12. 哔哩哔哩笔试 01串求最长1子串的长度
  13. 【大数据开发】SparkSQL——Spark对接Hive、Row类、SparkSQL函数、UDF函数(用户自定义函数)、UDAF函数、性能调优、SparkSQL解决数据倾斜
  14. 选择计算机部件的原则是什么,选择工业机器人视觉系统必须遵守的基本原则
  15. arcgis把jpg转成栅格图像_土地利用JPG数据转栅格
  16. 如何用MATLAB进行电路仿真
  17. 云计算虚拟化技术与应用
  18. 20亿行21.3G的文本数据打乱操作只需要2.2G的内存执行19分钟
  19. HTML5幼儿园教育机构网站模板
  20. 大多数人都是如何挥霍掉自己的天赋?

热门文章

  1. ffplay.exe操作方式
  2. Java基础之路--引用数据类型之数组
  3. NSAttributedString
  4. Python学习笔记_文件读写,目录遍历类封装
  5. 两周内股指见底概率大
  6. Linux下内存buffer和cache的区别
  7. 解决了MovieClip缩略图问题
  8. 增加javascript的 trim函数
  9. MFC初探 —— 设置软件开机自启
  10. 增值税发票的种类_以及税率---财务知识工作笔记001