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也不会生效。单节点个人学习棒棒哒!

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

相关文章

  • SpringBoot实现获取客户端IP地理位置

    SpringBoot实现获取客户端IP地理位置

    在当今互联的世界中,了解客户端的地理位置对于提供个性化服务和增强用户体验至关重要,使用本文为大家介绍了SpringBoot获取客户端IP地理位置的相关方法,需要的小伙伴可以参考下
    2023-11-11
  • Java 8系列之Stream中万能的reduce用法说明

    Java 8系列之Stream中万能的reduce用法说明

    这篇文章主要介绍了Java 8系列之Stream中万能的reduce用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • java中对List分段操作的实例

    java中对List分段操作的实例

    这篇文章主要介绍了java中对List分段操作的实例的相关资料,希望通过本文大家能够掌握list的分段实现方法,需要的朋友可以参考下
    2017-09-09
  • 在Spring Boot中实现文件上传与管理的操作

    在Spring Boot中实现文件上传与管理的操作

    在 Spring Boot 中实现文件上传与管理非常简单,通过配置文件上传、创建文件上传、下载、列表和删除接口,我们可以轻松地处理文件操作,结合前端页面,可以提供一个完整的文件管理系统,这篇文章主要介绍了在Spring Boot中实现文件上传与管理,需要的朋友可以参考下
    2024-07-07
  • java实现倾斜水印铺满整张图

    java实现倾斜水印铺满整张图

    这篇文章主要为大家详细介绍了java实现倾斜水印铺满整张图的具体代码,教大家如何控制水印之间的空隙,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Java的Hibernate框架中的基本映射用法讲解

    Java的Hibernate框架中的基本映射用法讲解

    映射是Hibernate框架操作数据库数据的重要特性之一,这里我们来看一下Java的Hibernate框架中的基本映射用法讲解,包括最基本的单向一对一与多对一映射关系等:
    2016-07-07
  • 利用Java反射机制实现对象相同字段的复制操作

    利用Java反射机制实现对象相同字段的复制操作

    这篇文章主要介绍了利用Java反射机制实现对象相同字段的复制操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Java集合中的Iterator迭代器接口详解

    Java集合中的Iterator迭代器接口详解

    这篇文章主要介绍了Java集合中的Iterator迭代器接口详解,Iterator,被称为迭代器接口,本身并不提供存储对象的能力,主要用于遍历Collection中的元素,需要的朋友可以参考下
    2023-11-11
  • java的==运算符和equals操作详解

    java的==运算符和equals操作详解

    在Java中,==和equals都是用于比较两个对象的操作符,但它们的行为和用途有所不同,这篇文章主要介绍了java的==运算符和equals的相关知识,需要的朋友可以参考下
    2024-08-08
  • Jackson的用法实例分析

    Jackson的用法实例分析

    这篇文章主要介绍了Jackson的用法实例分析,用于处理Java的json格式数据非常实用,需要的朋友可以参考下
    2014-08-08

最新评论