spring-cloud-openfeign调用kubernates服务

spring-cloud-openfeign调用kubernates服务

    • 1. 配置feignClient
    • 2. 编写feign客户端
    • 3. 配置服务的根路径
    • 4. 配置apache代理

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中的微服务的地址。

你可能感兴趣的:(spring-cloud,kubernates)