SpringBoot引入OpenFeign,不使用注册中心

这篇具有很好参考价值的文章主要介绍了SpringBoot引入OpenFeign,不使用注册中心。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【前言】
最近接到一个需求,需要对接第三方平台的api,在设计方案通过之后,打算将对接服务拆分出来,因为现在的项目没有使用到注册中心,打算单独引入OpenFeign组件简化服务通信方式,也为了更好的支持项目后续向微服务的转变!

很多人以为OpenFeign必须依赖于注册中心,其实不然,OpenFeign可以跳过注册中心,完成服务器间的通信

项目目录结构

SpringBoot引入OpenFeign,不使用注册中心
feign-demo:root

api:api层,供消费者使用

consumer:服务消费者

provider:服务生产者

相关代码

api
创建TestApi接口,添加@FeignClient注解
name:服务名称 (注:若使用注册中心,此处应该写生产者服务名称)
url:生产者的url地址

@FeignClient(name = "feignTest", url = "localhost:8081/feign")
public interface TestApi {
    @GetMapping("test/{data}")
    String test1(@PathVariable("data") String data);

    @PostMapping("test/{data}")
    String test2(@PathVariable("data") String data);
}

consumer
1、创建启动类并添加@EnableFeignClients注解

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

2.创建ConsumerController

@RestController
@RequestMapping("/consumer")
public class ConsumerController {
    @Autowired
    private TestApi testApi;

    @GetMapping("test/{data}")
    public String test1(@PathVariable("data") String data) {
        return testApi.test1(data);
    }

    @PostMapping("test/{data}")
    public String test2(@PathVariable("data") String data) {
        return testApi.test2(data);
    }
}

provider
创建ProviderController

@RestController
@RequestMapping("/feign")
public class ProviderController {
    @GetMapping("test/{data}")
    public String test1(@PathVariable("data") String data) {
        return "test-get";
    }

    @PostMapping("test/{data}")
    public String test2(@PathVariable("data") String data) {
        return "test-post";
    }
}

验证

分别启动consumer(8080)、provider(8081)

get
SpringBoot引入OpenFeign,不使用注册中心
post
SpringBoot引入OpenFeign,不使用注册中心
总结:在使用注册中心时,OpenFeign作为服务间通信的组件,它本身集成了Ribbon的负载均衡能力、错误重试、日志、Hystrix熔断等机制,同时也能够支持点对点的通信方式,让开发者感觉更像是调用本地接口,而不是发起HTTP请求。
demo地址文章来源地址https://www.toymoban.com/news/detail-455180.html

到了这里,关于SpringBoot引入OpenFeign,不使用注册中心的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot搭建微服务案例之Eureka注册中心

    放一些pojo类 (1)整合mybatis dao层 创建 dao 接口的映射文件还有 mybatis 的核心配置文件 配置 MyBatis 的类型别名,简化 MyBatis 映射文件中的配置  (2)Service 使用 RestTemplate 这个 Java 客户端组件来实现服务的远程调用。所以我们需要将 RestTemplate 使用 Java 配置类进行注入: 这里

    2024年02月05日
    浏览(48)
  • springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析

    Spring Cloud 是一系列框架的有序集合如服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等。 SpringCloud 将多个服务框架组合起来,通过Spring Boot进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者提供了一套简单易懂、易部署和易维护的分布式系统开

    2024年02月08日
    浏览(67)
  • OpenFeign / SpringBoot 响应使用gzip压缩(含例子)

    全局压缩(接口与浏览器响应压缩) min-response-size 与 mime-types 均包含默认值,可以不手动指定,如有其他需要可按需指定 局部压缩(微服务之间利用feign请求及响应压缩) 2.1准备product (测试全局压缩) 启动类添加注解 @EnableFeignClients 指定目录 接口类添加注解 @FeignClient 实

    2023年04月14日
    浏览(38)
  • Eureka 注册中心的使用

    环境 springboot + springcloud Eureka-Server注册中心服务端 pom.xml 导入依赖 aplication.yml 配置 EurekaServerApplication.java 启动类配置     Service提供者 pom.xml application.yml     consumer消费者 (消费者也可以作为提供者身份出现) pom.xml application.yml OrderApplication 配置RestTemplate的Bean加入到Spring容器中

    2024年02月10日
    浏览(40)
  • springcloud使用nacos搭建注册中心

    nacos安装这里就不细说了,(Nacos下载以及搭建环境_你非柠檬为何心酸142的博客-CSDN博客) 大家也可以去网上安装好,这里主要讲搭建 ,我们需要手动启动nacos, 输入(.startup.cmd -m standalone),出现一下图标就代表ok  下面是我的pom.xml文件  首先是父工程所需要的依赖,需要注意的

    2024年02月08日
    浏览(57)
  • 使用SpringCloud搭建Eureka注册中心

    目录 前言 一、搭建EurekaServer 1、在cloud-demo父工程下,创建子模块 eureka-server。  2、引入eureka依赖 3、给eureka-server模块编写启动类 4、编写配置文件 5、启动服务 二、服务注册  1、引入依赖 2、配置文件 3、启动服务  三、服务发现 1、引入依赖 3、服务拉取 总结          在

    2024年02月04日
    浏览(40)
  • SpringCloud(二) Eureka注册中心的使用

    在SpringCloud(一)中,我们学会了使用RestTemplate进行远程调用,但是在调用user-service时候需要在order-service中发送http请求,请求中需要书写对应微服务的ip和端口号,十分不方便,如果此时有多个user-service实例的话,就不知道调用哪个了(除非每次调用的时候都对ip和端口号进行调整),所以本

    2024年02月07日
    浏览(43)
  • nacos注册中心服务注册后,使用服务名无法访问,使用ip+端口号可以访问

    环境: 名称 版本 springBoot 3.0.3 springCloud 2022.0.1 springCloudAlibaba 2022.0.0.0-RC1 nacos客户端 2.2.0 nacos中服务已经注册成功  并且使用RestTemplate进行了负载均衡,加入了@LoadBalanced注解,在使用服务名进行访问时出现以下错误 \\\"timestamp\\\": \\\"2023-03-03T03:57:50.409+00:00\\\",     \\\"status\\\": 500,     \\\"err

    2023年04月20日
    浏览(49)
  • 【SpringCloud】02 注册中心Eureka的原理与使用

    本文是SpringCloud系列第二篇,请先阅读前置文章。 所有代码都基于01认识微服务,了解服务拆分与远程调用中的基础代码cloud-demo,可以前往下载。 在上一篇文章中,我们在OrderService类的queryOrderById方法里,使用RestTemplate里向user-service微服务发起调用请求,根据用户id查询用户

    2024年02月05日
    浏览(47)
  • 【使用Zookeeper当作注册中心】自己定制负载均衡常见策略

    大伙肯定知道,在分布式开发中,目前使用较多的注册中心有以下几个: Apache Zookeeper Netflix Eureka Alibaba Nacos 由于 Zookeeper 在面对高频次的服务注册和发现操作可能会一定的性能损耗等原因,搞得现在好多人都不用 Zookeeper 当做注册中心了。但它也提供了强一致性和高可靠性的

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包