`
xiangdong_li
  • 浏览: 7383 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

consul

阅读更多

在使用的consul进行服务发现,项目整体的配置如下:

pom.xml

 

<?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">
    <groupId>com.curve</groupId>
    <version>1.0-SNAPSHOT</version>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>consul-server1</artifactId>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.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>
        <spring-cloud.version>Dalston.SR2</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-ribbon</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</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>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-consul-dependencies</artifactId>
                <version>${spring-cloud.version}</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>

 

 

application.yml

 

server:
  port: 0
spring:
  cloud:
    consul:
      port: 8500
      host: 127.0.0.1
      discovery:
        healthCheckInterval: 2s
        prefer-ip-address: true
  application:
    name: server

 

 

main方法

 

@SpringBootApplication
@EnableDiscoveryClient
public class ConsulServer1 {

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(ConsulServer1.class);
        application.run(args);
    }
}

 

 

调用服务main方法

 

@SpringBootApplication
@EnableDiscoveryClient
public class WebApiApp {
    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(WebApiApp.class);
        application.run(args);
    }

    @Bean
    @LoadBalanced
    public RestTemplate build() {
        return new RestTemplateBuilder().build();
    }
}

 

 

 

这里需要注意的地方:

1、调用方和被调用方都必须在consul中进行注册

2、Consul默认调用headler进行检测心跳。需要引入 spring-boot-actuator 进行被检测心跳;

3、同一个IP地址启动多份服务时,端口不可以设置成0(spring默认随机端口),不然会只能发现一个服务;

4、连接Consul时,进行调用服务的时候,resttemplate必须要进行 @LoadBalanced 注解

 

 

service

[Unit]
Description=Consul Server
After=network.target

[Service]
User=consul
Group=consul
Environment="GOMAXPROCS=2"
ExecStart=/usr/local/consul/bin/consul agent -config-dir=/etc/consul.d
ExecReload=/bin/kill -9 $MAINPID
KillSignal=SIGINT
Restart=on-failure
RestartSec=1

[Install]
WantedBy=default.target

 

JSON:

[root@dw-alpha-1-core-nj consul.d]# ll
total 8
-rw-r--r--. 1 consul consul  48 Jun 11 15:13 basic_config.json
-rw-r--r--. 1 consul consul 164 Jul 11 17:48 extra_config.json
[root@dw-alpha-1-core-nj consul.d]# cat basic_config.json 
{
  "data_dir": "/local/consul",
  "ui": true
}
[root@dw-alpha-1-core-nj consul.d]# cat extra_config.json 
{
  "datacenter": "dw-nj",
  "node_name": "dw-alpha-1-core-nj",
  "server": true,
  "bootstrap": true,
  "client_addr": "0.0.0.0",
  "bind_addr": "10.41.214.199"
}
[root@dw-alpha-1-core-nj consul.d]# 

 

分享到:
评论

相关推荐

    Consul Windows免安装版

    Consul是一款由HashiCorp公司开发的开源工具,主要用于实现分布式系统的服务发现、健康检查、配置共享和安全网络通信。在Windows操作系统上使用Consul,无论是Windows 10还是Windows 7,都能提供便捷的集群管理和...

    Consul安装升级.md

    ### Consul 安装与升级知识点 #### 一、Consul 安装目录规划 - **Consul 安装目录**: `/usr/local/consul-VERSION` (其中 `VERSION` 表示当前版本号),安装完成后,通过软链接指向 `/usr/local/consul`。 - **二...

    C# consul 服务注册发现及健康检查以及consul写的分布式锁的实例demo

    在 `WebApi.Consul.Demo` 或 `WebApi.Consul.Interface` 项目中,我们可能看到使用 Consul 客户端进行服务发现的代码,通过调用 `Catalog.ServiceGet()` 或 `Health.ServicePassing()` 来获取服务列表或检查服务健康...

    consul客户端本地开发

    Consul是由HashiCorp公司开发的一款开源工具,用于实现分布式系统的服务发现与配置。在本地进行Consul客户端的开发和测试对于构建微服务架构至关重要。本文将深入探讨如何使用Consul客户端进行服务注册和发现,以及...

    consul(windows)安装包

    Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现、配置和服务网格功能。它提供了一套完整的解决方案,包括服务发现、健康检查、KV 存储、多数据中心的解决方案,广泛应用于微服务架构...

    consul(windows下持久化)

    Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现、配置管理和健康检查。在 Windows 操作系统环境下,Consul 的配置文件默认情况下并不具备持久化存储的特性,这意味着一旦服务器重启或...

    consul 中文开发指南

    Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 ...

    consul中文版帮助文档

    Consul是一款由HashiCorp公司开发的开源工具,主要用于实现分布式系统的服务发现、配置管理和安全通信。这个“Consul中文版帮助文档”很显然是为了帮助中国用户更好地理解和使用Consul而准备的。以下是对Consul及其...

    consul下载包(Linux、Windows)

    Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现与配置。它提供了包括服务发现、健康检查、KV 存储、多数据中心的解决方案,广泛应用于微服务架构中。让我们深入了解一下 Consul 的...

    springcloud整合nacos和consul

    SpringCloud作为一个流行的微服务框架,提供了多种服务发现组件,如Nacos和Consul。本篇文章将深入探讨如何在SpringCloud项目中整合这两种服务发现工具。 **Nacos** Nacos是阿里巴巴开源的一款服务发现和配置管理...

    最新版windows consul_1.13.0_windows_amd64.zip

    Consul 是 HashiCorp 公司推出的一款开源工具,它提供了服务发现、健康检查、KV 存储、安全网络配置等功能,广泛应用于微服务架构中。这个压缩包 "最新版windows consul_1.13.0_windows_amd64.zip" 提供的是 Consul ...

    c#:Ocelot集成Consul初体验

    在本文中,我们将深入探讨如何在C#项目中集成Ocelot与Consul,以便实现微服务间的通信和治理。Ocelot是一个用C#编写的API Gateway,它提供了简单的API路由、负载均衡和熔断等功能,而Consul则是一个用于服务发现和...

    consul启动不成功解决方案

    Consul是一款由HashiCorp公司开发的开源工具,主要用于实现分布式系统的服务发现与配置。它提供了包括服务发现、健康检查、KV存储、多数据中心的解决方案。然而,在实际使用过程中,有时会遇到Consul无法正常启动的...

    consul-1.6.1-win-64.zip

    Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现与配置。这个压缩包“consul-1.6.1-win-64.zip”提供了 Consul 的1.6.1版本,专为在Windows 64位操作系统上运行而设计。在IT领域,服务...

    consul_1.9.0_linux_amd64.zip

    Consul 是 HashiCorp 公司推出的一款开源工具,用于实现分布式系统的服务发现与配置。在微服务架构中,服务发现是至关重要的,Consul 提供了一种简单易用的方式来解决这个问题。它不仅包含了服务发现的功能,还集成...

    mac x86 consul的安装与启动

    国内不能下载了,得翻墙!...1.解压后执行命令 sudo scp consul /usr/local/bin/。 2.在bin目录下执行consul命令,输出相关命令表示安装成功。 3.启动consul,执行命令consul agent -dev 4.启动后访问地址: ...

    consul_0.7.5_linux_amd64.zip

    Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现、健康检查、KV 存储和多数据中心的解决方案。在本文中,我们将深入探讨 Consul 的核心功能、工作原理以及如何在 Linux 系统上安装和...

    consul_1.9.2_linux_amd64.zip

    Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现与配置。这个压缩包“consul_1.9.2_linux_amd64.zip”包含了 Consul 的最新版本1.9.2,适用于 Linux 操作系统的 AMD64 架构。由于官方...

    consul_1.4.3_windows_amd64.zip

    Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现、配置和服务网格功能。这个压缩包 "consul_1.4.3_windows_amd64.zip" 提供的是 Consul 的 1.4.3 版本,专为基于 AMD64 架构(64 位)...

    consul_exporter-0.7.0.linux-amd64.tar.gz

    《Consul Exporter与Prometheus服务发现详解》 在现代云原生环境中,监控系统扮演着至关重要的角色,其中Prometheus作为一款强大的时序数据库和监控系统,深受开发者喜爱。而Consul Exporter则是在Prometheus生态...

Global site tag (gtag.js) - Google Analytics