千家信息网

springcloud-feign中怎么实现一个服务发现功能

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,今天就跟大家聊聊有关springcloud-feign中怎么实现一个服务发现功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。springcl
千家信息网最后更新 2026年11月04日springcloud-feign中怎么实现一个服务发现功能

今天就跟大家聊聊有关springcloud-feign中怎么实现一个服务发现功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

springcloud使用服务发现进行服务间调用。对外使用网关gateway屏蔽分流转发接口。服务发现客户端到注册中心拉取服务列表实现客户端负载均衡。客户端实现负载均衡主要有两种方式。一种是ribbon另一种是基于ribbon封装的feign。这是feign官方的解释 我总结了一下主要有一下几个优点:
(1)可插拔的注解支持,包括Feign注解和JAX-RS注解;
(2)支持可插拔的HTTP编码器和解码器;
(3)支持Hystrix和它的Fallback;
(4)支持Ribbon的负载均衡;
(5)支持HTTP请求和相应的压缩。

微服务调用常用概念
(1)服务降级:
当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略测不处理或换种简单的方式处理,从而释放资源以保证核心交易正常运作成高效运作。
(2)断路:
熔断这一概念来自于电子工程中的断路器(circuit Breaker)。在互联网系统中,当下游服务因访问压力过大而相应变慢或者失败,上游为了保护系统整体的可用性,可以暂时切断对下游服务的调用。 简单理解就是降级是针对业务,断路是上下游故障。
(3)幂等性:
就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。

使用方式
下面我们开始feign的使用:
(1)添加springcloudalibaba和openfeign的依赖

org.springframework.cloud
spring-cloud-starter-openfeign


org.springframework.cloud
spring-cloud-starter-alibaba-nacos-discovery

(2)添加注解 @EnableDiscoveryClient开启服务发现,注解 @EnableFeignClients支持feign客户端。

用@FeignClient("serviceName")注解在对外的接口上,这样接口就支持调用服务,因此支持热插拔。serviceName使用注册中心被调用的服务名字。@RequestMapping注解的方法是服务提供方的接口方法,看起来是不是和springmvc使用方法很像,没错因为这是feign对mvc支持的一种契约。feign默认是@RequestLine。它可以支持各种契约。同样子,他可以使用默认的HttpUrlConnection也可以使用httpclient或者okhttp3.

(3)修改application.peoperties配置文件 #服务名字
----- spring.application.name=feign-service
#服务无端口0会随机选择一个
----- server.port=0
#服务集群名字
---- spring.cloud.nacos.discovery.cluster-name=consumer-service #nacos注册中心地址
----- spring.cloud.nacos.discovery.server-addr=nacos.blog.ailijie.top
ok,完成。下面是feign的高级使用

feign高级使用

(1)feign日志配置
创建feign日志级别,还有feign的重试机制,这样feign可以使用重试机制同时把每一次的请求用日志记录下来。
(2)feign的断路
在feignclient注解中配置fallbackFactory工厂,进行断路解决。使用factory的好处是可以处理异常信息。还可以使用fallback处理。如果使用fallback,fallbackFactory将不会生效。看一下,Factory 需要返回一个IProviderService的实现类,在create方法里可以处理异常。这样在服务端发生异常或者下线后,将会走断路方法。
(2)feign的高级配置
#开启okhttp
----- feign.okhttp.enabled=true
#开启hystrix断路,不开启feign的降级不生效
----- feign.hystrix.enabled=true

#hystrix断路超时时间
----- hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = 2000

----- provider-service.ribbon.ConnectTimeout = 1000
----- provider-service.ribbon.ReadTimeout = 1000
#对所有操作请求都进行重试
----- provider-servicee.ribbon.OkToRetryOnAllOperations = true
#切换实例的重试次数
----- provider-service.ribbon.MaxAutoRetriesNextServer = 2

#对当前实例的重试次数
----- provider-service.ribbon.MaxAutoRetries = 1
#设置日志级别
----- logging.level.com.wotrd.feignservice.service.IProviderService=DEBUG
断路的超时时间需要大于读超时时间,不然重试不生效。

看完上述内容,你们对springcloud-feign中怎么实现一个服务发现功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

服务 支持 注解 方法 处理 客户 客户端 接口 日志 配置 高级 均衡 内容 名字 方式 时间 功能 业务 压力 契约 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 广州大一互联网络科技有限公司 科技平台互联网 互联网通讯科技 美国互联网前沿科技 无锡溥仪互联网科技有限公司 互联网和高科技公司 云创客互联网科技公司 以后互联网后是啥科技 彤创互联网科技有限公司 知域互联网科技有限公司大骗子 互联网保险科技创业 互联网科技的全部知识 合肥互联网科技公司公章图片 四川互联网展示科技馆设计 互联网科技数字货币 35岁以上互联网科技行业 扫呗互联网科技有限公司 广州梦谷互联网科技有限公司领导 互联网金融金融科技 华宇互联网科技 广州善班互联网科技 宁夏众和广鑫互联网科技有限公司 湖南一路畅行互联网科技 允成互联网科技有限公司融资 广州互联网高科技取餐柜 中国互联网公司的科技投入 互联网科技的前景 互联网科技品牌 科技互联网企业在行动
0