1、開(kāi)啟多個(gè)Eureka Client服務(wù)實(shí)例
2、創(chuàng)建Ribbon項(xiàng)目:
①、pom.xml文件中添加ribbon依賴(lài)
②、啟動(dòng)類(lèi)上添加@EnableDiscoveryClient注解使應(yīng)用注冊(cè)為Eureka Client以便獲得服務(wù)發(fā)現(xiàn)的能力
③、在啟動(dòng)類(lèi)中創(chuàng)建RestTemplate實(shí)例(Spring Bean)@Bean,并通過(guò)@LoadBalanced注解開(kāi)啟客戶(hù)端負(fù)載均衡
④、創(chuàng)建ConsumerController類(lèi)實(shí)現(xiàn)/ribbon-consumer接口
⑤、通過(guò)RestTemplate實(shí)現(xiàn)對(duì)Eureka Client服務(wù)實(shí)例的/hello接口進(jìn)行調(diào)用
⑥、在application.properties文件中配置Eureka Server服務(wù)注冊(cè)中心的位置、端口號(hào)以及服務(wù)名稱(chēng)
3、配置:
①、spring.cloud.loadbalancer.retry.enabled = true開(kāi)啟重試機(jī)制
②、hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = +毫秒數(shù)(斷路器超時(shí)時(shí)間,要超過(guò)Ribbon時(shí)間,否則不會(huì)觸發(fā)重試
③、serverName.ribbon.ConnectTimeout = +請(qǐng)求鏈接的超時(shí)時(shí)間
④、serverName.ribbon.ReadTimeout = +請(qǐng)求處理的超時(shí)時(shí)間
⑤、serverName.ribbon.OkToRetryOnAllOperations = true/false是否對(duì)所有操作請(qǐng)求都進(jìn)行重試
⑥、serverName.ribbon.MaxAutoRetriesNextServer = +切換實(shí)例的重試次數(shù)
⑦、serverName.ribbon.MaxAutoReties = +對(duì)當(dāng)前實(shí)例的重試次數(shù)