zoukankan      html  css  js  c++  java
  • Consul服务注册与发现

    一、基本介绍

    ​ Consul 是一套开源的分布式发现和配置管理系统,由 Hashicorp 公司使用Go语言开发,官网https://www.consul.io,中文文档地址 https://www.springcloud.cc/spring-cloud-consul.html 。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能可以单独使用,也可以构建全方位的服务网络。

    二、下载安装

    1、下载

    ​ 进入官网后,点击Download下载页,也可以直接点击链接 https://www.consul.io/downloads.html 下载。进入下载页后根据自己的系统版本选择下载对应的安装包。

    2、将下载的文件解压,解压后只有一个文件 consul.exe 。

    3、在解压目录的文件夹下打开命令行窗口,输入 consul --version 便可以查看该版本信息。

    4、在命令行可以通过 consul agent -dev 使用开发模式启动,默认端口为 8500,在浏览器地址栏输入http://localhost:8500便可以访问到consul控制界面。

    三、服务注册

    1、新建一个服务提供者模块,修改pom文件。

    <dependencies>
           <!--引入consul server-->
           <dependency>
               <groupId>org.springframework.cloud</groupId>
               <artifactId>spring-cloud-starter-consul-discovery</artifactId>
           </dependency>
           <!--引入自己定义的包-->
           <dependency>
               <groupId>com.xhanglog.springcloud</groupId>
               <artifactId>cloud-api-commons</artifactId>
               <version>${project.version}</version>
           </dependency>
           <!--spring 整合web组件-->
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-web</artifactId>
           </dependency>
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-actuator</artifactId>
           </dependency>
           <!--热部署-->
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-devtools</artifactId>
               <scope>runtime</scope>
               <optional>true</optional>
           </dependency>
           <dependency>
               <groupId>org.projectlombok</groupId>
               <artifactId>lombok</artifactId>
               <optional>true</optional>
           </dependency>
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-test</artifactId>
               <scope>test</scope>
           </dependency>
       </dependencies>
    

    2、写application.yml 文件

    server:
     # 8006表示注册到consul服务器的支付服务提供者端口号
     port: 8006
    spring:
     application:
       # 服务别名---注册consul到注册中心的名称
       name: cloud-provider-payment
     cloud:
       consul:
         host: localhost
         port: 8500
         discovery:
           service-name: ${spring.application.name}
    

    3、在主启动类上加注解 @EnableDiscoveryClient。

    4、启动项目,在浏览器输入地址可以发现该服务以及被注册。

    5、消费者服务同以上步骤一样。

    四、CAP原则

    ​ CAP原则指的是一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

    • AP架构:当网络分区出现后,为保证可用性,系统B可以返回旧值,保证系统的可用性。Eureka就是一种AP架构。
    • CP架构:当网络分区出现后,为保证一致性,就必须拒绝请求,返回错误信息或提示。Zookeeper和Consul就是一种CP架构,当服务断掉之后,马上把服务中剔除。

    案例代码地址:https://github.com/xhanglog/springcloud-learning

  • 相关阅读:
    LeetCode 81 Search in Rotated Sorted Array II(循环有序数组中的查找问题)
    LeetCode 80 Remove Duplicates from Sorted Array II(移除数组中出现两次以上的元素)
    LeetCode 79 Word Search(单词查找)
    LeetCode 78 Subsets (所有子集)
    LeetCode 77 Combinations(排列组合)
    LeetCode 50 Pow(x, n) (实现幂运算)
    LeetCode 49 Group Anagrams(字符串分组)
    LeetCode 48 Rotate Image(2D图像旋转问题)
    LeetCode 47 Permutations II(全排列)
    LeetCode 46 Permutations(全排列问题)
  • 原文地址:https://www.cnblogs.com/Mhang/p/12547567.html
Copyright © 2011-2022 走看看