Spring Cloud 使用 k8s 作为注册中心 开发环境 和 生产环境
    		       		warning:
    		            这篇文章距离上次修改已过421天,其中的内容可能已经有所变动。
    		        
        		                
                Spring Cloud 使用 Kubernetes 作为服务注册中心,通常涉及到 Spring Cloud Kubernetes 项目。在开发环境和生产环境中,配置可能会有所不同,但基本步骤相似。
- 在开发环境中,你可以使用 Spring Cloud Kubernetes 功能,它利用 Kubernetes 的服务和端点来自动配置服务到服务的通信。
- 在生产环境中,你可能会使用外部注册中心,如 Eureka 或 Consul,并将 Kubernetes 仅用作部署平台。
以下是一个基本的示例,展示如何在开发环境中使用 Spring Cloud Kubernetes 来自动配置服务发现和负载均衡。
pom.xml 依赖:
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-kubernetes</artifactId>
    </dependency>
    <!-- 其他依赖 -->
</dependencies>application.yml 配置:
spring:
  cloud:
    kubernetes:
      discovery:
        enabled: true
        service-label: app服务消费者配置:
@Configuration
public class Config {
 
    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder.build();
    }
 
}服务消费者调用:
@RestController
public class ConsumerController {
 
    @Autowired
    private RestTemplate restTemplate;
 
    @Autowired
    private DiscoveryClient discoveryClient;
 
    @GetMapping("/call")
    public String call() {
        ServiceInstance instance = discoveryClient.getInstances("provider-service").get(0);
        return restTemplate.getForObject("http://" + instance.getHost() + ":" + instance.getPort() + "/hello", String.class);
    }
}在开发环境中,你通常不需要额外的配置,因为所有的服务实例都在同一个 Kubernetes 集群中。在生产环境中,你需要一个外部注册中心,并且可能需要额外的配置来指定注册中心的地址。
评论已关闭