springCloud_Fingir llamada remota

Fingir llamada remota
Fingir reemplaza RestTemplate
先来看我们以前利用RestTemplate发起远程调用的代码
String url ="http://userservice/user/"+order.getUserId();
User user = restTemplate.getForObject(url,User.class);
存在下面问题:
	① 代码可读性差,编程提验不统一
	② 参数复杂URL难以维护

Feign是一个声明式的http客户端.
① 引入依赖
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-openfeign</artifactId>
	</dependency>
② 在order-service的启动类添加注解开启Feign的功能
	@MapperScan("cn.itcast.order.mapper")
	@SpringBootApplication
	@EnableFeignClients
	public class OrderApplication {
    
    
	    public static void main(String[] args) {
    
    
	        SpringApplication.run(OrderApplication.class, args);
	    }
	}
③ 编写Feign的接口
	@FeignClient("userservice")
    public interface UserClient{
    
    
    	@GetMapping("/user/{id}")
    	User findById(@PathVariable("id") Long id);
	}
④ 注入Feign的接口,然后调用其中的方法即可
Fingir configuración personalizada
方式一:配置文件方式
	① 全局生效
	feign:
		client:
			config: 
				default: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置        				loggerLevel: FULL #  日志级别 

	②局部生效
	feign:
		client:
			config: 
				userservice: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置
					loggerLevel: FULL #  日志级别
					
方式二:java代码方式,需要先声明一个Bean
	public class DefaultFeignConfiguration {
    
    
    	@Bean
        public Logger.Level feignLogLevel(){
    
    
        	return Logger.Level.BASIC; 
        	}
        }
	① 而后如果是全局配置,则把它放到@EnableFeignClients这个注解中:
	@EnableFeignClients(defaultConfiguration = DefaultFeignConfiguration.class)
	② 如果是局部配置,则把它放到@FeignClient这个注解中:
	@FeignClient(value = "userservice", configuration = DefaultFeignConfiguration.class)
Fingir optimización de uso
Feign底层的客户端实现
	① URLConnection:默认实现,不支持连接池
	② Apache HttpClient:支持连接池
	③ OKHttp:支持连接池
因此优化Feign的性能主要包括
	① 使用连接池代替默认的URLConnection
	② 日志级别,做好用basic和none
Optimización de uso fingido: configuración del grupo de conexiones
① 引入依赖:
	<!--httpClient的依赖 -->
    <dependency>
    	<groupId>io.github.openfeign</groupId>
    	<artifactId>feign-httpclient</artifactId>
    </dependency>
② 配置连接池:
	feign:
		client:
			config:
				default: # default全局的配置
					loggerLevel: BASIC # 日志级别,BASIC就是基本的请求和响应信息
		httpclient:
			enabled: true # 开启feign对HttpClient的支持
			max-connections: 200 # 最大的连接数
			max-connections-per-route: 50 # 每个路径的最大连接数
Prácticas recomendadas para fingir

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Necesita el código del proyecto para contactar al blogger.

Supongo que te gusta

Origin blog.csdn.net/qq_44590469/article/details/124827219
Recomendado
Clasificación