SpringCloud---SpringCloud Feign(一)

Feign簡述:

         消費者可以通過SpringCloud微服務的Feign組件技術去調用Eureka中的微服務實例,實現傳統的面向接口編程。

創建消費者module:

        pom.xml加入web座標  Eureka客戶端座標  Feign座標

<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.cloud</groupId>
  <artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

         application.properties配置Eureka地址和微服務實例應用名稱

server.port=8081

#此module不進行註冊
eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

#自定義配置
#要消費的微服務實例的應用名稱
provided_url=SERVICE

         Service層,使用Feign調用微服務實例

/**
 * DESC :  通過Fegin調用微服務實例,實現傳統的面向接口編程
 * @author Lonely
 *
 */
@FeignClient(value = "${provided_url}")  //Eureka註冊中心的微服務實例應用名稱
public interface TestService {

	//對應微服務實例中的接口路徑
	@RequestMapping(value="/testcontroller.do/{id}/{name}",method=RequestMethod.GET)
	public String testController(@PathVariable("id") int id,@PathVariable("name") String name);

}

         Controller層調用Service層

@Controller
public class TestController {
	
	
	@Autowired
	private TestService testService;     //調用Service層
	
	@RequestMapping(value="/testConsume.do/{id}/{name}",method=RequestMethod.GET)
	@ResponseBody
	public String test(@PathVariable("id") int id,@PathVariable("name") String name) {
		return testService.testController(id, name);
	}
	
}

        啓動類,添加Feign掃描註解 Eureka客戶端註解 

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = "online.liema.service") //掃描使用 @FeignClient 註解的Service層
public class FeignApp {
	public static void main(String[] args) {
		SpringApplication.run(FeignApp.class, args);
	}
}

 

先依次啓動三個Eureka,再依次啓動微服務實例,最後啓動Feign module,訪問Controller。Feign會進行負載均衡,默認使用的輪詢算法。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章