`
357029540
  • 浏览: 739426 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

史上最简单的 SpringCloud 教程 | 第十四篇: 服务注册(consul)

阅读更多

转载自:

http://blog.csdn.net/forezp/article/details/70245644 
本文出自方志朋的博客

 

这篇文章主要介绍 spring cloud consul 组件,它是一个提供服务发现和配置的工具。consul具有分布式、高可用、高扩展性。

一、consul 简介

consul 具有以下性质:

  • 服务发现:consul通过http 方式注册服务,并且服务与服务之间相互感应。
  • 服务健康监测
  • key/value 存储
  • 多数据中心

consul可运行在mac windows Linux 等机器上。

二、consul安装

linux

$ 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

四、参考资料

HashiCorp/consul

Spring Cloud Consul

consul.io

分享到:
评论

相关推荐

    SpringCloudLearning_forezp.tar.gz

    史上最简单的 SpringCloud 教程 | 第十四篇: 服务注册(consul) 七、番外篇: 如何使用MongoDB+Springboot实现分布式ID? 如何在springcloud分布式系统中实现分布式锁? 如何用Redlock实现分布式锁 如何在IDEA启动多个...

    springCloud项目练习

    第一课: 服务的注册与发现(Eureka) 第二课: 服务消费者(rest+ribbon) 第三课: 服务消费者(Feign) 第四课: 断路器(Hystrix) 第五课: 路由网关(zuul) 第六课: 分布式配置中心... 第十四课: 服务注册(consul)

    SpringCloud——服务注册(consul)

    综上所述,Spring Cloud通过整合Consul,提供了一种高效且强大的服务注册与发现方案。开发者可以通过HTTP API或DNS接口轻松地进行服务交互,同时利用Consul的健康检查和多数据中心特性,确保服务的高可用性和可扩展...

    《最容易学懂的Spring Cloud教程源码》

    《最简单的SpringCloud教程》系列: Spring Cloud 2020.0.x版本教程 SpringCloud 2020版本教程0:springcloud 2020版本概述 SpringCloud 2020版本教程1:使用nacos作为注册中心和配置中心 SpringCloud 2020版本教程2...

    10Spring Cloud Consul:服务治理与配置中心1

    Spring Cloud Consul 通过 Consul 提供了服务治理功能,包括服务注册、服务发现、服务调用等。 2. 客户端负责均衡:Spring Cloud Consul 支持客户端负责均衡,包括 Ribbon 和 Spring Cloud LoadBalancer。Ribbon 是...

    Spring Cloud Consul中文文档.pdf

    - **服务注册与发现**:Spring Cloud Consul 使用 HTTP API 进行服务注册和发现。这意味着 Spring Cloud 应用可以通过 Consul 来发现并调用其他服务。 - **Consul 服务集群**:Consul 服务运行在一个集群环境下,...

    springcloud-consul DEMO

    标题"springcloud-consul DEMO"表明我们将关注的是Spring Cloud框架与Consul服务发现和配置管理工具的结合。描述中提到,这是一个包含生产者和消费者两端的实例代码,它利用了Feign和Hystrix这两个关键组件,同时...

    Spring Cloud Zuul带注册中心Consul

    - **服务注册**:每个微服务启动时,向Consul注册自己的元数据,包括服务名、端口等。 - **服务发现**:Zuul启动时或运行时,会定期从Consul拉取服务列表,根据服务名进行路由转发。 - **动态路由**:当服务实例...

    Spring Cloud Consul服务提供方集成Jersy和Mybatis完成示例

    在Spring Cloud中,Consul被用作服务注册中心,使得服务提供方和服务消费者能相互找到并通信。 Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。在本示例中,Mybatis将用于处理与数据库的...

    Spring Cloud Consul Consumer

    在Spring Cloud框架中,使用Consul作为服务注册中心的步骤通常包括: 1. **添加依赖**:在项目中引入Spring Cloud对Consul的支持,即`spring-cloud-starter-consul-discovery`依赖。 2. **配置Consul**:在`...

    springcloud整合nacos和consul

    在`spring-cloud-lidong-example`这个示例项目中,你可以看到具体的代码实现,包括如何配置和使用Nacos或Consul进行服务注册与发现。通过研究这个例子,你可以更好地理解这两个工具在SpringCloud中的实际应用。

    Spring Cloud Consul服务消费方集成JSP和Mybatis完成示例

    这个项目的核心在于利用Spring Cloud的发现机制,通过Consul来管理服务注册与发现,同时通过Mybatis进行数据库操作,而JSP则负责展示视图。 首先,我们需要了解Spring Cloud Consul。Consul是一款由HashiCorp公司...

    spring cloud 教程 pdf

    Spring Cloud是一个全面的微服务开发工具集,它简化了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)上构建服务的复杂性。...

    spring-cloud使用的各种示例

    - [Spring Cloud (十四):Spring Cloud 开源软件都有哪些?](http://www.ityouknow.com/springcloud/2018/08/06/spring-cloud-open-source.html) - [springcloud(十五):服务网关 Spring Cloud GateWay 初级篇]...

    Spring Cloud Consul With Jersy

    1. **服务注册**:Spring Cloud Consul允许Spring Boot应用在启动时自动注册到Consul服务器上,这样其他服务就能通过Consul找到并调用这些服务。 2. **服务发现**:其他服务可以通过Consul查询到已经注册的服务,...

    Spring Cloud 系列脚手架项目,面向 Spring Cloud 初学者

    Spring Cloud 和队列的其他框架一样,说到底只是一个工具。其实没有什么涉及可言,只要花点时间实践一下...服务注册发现、配置中心集一体的Spring Cloud Consul :源码 Spring Cloud系列之 Spring Cloud Stream :源码

    springcloud getaway 动态路由.doc

    SpringCloud Gateway 提供了默认的 InMemoryRouteDefinitionRepository,但通常我们会使用配置中心(如 Apache ZooKeeper、Consul 或者 Spring Cloud Config)来存储和更新路由信息,以便实现动态更新。 2. **...

    Dubbo和Spring Cloud微服务架构对比——服务注册和发现.docx

    ### Dubbo和Spring Cloud微服务架构对比——服务注册和发现 #### 微服务架构概述 在当前快速发展的软件行业中,微服务架构作为一种重要的设计模式,已经被广泛采纳。它通过将复杂的单体应用拆分为一系列相互独立的...

    spring-cloud-consul.zip

    在Spring Cloud中,Consul作为注册中心,能够帮助微服务实例向中心注册,从而实现服务的动态发现和管理。 在Windows 64位环境下,"consul.bat"是Consul的启动脚本,通过运行这个脚本,我们可以启动一个Consul服务器...

    尚硅谷SpringCloud第2季2020版.mmap

    一篇很好的springCloud学习的思维导读,详细的介绍了,springCloud的搭建步骤以及各组件的说明讲解 涵盖 Eureka服务注册与发现 Zookeeper服务注册与发现 Consul服务注册与发现 Ribbon负载均衡服务调用 OpenFeign...

Global site tag (gtag.js) - Google Analytics