java B2B2C源码电子商务平台 -SpringCloud整合Hystrix,b2b2chystrix,SpringCloud整
分享于 点击 49100 次 点评:170
java B2B2C源码电子商务平台 -SpringCloud整合Hystrix,b2b2chystrix,SpringCloud整
SpringCloud整合Hystrix
需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码:壹零叁八柒柒肆六二六
由于服务调用者有可能调用服务挂掉的提供者,服务调用方整合Hystrix
引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency>
主启动开启断路器
@SpringBootApplication@EnableEurekaClient//开启断路器@EnableCircuitBreakerpublic class SaleApp { @Bean @LoadBalanced public RestTemplate getRestTemplate() { return new RestTemplate(); } public static void main(String[] args) { new SpringApplicationBuilder(SaleApp.class).web(true).run(args); }}
服务调用service修改
@Service//对这个类采用全局默认的回退机制,回退方法不能带参数,例如:“getMemberFallback”没有参数//@DefaultProperties(defaultFallback = "getMemberFallback")public class MemberService { @Autowired private RestTemplate restTpl; //1、@HystrixCommand、@HystrixProperty这些注解不是SpringCloud注解,而是Hystrix框架提供的 //2、fallbackMethod当修饰具体方法时,fallbackMethod方法的参数和修饰方法保持一致 @HystrixCommand(fallbackMethod = "getMemberFallback", groupKey = "MemberGroup", commandKey = "MemberCommandKey", commandProperties = { //超时熔断 @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1000") }, threadPoolProperties = { @HystrixProperty(name = "coreSize", value = "2") }) public Member getMember(Integer id) { try { Thread.sleep(500); } catch (Exception e) { } Member member = restTpl.getForObject( "http://spring-hy-member/member/{id}", Member.class, id); return member; } public Member getMemberFallback(Integer id) { Member m = new Member(); m.setId(1); m.setName("error member"); return m; }}
注意: @DefaultProperties:可以配置全局回退机制,回退方法不能带参数,例如:“getMemberFallback”没有参数
@HystrixCommand、@HystrixProperty这些注解不是SpringCloud注解,而是Hystrix框架提供的
fallbackMethod当修饰具体方法时,fallbackMethod方法的参数和修饰方法保持一致
springboot微服务多用户商城系统java_代码开源_B2B电商系统_B2C电商系统
用户点评