Springboo实现feign客户端和服务端功能例子

以下是一个使用Spring Boot和Feign实现客户端和服务端通信的简单例子。

一,首先,建立服务端,服务端注册到服务中心,创建一个服务端应用:

//注意application.properties配置文件中定义应用的
//服务名为 my-service 即spring.application.name=my-service,
//提供客户端在服务注册中心中寻找该名称服务名

@SpringBootApplication
public class MyServiceApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(MyServiceApplication.class, args);
    }
 
	// 简易的服务端接口定义,一般定义在另外文件
    @RestController
    public class MyController {
 
        @GetMapping("/hello")
        public String hello() {
            return "Hello from Service!";
        }
    }
}

二,其次,建立客户端应用,客户端也注册到服务中心,创建一个Feign客户端:

1,客户端应用添加相关依赖到pom.xml:

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

2,在Spring Boot应用中启用Feign功能:

@EnableFeignClients // 客户端应用启动类启动feign服务
@SpringBootApplication
public class MyClientApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(MyClientApplication.class, args);
    }
}

3,创建Feign客户端接口:

// path 属性定义统一前缀,根据需要设置,可以为空
@FeignClient("my-service",contextId="uniqueCxtKey1", path="") 
public interface MyServiceClient {
 
    @GetMapping("/hello")
    String hello();
	
	// more api define expand...
}

4,使用Feign客户端:

@RestController
public class MyController {
 
    @Autowired
    private MyServiceClient myServiceClient;
 
    @GetMapping("/greeting")
    public String greeting() {
        return myServiceClient.hello();
    }
}

5,配置请求超时:
客户端请求服务端走服务间的网络请求,客户端需要配置合理超时x毫秒配置,确保调用高可用;

feign:
  client:
    config:
      default:
        connectTimeout: 5000
        readTimeout: 5000

在这个例子中,创建了一个简单的服务端应用,并定义了一个/hello端点。然后,我们创建了一个客户端用和Feign接口,用于向服务端发送请求。在客户端的控制器中,我们注入了Feign客户端,并使用它来获取服务端的响应。

确保你的服务端应用是可访问的,并且在配置文件中设置了正确的服务名称(例如,在application.properties中使用spring.application.name=my-service),这样Feign客户端可以通过服务名称正确地发现和访问服务端。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值