精华内容
下载资源
问答
  • ribbon: ReadTimeout: 60000 ConnectTimeout: 60000
    ribbon:
      ReadTimeout: 60000
      ConnectTimeout: 60000
    展开全文
  • 1consul 服务发现在使用了几次之后终于感受到了这个系统挺好的了。 在个小的团队里面,要做服务发现,做的简单高效。 可以直接使用 consul 作为服务发现,服务检查的系统。 不用自己去开发了。真的很方便,...

    1,consul 服务发现


    在使用了几次之后终于感受到了这个系统挺好的了。
    在一个小的团队里面,要做服务发现,做的简单高效。
    可以直接使用 consul 作为服务发现,服务检查的系统。
    不用自己去开发了。真的很方便,只要部署下就可以了。
    github 上放了代码,都是很简单的。
    https://github.com/freewebsys/grpc-go-demo

    2,重新研究consul启动


    发现之前是使用dig 进行操作的,因为consul官方网站也是推荐使用的。
    但是其实可以使用ping ,nslookup 也是一样的。
    但是需要修改consul的端口。

    consul agent -dev -ui -server -node=consul-dev -client=10.0.2.15 -dns-port=53 -domain=freeweb.consul 

    -dns-port=53 是将consul伪装成一个dns服务器。
    -domain=freeweb.consul 是设置自己域。
    这样就可以伪装成一个dns服务器了。
    有些时候觉得一个服务发现还要dns,感觉上多重啊。
    感觉上和dubbo的服务比起来好奇怪啊。
    但是正是因为这个dns才使得服务发现变的很简单了。
    并且使用dns也非常符合运维同学的胃口。
    他们也有很多办法保证dsn没有问题。

    使用go 创建 3个服务,其中第三个服务端口错误。

    func TestRegister(t *testing.T) {
    
        fmt.Println("test begin .")
        config := consulapi.DefaultConfig()
        //config.Address = "localhost"
        fmt.Println("defautl config : ", config)
        client, err := consulapi.NewClient(config)
        if err != nil {
            log.Fatal("consul client error : ", err)
        }
    
        //创建一个新服务。
        registration := new(consulapi.AgentServiceRegistration)
        registration.ID = Id + "01"
        registration.Name = "user-tomcat"
        registration.Port = 8080
        registration.Tags = []string{"group:user-tomcat-01"}
        registration.Address = "127.0.0.1"
    
        //增加check。
        check := new(consulapi.AgentServiceCheck)
        check.HTTP = fmt.Sprintf("http://%s:%d%s", registration.Address, registration.Port, "/check")
        //设置超时 5s。
        check.Timeout = "5s"
        //设置间隔 5s。
        check.Interval = "5s"
        //注册check服务。
        registration.Check = check
        log.Println("get registration : ", registration)
        err = client.Agent().ServiceRegister(registration)
        if err != nil {
            log.Fatal("register server error : ", err)
        }
    
        //设置第二个对象。注册两个tomcat。
        registration.ID = Id + "02"
        registration.Name = "user-tomcat"
        registration.Address = "10.0.2.15"
        registration.Tags = []string{"group:user-tomcat-02"}
        log.Println("get registration : ", registration)
        err = client.Agent().ServiceRegister(registration)
        if err != nil {
            log.Fatal("register server error : ", err)
        }
    
        //设置第3个对象。注册两个tomcat。
        registration.ID = Id + "03"
        registration.Name = "user-tomcat"
        registration.Address = "10.0.2.16"
        registration.Tags = []string{"group:user-tomcat-03"}
        check.HTTP = fmt.Sprintf("http://%s:%s%s", registration.Address, "8083", "/check")
        log.Println("get registration : ", registration)
        err = client.Agent().ServiceRegister(registration)
        if err != nil {
            log.Fatal("register server error : ", err)
        }
    }

    然后配置dns服务器:
    /etc/resolv.conf 中配置了多个 nameserver:

    nameserver 10.0.2.15

    在使用nslookup 命令:

    # nslookup  user-tomcat.service.freeweb.consul
    Server:         10.0.2.15
    Address:        10.0.2.15#53
    
    Name:   user-tomcat.service.freeweb.consul
    Address: 10.0.2.15
    Name:   user-tomcat.service.freeweb.consul
    Address: 127.0.0.1
    
    #也可以ping通了。
    # ping user-tomcat.service.freeweb.consul
    PING user-tomcat.service.freeweb.consul (10.0.2.15) 56(84) bytes of data.
    64 bytes from localhost.localdomain (10.0.2.15): icmp_seq=1 ttl=64 time=0.008 ms
    64 bytes from localhost.localdomain (10.0.2.15): icmp_seq=2 ttl=64 time=0.028 ms

    就可以发现只有2个tomcat服务了。

    3,一个简单的grpc+consul架构



    一个简单的grpc + consul 组成的架构就做好了。
    服务的注册,发现使用 consul,因为consul 自带check检查。
    如果服务没有了。自动会将服务摘除掉。
    服务rpc框架使用grpc,服务只是在每次链接的使用访问下consul的dns服务。
    连接上了之后 就是http2 二进制传输了,那个使用的是grpc的事情了。
    同时也方便开发了,配置好了dns就可以直接使用域名进行访问了。
    开发&运维也超级方便了。并且consul 也支持集群。
    dns服务器也可以配置多个consul。也方便运维。

    4,总结


    本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/60779640 未经博主允许不得转载。
    博主地址是:http://blog.csdn.net/freewebsys

    新的技术带来了新的理念。将开发运维变的更加的简单了。
    在公司要进行业务拆分的时候能最快的将注册中心,服务发现。
    都搭建好,而且还是简单高效的进行rpc开发。

    展开全文
  • Consul

    2021-09-13 18:39:48
    第一步:下载consul 官网:https://www.consul.io/downloads 这里选择windows版 第二步:解压后输入cmd 第三步:consul --version 如果出现如图信息,说明consul可以正常使用 第四步:启动consul 命令:consul ...

    Consul:服务的注册和配置中心

    第一步:下载consul
    官网:https://www.consul.io/downloads
    这里选择windows版

    第二步:解压后输入cmd
    在这里插入图片描述
    第三步:consul --version
    如果出现如图信息,说明consul可以正常使用

    在这里插入图片描述
    第四步:启动consul
    命令:consul agent -dev

    第五步:登录consul服务器端(8500)
    localhost:8500

    在这里插入图片描述

    第六步:将“提供方”“消费方”注册到Consul服务器端,使其成为consul服务
    服务提供方
    添加依赖:

    		<dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-consul-discovery</artifactId>
                <version>2.1.1.RELEASE</version>
            </dependency>
    

    修改pom文件:

    #Consul服务端口号
    server:
      port: 8006
    
    #Consul注册中心地址
    spring:
      application:
        name: consul-provider-payment
      cloud:
        consul:
          host: localhost
          port: 8500
          discovery:
            service-name: ${spring.application.name}
    

    创建业务类:
    及controller、service、mapper

    服务消费方

    添加依赖
    与提供方相同,都有consul依赖

    修改配置文件:
    与提供方相同,注意修改服务名

    创建配置类:

    package com.atguigu.springcloud.config;
    
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.client.RestTemplate;
    
    @Configuration
    public class ApplicationContextConfig {
    
        @Bean
        @LoadBalanced  //注意:如果没有此注解,无法消费方将无法通过服务名调用消费方
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
    }
    

    创建业务类:
    (这里重点介绍控制层)

    package com.atguigu.springcloud.controller;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    
    import javax.annotation.Resource;
    
    @RestController
    @Slf4j
    public class ConsulController {
        public static final String url = "http://consul-provider-payment";
    
        @Resource  //有时@Autowired会爆红(虽然不影响运行,但是看上去不舒服,@Resource原理一样)
        private RestTemplate restTemplate;
    
        @Value("${server.port}")
        private String serverPort;
    
        @GetMapping(value = "payment/consul")
        public String paymentConsul() {
            return restTemplate.getForObject(url+"/payment/consul",String.class);
        }
    }
    

    第七步:测试(完活!!!)

    展开全文
  • SpringCloud技术指南系列(五)服务注册发现之Consul服务调用 SpringCloud所谓的服务注册与发现,流程大致是: 将Springboot微服务客户端项目的地址等信息,通过网络发送到注册中心,由注册中心保存下来。 另...

    SpringCloud技术指南系列(五)服务注册发现之Consul服务调用

    SpringCloud所谓的服务注册与发现,流程大致是:

    • 将Springboot微服务客户端项目的地址等信息,通过网络发送到注册中心,由注册中心保存下来。

    • 另一个客户端B访问已经注册到注册中心的服务A,通过注册中心提供的域名解析方式,解析出服务A的地址等信息。

    • 如果提供服务A的客户端有多个,就按照某个策略(比如轮询、负载均衡等)选取一个地址返回。

    • 客户端B访问注册中心返回的地址,获取结果,这里注意,是B直接访问A,而不是注册中心转发,因此要保证B和A是互通的。

    目前服务发现的解决方案有Eureka,Consul,Zookeeper等,这三个是SpringCloud官方支持的。

    前几篇已经讲了如何搭建Eureka的服务注册发现,上篇介绍了Consul的服务注册。本篇讲下Consul的服务发现,使用两种方式进行服务发现。

    代码可以在SpringBoot组件化构建https://www.pomit.cn/java/spring/springcloud.html中的ConsulClient和ConsulFeign组件中查看,并下载。

    首发地址:

      品茗IT-同步发布

    品茗IT提供在线支持:

      一键快速构建Spring项目工具

      一键快速构建SpringBoot项目工具

      一键快速构建SpringCloud项目工具

      一站式Springboot项目生成

      Mysql一键生成Mybatis注解Mapper

      Mysql一键生成SpringDataRest项目

    如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。

    一、引入依赖

    需要引入spring-boot-starter-web和spring-cloud-starter-consul-discovery,因为要进行服务调用,所以要引入spring-cloud-starter-netflix-ribbon,如果要使用openfeign来进行服务调用,则可以引入spring-cloud-starter-openfeign。

    依赖如下:

    <?xml version="1.0"?>
    <project
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>cn.pomit</groupId>
    		<artifactId>springcloudwork</artifactId>
    		<version>0.0.1-SNAPSHOT</version>
    	</parent>
    	<artifactId>ConsulClient</artifactId>
    	<name>ConsulClient</name>
    	<url>http://maven.apache.org</url>
    
    	<properties>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    		<java.version>1.8</java.version>
    		<maven-jar-plugin.version>2.6</maven-jar-plugin.version>
    	</properties>
    	
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-consul-discovery</artifactId>
    		</dependency>
    		<!-- 使用ribbon时才用的上 -->
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    		</dependency>
    
                    <!-- 使用feign时才用的上 -->
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-openfeign</artifactId>
    		</dependency>
    	</dependencies>
    </project>
    
    

    父模块pom文件可以在https://www.pomit.cn/spring/SpringCloudWork/pom.xml获取。

    二、配置Consul服务注册发现

    这里使用yaml文件写配置,application.yml:

    server:
       port: 8812
    spring:
       application:
          name: consulClient
       cloud:
          consul:
             host: 127.0.0.1
             port: 8500
             discovery:
                prefer-ip-address: true
                healthCheckPath: /consul/health
    
    

    这里面,包含了端口、应用名、consul注册中心信息、注册方式、健康检查路径。

    spring.application.name是标识了应用名,注册到consul之后,显示的就是它。

    spring.cloud.consul.discovery.prefer-ip-address是使用ip地址,如果不写它,默认是域名,那样测试起来很麻烦。

    spring.cloud.consul.discovery.healthCheckPath这个,consul做健康检查的路径。

    spring.cloud.consul.port consul的端口。8500 端口基于 HTTP 协议,用于 API 接口或 WEB UI 访问。

    三、启动服务注册发现

    上一篇已经注册了一个服务:consulServer。这一篇我们可以注册两个consulClient和consulFeign,来访问consulServer的服务。

    在这里插入图片描述

    3.1 启动类

    使用@EnableDiscoveryClient注解启动类, @EnableDiscoveryClient是将项目作为客户端注册到注册中心的注解,开启服务发现功能。

    如果是使用Feign,需要加上@EnableFeignClients注解,开启Feign的使用

    ConsulClientApplication :

    package cn.pomit.springbootwork.consulclient;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.client.RestTemplate;
    
    //@EnableFeignClients
    @EnableDiscoveryClient
    @SpringBootApplication
    public class ConsulClientApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(ConsulClientApplication.class, args);
    	}
    	
    	@Bean
    	@LoadBalanced
    	RestTemplate restTemplate() {
    		return new RestTemplate();
    	}
    }
    
    

    这里的RestTemplate使用@LoadBalanced注解,我们跟踪RestTemplate的时候可以看到,RestTemplate多了个LoadBalancerInterceptor。

    3.2 健康检查

    不管是服务注册还是服务调用,都需要写健康检查接口。前面写了我们健康检查地址是/consul/health,这里要开放个接口,让consul来检查身体。

    package cn.pomit.springbootwork.consulclient.web;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/consul")
    public class HealthWeb {
    
    	@RequestMapping(value = "health", method = { RequestMethod.GET })
    	public String health() {
    		return "check health";
    	}
    	
    }
    
    

    3.3 Ribbon做服务调用

    如果我们使用Ribbon做服务调用,需要使用RestTemplate,这个RestTemplate是标识为负载均衡的。我们来调用上一篇提供的ip服务:

    IpInfoService :

    
    package cn.pomit.springbootwork.consulclient.service;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.ResponseEntity;
    import org.springframework.stereotype.Service;
    import org.springframework.web.client.RestTemplate;
    
    import cn.pomit.springbootwork.consulclient.model.ResultModel;
    
    @Service
    public class IpInfoService {
    	/**
    	 * 第一个consulServer是配置文件种的spring.application.name,第二个consulApi是controller中配置的路径
    	 */
    	public static String remoteIpServiceUrl = "http://consulServer/consulApi/ip";
    	@Autowired
    	private RestTemplate restTemplate;
    
    	public ResultModel getIpInfo() {
    		ResponseEntity<ResultModel> ipModel = restTemplate.getForEntity(remoteIpServiceUrl, ResultModel.class);
    		return ipModel.getBody();
    	}
    }
    
    

    这里,第一个consulServer是服务提供方配置文件种的spring.application.name,第二个consulApi是服务提供方的controller中配置的路径。我们使用统一的实体ResultModel进行数据接收转换。

    3.4 Feign做服务调用

    如果我们使用Feign做服务调用,写法就和controller中写法类似,需要注意的是,如果带参数,需要使用@RequestParam("")标识参数名 :

    IpInfoService :

    
    package cn.pomit.springbootwork.consulfeign.service;
    
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    
    import cn.pomit.springbootwork.consulfeign.model.ResultModel;
    
    @FeignClient("consulServer")
    public interface IpInfoService {
    	@RequestMapping(method = RequestMethod.GET, value = "/consulApi/ip", consumes = "application/json")
    	public ResultModel getIpInfo();
    }
    
    
    

    这里,@FeignClient中的consulServer是服务提供方配置文件种的spring.application.name,/consulApi/ip中的consulApi是服务提供方的controller中配置的路径。方法尽量和服务提供方的方法一样。

    3.5 测试Web

    ConsulClientRest :

    package cn.pomit.springbootwork.consulclient.web;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    import cn.pomit.springbootwork.consulclient.model.ResultModel;
    import cn.pomit.springbootwork.consulclient.service.IpInfoService;
    
    @RestController
    @RequestMapping("/consulClient")
    public class ConsulClientRest {
    	@Autowired
    	IpInfoService ipInfoService;
    	
    	@RequestMapping(value = "/ip", method = { RequestMethod.GET })
    	public ResultModel ip() {
    		return ipInfoService.getIpInfo();
    	}
    }
    
    
    

    四、过程中用到的实体

    过程中用到了ResultModel实体和ResultCode枚举类,是和上一篇中的实体对应的,作为统一的实体来用。

    ResultModel:

    
    

    ResultCode:

    
    

    其他完整实体可以在《品茗IT-SpringCloud技术指南系列(五)服务注册发现之Consul服务调用》查看。

    快速构建项目

    Spring组件化构建

    SpringBoot组件化构建

    SpringCloud服务化构建

    喜欢这篇文章么,喜欢就加入我们一起讨论SpringBoot使用吧!
    品茗IT交流群

    展开全文
  •     项目的DEMO代码:...Consul 是什么? 官网:https://www.consul.io/ ...Consul有多个组件,但总体而言,它是基础架构中的款服务发现和配置的工具。 它提供了几个关键功能: 服务发现 Con...
  • SpringCloud开始的二课() 、前提回顾 上文我们讲解了(RestTemplate、Eureka、Eureka集群、Ribbon负载均衡、Eureka节点服务剔除) 上文链接 接下来我们继续讲讲其他的微服务的知识示例 二、Eureka的替换方案...
  • 使用consul遇到的第一个问题

    千次阅读 2018-08-07 19:58:51
    项目中使用到了consul;自己先新建个项目了解一下consul; 情况如下: 新建个springboot项目,引入consul依赖和lombok依赖 &lt;dependency&gt; &lt;groupId&gt;org.projectlombok&lt;/groupId...
  • consul简介

    千次阅读 2018-10-12 21:54:42
    目录 Consul 简介 Consul 的使用场景 Consul 的优势 Consul 的角色 consul cluster集群架构图 ...Consul常用命令 ...Consul个分布式高可用的系统,具有分布式、高可用、高扩展性。 Consul 简介 Con...
  • consul学习

    2021-04-20 20:48:31
    consul服务架构和核心概念 在官方提供的图中SERVER是consul服务端高可用集群,CLIENT是consul客户端。 图中存在两个数据中心:DATACENTER1、DATACENTER2。每个数据中心有3-5台server(该数量使得在故障转移和...
  • Consul DNS

    千次阅读 2018-06-12 15:43:06
    定义个服务 ...首先,为Consul配置创建个目录。Consul装载配置目录中所有的配置文件,通常在Unix系统中惯例是建立以名为 /etc/consul.d 的目录( .d 后缀暗示这个目录包含了一些配置文...
  • ConsulCONSUL环境部署

    千次阅读 2016-08-18 18:33:23
    Consul个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由HashiCorp公司用Go语言开发,基于Mozilla Public License 2.0的协议进行开源。Consul支持健康检查,并允许HTTP和DNS协议调用 API 存储...
  • 在过去的年中,我非常喜欢使用Consul处理与服务发现有关的所有事情。 如果您正在执行微服务,那么您可能会遇到这样的问题:当您创建的服务数量增加时,管理所有这些服务之间的通信变得越来越困难。 领事非常适合...
  • Consul Architecture

    2018-12-24 11:23:57
    Consul个复杂的系统,有许多不同的运动部件。为了帮助Consul的用户和开发人员形成其工作原理的心理模型,该页面记录了系统架构。   Glossary(词汇表) 在描述架构之前,我们提供术语表以帮助澄清正在讨论的...
  • Consul入门

    2019-06-19 13:36:40
    Consul介绍 1.1 Consul是什么? Consul是HashiCorp公司推出的开源工具,是使用Go语言实现的分布式系统的服务发现与配置管理中心服务。它具有以下优点: 基于raft协议,语法简洁; 支持健康检查和HTTP、DNS...
  • ConsulConsul架构-简介

    万次阅读 2016-08-27 17:51:47
    Consul个复杂的系统,有许多不同的移动部件。为了帮助用户和Consul的开发人员更深入的了解consul是如何工作的,本文介绍consul的系统架构。
  • Consul 使用

    万次阅读 2017-06-29 09:46:13
    官网Document https://www.consul.io/docs/index.html 、介绍 ...Consul有很多组件,但总的来说,它...(1)服务发现:Consul的客户端可以“provide”个service,例如api或mysql,其他客户端可以使用Consul
  • 首先学习consul之前,我们应该看看consul的官网,对它有个初步的认识。 1. consul 官网 (https://www.consul.io) 2. consul 简介 consul是google开源的个使用go语言开发的服务发现、配置管理中心服务。...
  • Consul文档

    千次阅读 2018-01-03 08:21:00
    、安装 Consul Consul 的安装很简单,安装 Consul 有以下两种方式: - 使用预编译的二进制文件 - 使用源代码安装  下载个预编译的二进制文件是最简单的,我们通过TLS和SHA256总和提供下载来验证二进制文件...
  • Consul初体验

    2019-10-09 16:44:20
    文章目录Consul是什么Consul的使用场景Consul的优势Consul角色Consul工作原理Consul安装Consul启动Consul作为注册中心使用构建服务端程序构建消费端Consul作为配置中心使用 Consul是什么 Cousul是个支持多数据中...
  • 1. consul的基本介绍在分布式架构中,服务治理是个重要的问题。在没有服务治理的分布式集群中,各个服务之间通过手工或者配置的方式进行服务关系管理,遇到服务关系变化或者增加服务的时候,人肉配置极其麻烦且...
  • Consul入门手册

    2019-11-20 22:46:49
    Consul个服务发现和配置工具,它是分布式和高可用的,而且极易扩展。 Consul主要提供了以下特性: 服务发现:Consul使得服务注册和服务发现(通过DNS或HTTP接口)变得非常简单。 健康检查...
  • 目录1.前言2.开发环境3.Springcloud环境搭建4.注册中心之Eureka4.1 Eureka服务端4.2 Eureka客户端4.3 启动及访问5.注册中心之Consul5.1 Consul简单介绍5.1 docker安装Consul及启动5.3 Consul启动及访问6. Spring...
  • consul介绍

    2018-06-05 15:05:00
    consul个支持多数据中心分布式高可用,用于服务发现和配置共享的工具。consul与其它工具的不同,官方介绍如下: https://www.consul.io/intro/vs/index.html http://thesecretlivesofdata.com/raft/ consul的...
  • Consul7-注销掉consul无效服务

    千次阅读 2019-09-14 09:43:32
    当我们在Spring Cloud应用中使用Consul来实现服务治理时,由于Consul不会自动将不可用的服务实例注销掉(deregister),这使得在实际使用过程中,可能因为一些操作失误、环境变更等原因让...所以这篇注意来了...
  • consul原理

    2019-10-03 07:19:05
    阅读目录 、使用Consul做服务发现的若干姿势 ...启动第1个Server节点,集群要求要有3个Server,将容器8500端口映射到主机8900端口,同时开启管理界面 启动第2个Server节点,并加入集群 启动第3个Se...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,469
精华内容 3,787
关键字:

consul第一调用