Feign é uma fonte aberta leve cliente Netflix, Resto http://github.com/OpenFeign/feign , usando Feign pode ser muito conveniente, simples implementação Http cliente usando Feign só precisa definir uma interface, e depois adicionar na interface anotações pode ser.
Primavera Cloud para Feign é encapsulado, finge padrão integrado fita carga do cliente implementos equilibrar chamada.
Atualmente, mais acostumados interface de programação orientada, como a interface de serviço, interface de Dao, que é a especificação padrão a seguir.
Entre micro-serviço de chamada é de duas maneiras:
- Pelo nome do serviço micro, endereço de serviço para obter chamada
- + Notes por meio da interface, o acesso ao serviço de chamada de -Feign (para se adaptar à indústria e outros programadores apresentadas, ou seguir interface de programação orientada) semelhante ao utilizado anteriormente @Mapper notas sobre uma interface Mapper consciência mesa, enquanto usando Feign durante o tempo que a interface comentário @FeignClient marcada.
Caso:
1. Add caso módulo Feign na base do original
New studentservice-nuvem-07-consumer- produto de fingir, referência studentservice-nuvem-04-consumer- produto-80
1. Add confiar pom.xml
2. Crie uma classe mestre de inicialização StudentConsumer_80_feign, e adicionar anotações @EnableFeignClients
3. Interfaces New ProductClientService, uso @FeignClient ( "nome do serviço") notas logotipo, para especificar quais as chamadas de serviço, tais como: chamada no código Microservice-produto e serviços / estudante / list, / estudante / obter / {sid}, / estudante / adicionar as interfaces, como segue:
4. teste
-
Comece dois clusters eureka
-
Start 2 fornecedor de produtos 8001/8002
-
Iniciar ProductConsumer_80_Feign
-
pedidos sucessivos de dados diferentes
encontrados lá como recursos de configuração de balanceamento de carga
obras 5.Feign:
método de interface Feign chamando serviço REST (antes de uma fita + RestTemplate), pedido de Eureka ao servidor (http: // Microservice-produto / estudante / list), encontrar a interface de serviço diretamente através finge, porque a integração a tecnologia da fita, finge a própria configuração de balanceamento de carga.
- Adicionar @EnableFeignClients inicialização notas de aula, Primavera fará a varredura de interface @FeignClient anotação marcada, e esta interface gera um objeto de proxy
- @FeignClient ( "Name Service"), que especifica o nome do produto e serviços, produto Feign terá uma lista de serviços de registro Eureka, e chamadas de serviço pelo algoritmo de balanceamento de carga.
- Use anotações em @RequestMapping método de interface (value = "/ estudante / list ", method = RequestMethod.GET), a url chamada especificado, chamada remota Feign será na url acordo.
6.Feign Nota
SpringCloud fingir sido reforçada comentários SpringMVC compatíveis, precisamos prestar atenção ao usar comentários SpringMVC: - método de interface @FeignClient deve ser adicionado a um tipo básico parâmetro @PathVariable ( "XXX") ou parâmetro @RequestParam ( "XXX")
- Quando o valor do método de interface de retorno @FeignClient é um complexo de objecto, a presença ou ausência deste parâmetro construtor deve tipo.