远程调用 Spring Cloud Feign

一、 Feign简介

Feign [feɪn] 译文 伪装。Feign是一个声明式WebService客户端.使用Feign能让编写WebService客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解。不再需要拼接URL,参数等操作。项目主页:https://github.com/OpenFeign/feign 。

  • 集成Ribbon的负载均衡功能
  • 集成了Hystrix的熔断器功能
  • 支持请求压缩
  • 大大简化了远程调用的代码,同时功能还增强啦
  • Feign以更加优雅的方式编写远程调用代码,并简化重复代码

快速入门

实现步骤:

  1. 导入feign依赖
  2. 编写Feign客户端接口
  3. 消费者启动引导类开启Feign功能注解
  4. 访问接口测试

1. 导入feign依赖

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

1.1创建实体类User

package com.william.domain;import java.util.Date;/*** @author :lijunxuan* @date :Created in 2019/6/30  18:20* @description :* @version: 1.0*/
public class User {private Integer id;//主键idprivate String username;//用户名private String password;//密码private String name;//姓名private Integer age;//年龄private Integer sex;//性别 1男性,2女性private Date birthday; //出生日期private Date created; //创建时间private Date updated; //更新时间private String note;//备注@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", name='" + name + '\'' +", age=" + age +", sex=" + sex +", birthday=" + birthday +", created=" + created +", updated=" + updated +", note='" + note + '\'' +'}';}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Integer getSex() {return sex;}public void setSex(Integer sex) {this.sex = sex;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public Date getCreated() {return created;}public void setCreated(Date created) {this.created = created;}public Date getUpdated() {return updated;}public void setUpdated(Date updated) {this.updated = updated;}public String getNote() {return note;}public void setNote(String note) {this.note = note;}
}

2. 编写Feign客户端接口

package com.william.service;import com.william.domain.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;@FeignClient("user-service")
public interface UserClient {/***RequestMapping* spring mvc 里面的注解* RequestMapping 反向映射,生成请求地址。http请求*  @RequestParam("id") 是必须要进行请求地址参数的绑定* @param id* @return*/@RequestMapping("/user/findById")User findById(@RequestParam("id") Integer id);
}

3. 消费者启动引导类DemoApplication开启Feign功能注解

在这里插入图片描述

@EnableFeignClients//开启feign客户端支持

3.1编写ConsumerFeignController,使用UserClient访问

package com.william.controller;import com.william.domain.User;
import com.william.service.UserClient;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/*** @author :lijunxuan* @date :Created in 2019/6/30  18:33* @description :* @version: 1.0*/
@RestController
public class FeigConsumerController {@ResourceUserClient userClient;//注入FeignCLient@RequestMapping("/findByIdFeign")public User findByIdFeign(Integer id){return userClient.findById(id);}
}

4. 访问接口测试

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 命令之 pwconv -- 开启用户的投影密码

命令介绍 该命令根据文件 /etc/passwd 创建影子文件 /etc/shadow。 用来开启用户的投影密码。Linux系统里的用户和群组密码&#xff0c;本来分别存放在名称为 passwd 和 group 的文件中&#xff0c; 这两个文件位于 /etc 目录下。因系统运作所需&#xff0c;任何人都得以读取…

plsql如何执行单个语句_在单个try-with-resources语句中仔细指定多个资源

plsql如何执行单个语句Java 7最有用的新功能之一是引入了try-with-resources语句 [AKA 自动资源管理 &#xff08; ARM &#xff09;]。 try-with-resources语句的吸引力在于它承诺 “确保在语句末尾关闭每个资源”。 在这种情况下&#xff0c;“资源”是实现AutoCloseable及其…

Spring Cloud Feign 负载均衡

一、Feign负载均衡介绍 Feign本身集成了Ribbon依赖和自动配置&#xff0c;因此不需要额外引入依赖&#xff0c;也不需要再注册RestTemplate对象 Feign内置的ribbon默认设置了请求超时时长&#xff0c;默认是1000&#xff0c;可以修改 ribbon内部有重试机制&#xff0c;一旦超…

Linux 命令之 pwunconv -- 关闭投影密码

文章目录命令介绍命令介绍 pwunconv 命令与 pwconv 功能相反&#xff0c;用来关闭用户的投影密码。它会将密码从 /etc/shadow 文件内&#xff0c;重新回存到 /etc/passwd 文件中。换句话说&#xff0c;pwunconv 命令将文件 /etc/shadow 中的数据同步到文件 /etc/passwd 中&…

apache ignite_Apache Ignite,Hazelcast,Cassandra和Tarantool之间的主要区别

apache igniteApache Ignite在世界范围内得到广泛使用&#xff0c;并且一直在增长。 诸如Barclays&#xff0c;Misys&#xff0c;Sberbank&#xff08;欧洲第三大银行&#xff09;&#xff0c;ING&#xff0c;JacTravel之类的公司都使用Ignite来增强其架构的功能&#xff0c;这…

Spring Cloud Feign 熔断器支持

一、实现步骤 在配置文件application.yml中开启feign熔断器支持编写FallBack处理类&#xff0c;实现FeignClient客户端在FeignClient注解中&#xff0c;指定FallBack处理类。测试 1. 在配置文件application.yml中开启feign熔断器支持&#xff1a;默认关闭 # 开启Feign的熔断功…

system health_可重复使用的MicroProfile Health探针

system healthMicroProfile Health API是一种非常基本的API&#xff0c;它基于一个或多个Health Probe报告您的服务状态。 在某些服务器或群集控制器需要决定是否以及何时重新启动实例的情况下&#xff0c;这非常有用。 在应用程序中使用MicroProfile Health API就像实现一个&…

Linux 命令之 visudo -- 编辑/etc/sudoers文件

文章目录命令介绍常用选项参考示例编辑文件 /etc/sudoers检查 /etc/sudoers 文件的语法错误、所有者和模式命令介绍 使用 visudo 命令可以打开 /etc/sudoers 文件进行编辑。当然 vim 也可以编辑该文件&#xff0c;但是不建议这样做&#xff0c;因为使用命令 visudo 编辑文件 /…

Spring Cloud Feign 请求压缩 、Feign的日志级别配置

一、Spring Cloud Feign 请求压缩 #开启压缩compression:request:enabled: true # 开启请求压缩#最小触发压缩的大小min-request-size: 2048#触发压缩数据类型&#xff0c;&#xff08;注意不能使用"" ,&#xff09;mime-types: text/xml, application/xml, applicat…

Linux 命令之 sudoedit -- 以另外一个用户身份编辑文件

文章目录命令介绍常用选项参考示例以用户 root 身份来编辑指定的文件以其它用户身份编辑指定的文件命令介绍 查看使用帮助&#xff0c;感觉和命令 sudo 完全一样。 [mysqlhtlwk0001host ~]$ sudoedit -h sudoedit - 以其他用户身份编辑文件usage: sudoedit [-AknS] [-r role]…

文档在线签名_为什么需要为文档和合同切换到在线签名

文档在线签名嘿&#xff0c;怪胎&#xff0c; 今天&#xff0c;我们为您带来一些不同。 无论您是开发人员&#xff0c;经理还是设计师&#xff0c;这都会提高您的生产力和效率。 对于公司和个人而言&#xff0c;良好地管理文书工作是强大基础的最重要部分之一。 将工作流程从…

网关 Spring Cloud Gateway

一、 Gateway 简介 Spring Cloud Gateway 是Spring Cloud团队的一个全新项目&#xff0c;基于Spring 5.0、SpringBoot2.0、Project Reactor 等技术开发的网关。 旨在为微服务架构提供一种简单有效统一的API路由管理方式。 Spring Cloud Gateway 作为SpringCloud生态系统中的网…

Linux命令之su -- 用于切换当前用户身份到其他用户身份

文章目录命令介绍特别重要常用选项su 命令存在的安全隐患参考示例切换成指定的用户身份&#xff0c;但是环境变量不变切换成指定的用户身份&#xff0c;并且改成对应用户的环境变量切换成指定的用户&#xff0c;并告知新的 shell 不要去读取启动文件切换成指定的用户执行命令&a…

apache ignite_Apache Ignite变得简单:第一个Java应用程序

apache ignite在本文中&#xff0c;我们将更进一步&#xff0c;让您完成第一个Ignite应用程序的创建&#xff0c;以从分布式缓存中进行读写操作。 作为第一个示例&#xff0c;我们将尽可能简单地向您展示如何用Java编写用于处理Apache Ignite集群数据的应用程序。 可从GitHub存…

Linux 命令之 sudo -- 以其他用户身份来执行命令

文章目录命令介绍原理相关文件通配符和命令 su 的比较常用选项几个重要选项的解读-k 选项-s 选项-i 选项su、sudo su、sudo -i 的区别查看日志文件参考示例以用户 mysql 的身份执行命令 pwd以用户 root 的身份执行命令 pwd以 root 的权限执行上一条命令以 root 的权限编辑指定的…

openjdk和jdk_JDK 11:发行候选更新和OpenJDK JDK 11 LTS

openjdk和jdkJDK 11 计划于 2018年9月25日星期二发布&#xff0c;以实现全面可用性 。OpenJDK jdk-dev邮件列表上的Mark Reinhold消息于2018 年8月16日宣布“ JDK 11现在处于发布候选阶段 。” 但是&#xff0c;Reinhold在2018年8月17日同一封邮件列表中的消息中提供了更新的详…

Linux系统通过文件/etc/sudoers设置用户使用sudo的权限/用户使用sudo的授权配置

文章目录sudo 权限配置说明如何修改 sudo 会话有效期设置输入密码时显示星&#xff08;*&#xff09;号别名规则如何定义别名及使用别名配置权限为什么配置的命令要使用绝对路径参考示例授权用户 test 可以重启服务器授权群组可以使用 sudo 切换成任何用户身份&#xff0c;执行…

system.gc 性能_使用这些先进的GC技术提高应用程序性能

system.gc 性能应用程序性能是我们关注的重点&#xff0c;垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集&#xff08;与JIT HotSpot编译器一起&#xff09;是JVM中最先进&#xff0c;最有价值的组件之一&#xff0c;但是许多开发人员和工程师对垃圾收集&#…

Linux 命令之 who -- 打印当前登录用户/显示目前登入系统的用户信息。

文章目录命令介绍常用选项参考示例打印用户登录信息打印全面的信息打印系统登录进程显示登录系统的所有用户名称和总人数命令介绍 who 命令用来打印当前登录用户信息&#xff0c;包含了系统的启动时间 、 活动进程 、 使用者 ID、使用终端等信息&#xff0c;是系统管理员了解系…

SpringCloud全局过滤器自定义

一、实现步骤&#xff1a; 在gateway_service工程编写全局过滤器类GlobalFilter,Ordered编写业务逻辑代码访问接口测试&#xff0c;加token和不加token。 二、业务逻辑代码 package com.william.filters;import org.springframework.cloud.gateway.filter.GatewayFilterChain…