zoukankan      html  css  js  c++  java
  • springcloud之consul

    1.consul简介

    Consul是一个基于CP的轻量级分布式高可用的系统,提供服务发现、健康检查、K-V存储、多数据中心等功能,不需要再依赖其他组件(Zk、Eureka、Etcd等)。

    服务发现:Consul可以提供一个服务,比如api或者MySQL之类的,其他客户端可以使用Consul发现一个指定的服务提供者,并通过DNS和HTTP应用程序可以很容易的找到所依赖的服务。
    健康检查:Consul客户端提供相应的健康检查接口,Consul服务端通过调用健康检查接口检测客户端是否正常
    K-V存储:客户端可以使用Consul层级的Key/Value存储,比如动态配置,功能标记,协调,领袖选举等等
    多数据中心:Consul支持开箱即用的多数据中心

    2.consul安装

    使用docker进行安装

    1) 拉取consul镜像

    docker pull consul:1.6.1 # 拉取指定版本

    2) 安装并运行

    docker run -d -p 8500:8500 --restart=always --name=consul consul:latest agent -server -bootstrap -ui -node=1 -client='0.0.0.0'

    3) 开放8500端口号

    然后访问 http://ip:8500 即可看到consul图形化界面,则代表安装成功

    3.服务提供者

    3.1 安装依赖

        <dependencies>
            <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-consul-discovery -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.gh.springcloud</groupId>
                <artifactId>cloud-api-commons</artifactId>
                <version>${project.version}</version>
            </dependency>
    
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
    
        </dependencies>

    3.2 编写application.yml

    server:
      port: 8006
    
    
    spring:
      application:
        name: consul-provider-payment
      cloud:
        consul:
          host: 39.99.33.230
          port: 8500
          discovery:
            heartbeat:
              enabled: true
            service-name: ${spring.application.name}
            prefer-ip-address: true

    3.主启动类

    @SpringBootApplication
    @EnableDiscoveryClient
    public class PaymentMain8006 {
        public static void main(String[] args) {
            SpringApplication.run(PaymentMain8006.class,args);
        }
    }

    4.启动项目

    启动项目即可看到服务被注册进consul

    一点点学习,一丝丝进步。不懈怠,才不会被时代所淘汰!

  • 相关阅读:
    C++调用C#类库函数
    C# DataSet转JSON
    抽象工厂模式
    工厂方法模式
    简单工厂模式
    jsp页面中的EL表达式不被解析org.apache.jasper.JasperException: Unable to convert string [${item.createtime}]
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory'
    mybatis第二天
    MyBatis入门
    js自动访问数据库
  • 原文地址:https://www.cnblogs.com/fqh2020/p/15082943.html
Copyright © 2011-2022 走看看