spring-cloud-openfeign调用kubernates服务


spring-cloud-starter-openfeign应用可以利用openfeign直接调用Eureka里注册的微服务。然而,随着K8S的壮大,大家更加喜欢用K8S来管理自己的微服务,本文分享怎样利用spring-cloud-openfeign客户端调用部署在K8S中的微服务。本文假设微服务已经部署为:http://iisp-base.irmp.ibm.cc/

1. 配置feignClient

@SpringBootApplication
@EnableFeignClients
public class WebApplication {

	public static void main(String[] args) {
		SpringApplication.run(WebApplication.class, args);
	}

	@Bean
	public Client feignClient() {
		return new Client.Default(null, null);
	}
	
	@Bean
	Logger.Level feignLoggerLevel() {
		return Logger.Level.BASIC;
	}
}

2. 编写feign客户端

@FeignClient(name = "${spring.service.root}/iisp-base")
public interface BaseServiceRemote extends BaseService {

}

另外,也可以采用FeignClient的url属性,如果有url,则spring openfeign框架不会把URL当作是serviceId去查找的。

@FeignClient(name = "BaseService", url = "${spring.service.root}/iisp-base")

3. 配置服务的根路径

在application.properties中:

spring.service.root=http://router-ip/service

通过上面的配置,当客户端要访问BaseService的API时,服务的URL指向了:
http://router-ip/service/iisp-base/xxxapi…
其中router-ip是微服务路由器的IP地址。

4. 配置apache代理

在微服务路由器上的apache配置文件httpd.conf文件中添加如下的proxy配置:

ProxyPass  /service/iisp-base http://iisp-base.irmp.ibm.cc/iisp-base

这样,上面的url就会被转向到:
http://iisp-base.irmp.ibm.cc/iisp-base/xxxapi…
这个地址就是文章开头部署到K8S中的微服务的地址。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值