Spring Cloud Consul

Spring Cloud Consul提供了Consul的整合,Spring Boot应用通过自动配置和绑定环境和其他spring模型风格。用一个简单的注释,你可以在你的应用中快速启用常见模式配置,并构建大型分布式系统,这些组件是经过Netflix公司生产环境考验的。该模式包括服务发现,分布式配置和控制总线。

For full documentation visit spring cloud consul.

Features

Spring Cloud Consul features:

  • 服务发现:实例可以用Consul代理端注册,客户端可以发现使用Spring管理bean实例。
  • 支持Ribbon,利用Spring Cloud Netflix实现客户端负载均衡。
  • 支持Zuul,利用Spring Cloud Netflix实现动态路由和过滤。
  • 分布式配置:利用Consul的Key/Value存储。
  • 控制总线:使用Consul事件处理分布式控制事件

Quick Start

项目中使用spring-cloud-consul推荐基于一个依赖管理系统 — 下面的代码段可以被复制和粘贴到您的构建。需要帮助吗?看看我们基于MavenGradle构建的入门指南。

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-consul-all</artifactId>
  5. </dependency>
  6. </dependencies>
  7. <dependencyManagement>
  8. <dependencies>
  9. <dependency>
  10. <groupId>org.springframework.cloud</groupId>
  11. <artifactId>spring-cloud-consul-dependencies</artifactId>
  12. <version>1.0.1.RELEASE</version>
  13. <type>pom</type>
  14. <scope>import</scope>
  15. </dependency>
  16. </dependencies>
  17. </dependencyManagement>

只要classpath中包含 Spring Cloud Consul和Consul API,所有应用了 @EnableDiscoveryClient注解的Spring Boot应用将尝试连接Consul的代理服务http://localhost:8500spring.cloud.consul.host and spring.cloud.consul.port默认值)

  1. @Configuration
  2. @EnableAutoConfiguration
  3. @EnableDiscoveryClient
  4. @RestController
  5. public class Application {
  6. @RequestMapping("/")
  7. public String home() {
  8. return "Hello World";
  9. }
  10. public static void main(String[] args) {
  11. SpringApplication.run(Application.class, args);
  12. }
  13. }

本地Consul代理的运行. 参见Consul agent documentation.

Sample Projects

Consul Sample