I. Introdução
OpenFeign é uma ferramenta de chamada de cliente Http declarativa da web que fornece interfaces e anotações para chamada.
A primeira geração do SpringCloud adota feign e a segunda geração adota openfeign
Função de cliente Openfeign: É uma ferramenta de chamada remota de cliente Http declarativa da web, e a camada inferior é para encapsular a tecnologia HttpClient.
Openfeign é desenvolvido pela própria SPringleCloud, enquanto feign é um código netflix escrito quase inalterado.
Preste atenção à simulação de chamada do cliente: se o parâmetro da solicitação não estiver anotado, a solicitação de postagem é enviada por padrão.
Openfeign oferece suporte a balanceamento de carga e fita por padrão.
Dois, exemplo
1. Cliente
(1) dependência de .maven
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
(2) .service
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(name = "alibaba-provider")
public interface FeignDemoService {
//provider配置了路径server.servlet.context-path=/provider,所以要添加 provider
@RequestMapping("/provider/demo")
public String test();
}
(3) .controller
import com.asyf.demo.feignservice.FeignDemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/")
public class DemoController {
@Autowired
private FeignDemoService feignDemoService;
@RequestMapping(value = "/demo")
public String test() {
return "consumer:" + feignDemoService.test();
}
}
2. Servidor
O servidor fornece uma interface e inicia dois serviços para se registrar no registro do Nacos
(1) .controller
@Value("${server.port}")
private Integer port;
@RequestMapping(value = "/demo", method = RequestMethod.GET)
public String test() {
System.out.println(test.length());
return "abc" + " - port:" + port;
}
3. Inicie o servidor e o cliente
4. Teste
访问http: // localhost: 8090 / consumer / demo
Nota:
(1) Se a interface está conectada
(2) O balanceamento de carga é fácil de usar