转载自:
http://blog.csdn.net/forezp/article/details/70245644
本文出自方志朋的博客
这篇文章主要介绍 spring cloud consul 组件,它是一个提供服务发现和配置的工具。consul具有分布式、高可用、高扩展性。
一、consul 简介
consul 具有以下性质:
- 服务发现:consul通过http 方式注册服务,并且服务与服务之间相互感应。
- 服务健康监测
- key/value 存储
- 多数据中心
consul可运行在mac windows Linux 等机器上。
二、consul安装
$ mkdir -p $GOPATH/src/github.com/hashicorp && cd $! $ git clone https://github.com/hashicorp/consul.git $ cd consul $ make bootstrap $ make bootstrap
windows下安装:
见consul怎么在windows下安装
三、构建工程
构建一个consul-miya的springboot工程,导入依赖pring-cloud-starter-consul-discovery,其依赖文件:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.forezp</groupId> <artifactId>consul-miya</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>consul-miya</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
在其入口文件ConsulMiyaApplication加入注解@EnableDiscoveryClient,开启服务发现:
@SpringBootApplication @EnableDiscoveryClient @RestController public class ConsulMiyaApplication { @RequestMapping("/hi") public String home() { return "hi ,i'm miya"; } public static void main(String[] args) { new SpringApplicationBuilder(ConsulMiyaApplication.class).web(true).run(args); } }
在其配置文件application.yml指定consul服务的端口为8500:
spring: cloud: consul: host: localhost port: 8500 discovery: healthCheckPath: ${management.contextPath}/health healthCheckInterval: 15s instance-id: consul-miya application: name: consul-miya server: port: 8502
启动工程,访问localhost:8500,可以发现consul-miya被注册了。
源码下载:
https://github.com/forezp/SpringCloudLearning/tree/master/chapter14
相关推荐
史上最简单的 SpringCloud 教程 | 第十四篇: 服务注册(consul) 七、番外篇: 如何使用MongoDB+Springboot实现分布式ID? 如何在springcloud分布式系统中实现分布式锁? 如何用Redlock实现分布式锁 如何在IDEA启动多个...
第一课: 服务的注册与发现(Eureka) 第二课: 服务消费者(rest+ribbon) 第三课: 服务消费者(Feign) 第四课: 断路器(Hystrix) 第五课: 路由网关(zuul) 第六课: 分布式配置中心... 第十四课: 服务注册(consul)
综上所述,Spring Cloud通过整合Consul,提供了一种高效且强大的服务注册与发现方案。开发者可以通过HTTP API或DNS接口轻松地进行服务交互,同时利用Consul的健康检查和多数据中心特性,确保服务的高可用性和可扩展...
《最简单的SpringCloud教程》系列: Spring Cloud 2020.0.x版本教程 SpringCloud 2020版本教程0:springcloud 2020版本概述 SpringCloud 2020版本教程1:使用nacos作为注册中心和配置中心 SpringCloud 2020版本教程2...
Spring Cloud Consul 通过 Consul 提供了服务治理功能,包括服务注册、服务发现、服务调用等。 2. 客户端负责均衡:Spring Cloud Consul 支持客户端负责均衡,包括 Ribbon 和 Spring Cloud LoadBalancer。Ribbon 是...
- **服务注册与发现**:Spring Cloud Consul 使用 HTTP API 进行服务注册和发现。这意味着 Spring Cloud 应用可以通过 Consul 来发现并调用其他服务。 - **Consul 服务集群**:Consul 服务运行在一个集群环境下,...
标题"springcloud-consul DEMO"表明我们将关注的是Spring Cloud框架与Consul服务发现和配置管理工具的结合。描述中提到,这是一个包含生产者和消费者两端的实例代码,它利用了Feign和Hystrix这两个关键组件,同时...
- **服务注册**:每个微服务启动时,向Consul注册自己的元数据,包括服务名、端口等。 - **服务发现**:Zuul启动时或运行时,会定期从Consul拉取服务列表,根据服务名进行路由转发。 - **动态路由**:当服务实例...
在Spring Cloud中,Consul被用作服务注册中心,使得服务提供方和服务消费者能相互找到并通信。 Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。在本示例中,Mybatis将用于处理与数据库的...
在Spring Cloud框架中,使用Consul作为服务注册中心的步骤通常包括: 1. **添加依赖**:在项目中引入Spring Cloud对Consul的支持,即`spring-cloud-starter-consul-discovery`依赖。 2. **配置Consul**:在`...
在`spring-cloud-lidong-example`这个示例项目中,你可以看到具体的代码实现,包括如何配置和使用Nacos或Consul进行服务注册与发现。通过研究这个例子,你可以更好地理解这两个工具在SpringCloud中的实际应用。
这个项目的核心在于利用Spring Cloud的发现机制,通过Consul来管理服务注册与发现,同时通过Mybatis进行数据库操作,而JSP则负责展示视图。 首先,我们需要了解Spring Cloud Consul。Consul是一款由HashiCorp公司...
Spring Cloud是一个全面的微服务开发工具集,它简化了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)上构建服务的复杂性。...
- [Spring Cloud (十四):Spring Cloud 开源软件都有哪些?](http://www.ityouknow.com/springcloud/2018/08/06/spring-cloud-open-source.html) - [springcloud(十五):服务网关 Spring Cloud GateWay 初级篇]...
1. **服务注册**:Spring Cloud Consul允许Spring Boot应用在启动时自动注册到Consul服务器上,这样其他服务就能通过Consul找到并调用这些服务。 2. **服务发现**:其他服务可以通过Consul查询到已经注册的服务,...
Spring Cloud 和队列的其他框架一样,说到底只是一个工具。其实没有什么涉及可言,只要花点时间实践一下...服务注册发现、配置中心集一体的Spring Cloud Consul :源码 Spring Cloud系列之 Spring Cloud Stream :源码
SpringCloud Gateway 提供了默认的 InMemoryRouteDefinitionRepository,但通常我们会使用配置中心(如 Apache ZooKeeper、Consul 或者 Spring Cloud Config)来存储和更新路由信息,以便实现动态更新。 2. **...
### Dubbo和Spring Cloud微服务架构对比——服务注册和发现 #### 微服务架构概述 在当前快速发展的软件行业中,微服务架构作为一种重要的设计模式,已经被广泛采纳。它通过将复杂的单体应用拆分为一系列相互独立的...
在Spring Cloud中,Consul作为注册中心,能够帮助微服务实例向中心注册,从而实现服务的动态发现和管理。 在Windows 64位环境下,"consul.bat"是Consul的启动脚本,通过运行这个脚本,我们可以启动一个Consul服务器...
一篇很好的springCloud学习的思维导读,详细的介绍了,springCloud的搭建步骤以及各组件的说明讲解 涵盖 Eureka服务注册与发现 Zookeeper服务注册与发现 Consul服务注册与发现 Ribbon负载均衡服务调用 OpenFeign...