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

  • 相关阅读:
    Puppet部署
    ldap命令
    openldap slapd.conf参数
    ldap objectclass
    ldap 测试表设计
    Nginx/LVS/HAProxy负载均衡软件的优缺点
    SNAT DNAT MASQUERADE 区别
    iptables常用规则
    Python中文注释报错的解决方法
    用Node.js给邮箱发送邮件
  • 原文地址:https://www.cnblogs.com/Mhang/p/12547567.html
Copyright © 2011-2022 走看看