微服务间调用我们尝尝使用Feign定义一个公共类,这样可以快速的发起http请求。
第一个问题: A 服务 通过 Feign 调用B 服务,那么全局超时的配置是配置A服务还是配置在B服务呢?
答案是配置在写 Fegin 接口的服务里
Fegin 的一些常用配置
max-connections-per-route
feign.httpclient.max-connections-per-route
配置的是单个路由的最大连接数。
在Feign中,feign.httpclient.max-connections-per-route配置项用于设置单个路由的最大连接数。这个参数控制了Feign客户端在与特定服务进行通信时,同时保持的最大连接数。通过调整这个参数,可以优化Feign客户端的性能和稳定性,特别是在高并发场景下。
max-connections
在 Feign 中,当使用feign - httpclient(即使用 Apache HttpClient 作为底层 HTTP 客户端)时,max-connections的默认值是 200。
这意味着在默认情况下,Feign 通过 HttpClient 发送请求时,连接池最多允许同时存在 200 个连接。这个默认设置在许多场景下可以满足一定的并发请求需求,但在高并发或者资源受限的环境中,可能需要根据实际情况进行调整。
含义解释
feign.httpclient.max-connections
是 Feign 框架(主要用于微服务之间的 HTTP 客户端调用)中与 HttpClient 相关的一个配置属性。它用于配置 Feign 使用 HttpClient 作为底层 HTTP 客户端时的最大连接数。当 Feign 通过 HttpClient 发送多个 HTTP 请求时,这些请求会共享一个连接池。max - connections这个配置限制了连接池中可以同时存在的最大连接数量。
通用配置
feign.client.config.default.connect-timeout=60000 连接超时时间
feign.client.config.default.read-timeout=60000 获取数据超时时间
如果想配置调用不同服务的超时时间
feign.client.config.xxxxx.connect-timeout=3000 连接超时时间
feign.client.config.xxxxxx.read-timeout=30000 获取数据超时时间