FeignClient如何脱离eureka自定义URL

 更新时间:2022年06月28日 11:54:21   作者:118路司机  
这篇文章主要介绍了FeignClient如何脱离eureka自定义URL,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

FeignClient脱离eureka自定义URL

需求

Spring Cloud环境中的FeignClient有时候需要调用特定主机的接口,但是默认是从eureka上的注册列表自动获取到的负载均衡过后的URL,这时怎么办呢?

方法一: FeignClient注解中添加URL属性

如果本地可以编译参照的FeignClient源码,可以直接修改,如果参照的是jar包,则可以另外自己做一个FeignClient,主要是要指定url属性:

@FeignClient(name = "test-service", path = "/test", url="http://localhost:8000")
public interface TestFeignClient{
    @GetMapping(value = "/test1")
    String test1();

方法二: eureka禁用ribbon,并手动配置服务列表

设置 ribbon.eureka.enable = false

自定义接口的服务地址

ribbon:
  eureka:
    enabled: false
test-service:
  ribbon:
    listOfServers: http://localhost:8000

注意

方法二的设置会导致所有FeignClient都需要在配置文件中自定义服务地址,

如果需要特定指定的服务URL并不多的话,推荐使用方法一。

另外,如果项目本身就不需要eureka,推荐方法二,因为url可以指定多个,来实现一定的负载均衡。 

feign不使用eureka

main

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

server端代码

server端依旧是用randomInt

@RequestMapping(value = "/getNum", method = RequestMethod.GET)
    public int getRandomInt() {
        Random random = new Random();
        Integer num = random.nextInt(100);
        logger.info("getRandomInt:" + num);
        return num;
    }

Client端代码

@FeignClient(name = "thisOnlyName", url = "http://localhost:10102")
public interface RestFulService {
    /**
     * 默认没有参数会使用get方法
     *
     * @return
     */
    @RequestMapping(value = "/getNum")
    int getRandomInt();
}

此处通过url直接指定就好了。不需要配置eureka。ribbon也不会生效。单节点个人学习棒棒哒!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java中对象的销毁方法分析

    Java中对象的销毁方法分析

    这篇文章主要介绍了Java中对象的销毁方法,较为详细的分析了对象的功能、用法及销毁对象对于程序运行的益处,需要的朋友可以参考下
    2015-04-04
  • Java 细致图解带你分析汉诺塔

    Java 细致图解带你分析汉诺塔

    汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。本文将用Java求解这一问题,感兴趣的可以学习一下
    2022-03-03
  • java文件删除不了File类的delete方法删不掉文件的原因以及分析

    java文件删除不了File类的delete方法删不掉文件的原因以及分析

    这篇文章主要介绍了java文件删除不了File类的delete方法删不掉文件的原因以及分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Java多线程中的wait/notify通信模式实例详解

    Java多线程中的wait/notify通信模式实例详解

    这篇文章主要给大家介绍了关于Java多线程中wait/notify通信模式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Java读取文件方法汇总

    Java读取文件方法汇总

    这篇文章主要为大家详细介绍了Java读取文件方法,按字节读取文件内容、按字符读取文件内容、随机读取文件内容等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Java实现三子棋游戏

    Java实现三子棋游戏

    这篇文章主要为大家详细介绍了Java实现三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 基于mybatis-plus timestamp返回为null问题的排除

    基于mybatis-plus timestamp返回为null问题的排除

    这篇文章主要介绍了mybatis-plus timestamp返回为null问题的排除,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java中数组转List的三种方法与对比分析

    Java中数组转List的三种方法与对比分析

    这篇文章主要给大家介绍了关于Java中数组转List的三种方法与对比分析的相关资料,分别介绍了最常见方式、数组转为List后,支持增删改查的方式以及通过集合工具类Collections.addAll()方法,需要的朋友可以参考下
    2018-07-07
  • 如何用Spring发送电子邮件

    如何用Spring发送电子邮件

    这篇文章主要介绍了如何用Spring发送电子邮件,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-02-02
  • Java web入门指南之在Idea上创建Java web项目

    Java web入门指南之在Idea上创建Java web项目

    好多书上的JavaWeb教程都是Eclipse以及MyEclipse,当然这里不论IDE的好坏,下面这篇文章主要给大家介绍了关于Java web入门指南之在Idea上创建Java web项目的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06

最新评论