当前位置: 首页 > news >正文

营销网站建设实力派易网拓江苏网站集约化建设

营销网站建设实力派易网拓,江苏网站集约化建设,如何让网站快速被收录,云南信息发布平台一、简介 OpenFeign客户端是一个web声明式http远程调用工具,直接可以根据服务名称去注册中心拿到指定的服务IP集合,提供了接口和注解方式进行调用,内嵌集成了Ribbon本地负载均衡器。 二、SpringCloud集成OpenFeign 版本说明: S…

一、简介

OpenFeign客户端是一个web声明式http远程调用工具,直接可以根据服务名称去注册中心拿到指定的服务IP集合,提供了接口和注解方式进行调用,内嵌集成了Ribbon本地负载均衡器。

二、SpringCloud集成OpenFeign

版本说明:
Spring Cloud VersionHoxton.SR12
Spring Boot Version2.3.12.RELEASE

不同版本源码可能会有差异,具体参考版本对照

1、引入依赖

<!--openfeign-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2、在启动类或者配置类上加@EnableFeignClients注解

@SpringBootApplication
@EnableFeignClients
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

3、声明Feign接口

/*** 用户 远程服务*///1.1、如果是注册到nacos服务,则填写nacos服务名称,contextId:唯一标识
@FeignClient(value = "user",contextId = "userInfoClient01")
public interface UserFeignApi{/** 获取用户信息 */@GetMapping("/user/info")User getInfo(Long id);
}//2、如果调用第三方接口,直接通过url调用 (value服务名,url远程调用地址,path统一前缀)
@FeignClient(value = "自定义服务名",url = "http://127.0.0.1:8080",path = "/user")
public interface UserFeignApi{/** 获取用户信息 */@GetMapping("/info")User getInfo(Long id);
}

相同服务名的坑:在使用了Feign的SpringCloud项目启动时,当存在多个FeignClient接口且name值相同,就会报错: A bean with that name has already been defined and overriding is disabled。这是因为SpringBoot会为每个FeginClient创建Bean,但当name值相同时SpringBoot会认为是有两个相同名字的Bean需要被创建,由此抛出异常。给每个@FeignClient都设置自己唯一的contextId

4、测试feign接口

@RestController
@RequestMapping("/order")
public class OrderController {@Autowiredprivate UserFeignApi userFeignApi;@GetMapping("/getInfo")public User getInfo(Long id) {return userFeignApi.getInfo(id);}

5、日志配置(OpenFeign)


feign:  client:config: default: loggerLevel: FULL  logging:level:com.atguigu.gulimall: debug   # 需要打印日志的包package# 这里用default就是全局配置,如果是写服务名称user或者唯一标识contextId,则是针对某个微服务的配置
# 日志级别 NONE:默认不打印  BASIC:打印简单信息 HEADERS:打印头信息 FULL:打印全部信息(默认 NONE

6、OpenFeign超时配置

使用配置文件配置是最推荐的,也是在项目中使用最多的。


feign:client:config:default:   # 默认全局配置,也可配置单独FeignClientdefault替换对应contextIdconnectTimeout: 5000 # 连接超时时间 默认值:1000毫秒readTimeout: 5000 # 读取超时时间 默认值:1000毫秒

7、OpenFeign拦截器

拦截器是OpenFeign可用的一种强大的工具,它可以被用来在请求和响应前后进行一些额外的处理

1、通过OpenFeign请求拦截器设置统一请求头

public class MyHeaderInterceptor implements RequestInterceptor {private static String headerName = "token";@Overridepublic void apply(RequestTemplate requestTemplate) {// 在这里添加额外的处理逻辑,添加请求头RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();if (requestAttributes instanceof ServletRequestAttributes) {ServletRequestAttributes attributes = (ServletRequestAttributes) requestAttributes;HttpServletRequest request = attributes.getRequest();String value = request.getHeader(headerName);requestTemplate.header(headerName, value);}}
}

在配置文件中添加拦截器配置

feign:client:config:# 默认配置 如果不单独配置每个服务会走默认配置default:request-interceptors:- com.config.MyHeaderInterceptor 
http://www.yayakq.cn/news/557187/

相关文章:

  • 时装网站的建设app开发公司有前景么
  • 台州市建设局网站建设电影网站需要多少钱
  • 筑巢网站商业网站定义
  • 深圳全网营销网站我40岁自学cad找到工作了
  • 汕头网站推广优化建设局官方网站
  • 南宁自助建站模板网站开发可以用两种语言吗
  • 阜阳网站建设公司网站运营包括哪些内容
  • 网站icon怎么设置网店出售
  • 京东的网站建设规划互联网挣钱项目平台
  • 如何注册海外域名做seo需要建网站吗
  • 宿迁网站建设哪家最好网站管理教程
  • 织梦网站会员中心模板下载网站开发流程记住吧
  • 网站建设中翻译拼多多开网店免费提供货源
  • 怎么做淘宝企业网站免费做一个自己app
  • 设计师网站资源软件开发成本估算表
  • 关于做网站的书籍linux 网站建设
  • 出入东莞最新通知今天seo诊断分析工具
  • 培训网站有哪些义乌网站
  • 石家庄seo网站优化报价天津定制网络营销公司
  • 网站页头人气最旺的传奇手游
  • 做网站怎么上传河南省建筑业协会官网
  • 给客户做网站图片侵权网站调优技能
  • 广东建设厅的工程造价网站中企动力官网登录入口
  • 英文 网站 字体游戏网站模板下载
  • 网站广告费怎么做分录网站怎么开启gzip
  • 商城网站建设运营合同阳瘘的最佳治疗方法是什么
  • 西安网站建设seo竞价上海app制作公司
  • 为什么网站要域名企业建站系统下载
  • 论坛网站建设视频教程网站创建一般创建哪种类型
  • 做网站图片太多怎么办全渠道运营平台系统