consul

详解consul的安装和配置

隐身守侯 提交于 2019-12-04 20:44:12
Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现。支持外部 SaaS 提供者等。 consul提供的一些关键特性: service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册。 health checking:健康检测使consul可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。 key/value storage:一个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方操作。 multi-datacenter:无需复杂的配置,即可支持任意数量的区域(数据中心)。 官方网站: https://www.consul.io/ 系统环境:CentOS release 6.5 (Final) x64 consul最新版的下载地址 https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip 下载解压,里面只有一个consul可执行文件,执行 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [root@localhost consul-0.6.4]#

微服务Consul系列之服务注册与服务发现

梦想与她 提交于 2019-12-04 20:43:26
在进行服务注册之前先确认集群是否建立,关于服务注册可以看上篇 微服务Consul系列之集群搭建 的介绍,两种注册方式:一种是注册HTTP API、另一种是通过配置文件定义,下面讲解的是基于后者配置文件定义的形式,也是Consul官方所建议的方式。 准备工作 以下是上节做Consul集群的时候列的机器列表,下面我们将192.168.6.131机器安装了Node服务,起了两个端口 机器 模式 节点名称 192.168.6.128 Server consul_1(初始设置为Leader) 192.168.6.129 Server consul_2 192.168.6.130 Server consul_3 192.168.6.131 Client consul_4 服务一:order_service $ curl http://192.168.6.131:3010/health ok 服务二:user_service $ curl http://192.168.6.131:3011/health ok 服务注册 对order_service、user_service两个服务在consul_4节点上进行服务定义,配置中包含了服务的名称、地址、端口以及每10秒中对服务进行一次健康检查。 注册服务一:order_service order_service.json { "service":{

微服务Consul系列之集群搭建

左心房为你撑大大i 提交于 2019-12-04 20:43:17
在上一篇中讲解了 Consul的安装、部署、基本 的使用,使得大家有一个基本的了解,本节开始重点Consul集群搭建,官方推荐3~5台Server,因为在异常处理中,如果出现Leader挂了,只要有超过一半的Server还处于活跃状态,consul就会重新选举新的Leader,保证集群可以正常工作。 准备工作 测试用建议本地搭建几台虚拟机用于调试,这里的虚拟机分别为3台Server模式,1台Client模式,共以下4台: 192.168.6.128 Server模式(初始设置为Leader) 192.168.6.129 Server模式 192.168.6.130 Server模式 192.168.6.131 Client模式 下载相应平台版本的Consul解压copy至 /usr/local/bin/ (系统的环境变量)目录,这里以1.4.0版本为例,具体安装参照 上篇-consul下载安装指南 。 创建 /usr/src/consul 目录,存放Consul的启动配置文件 consul_config.json : { "datacenter": "consul_cluster", "node_name": "consul_1", "server": true, "bootstrap_expect": 3, "data_dir": "/usr/src/consul/data",

分布式中几种服务注册与发现组件的原理与比较

ε祈祈猫儿з 提交于 2019-12-04 20:11:06
Eureka、Consul、Zookeeper的基本原理与比较。 前言 在云计算和容器化技术发展火热的当下,对于微服务架构,服务注册与发现组件是必不可少的。在传统的服务架构中,服务的规模处于运维人员的可控范围内。当部署服务的多个节点时,一般使用静态配置的方式实现服务信息的设定。在微服务应用中,服务实例的数量和网络地址都是动态变化的,这对系统运维提出了巨大的挑战。因此,动态的服务注册与发现就显得尤为重要。 解决的问题 在一个分布式系统中,服务注册与发现组件主要解决两个问题:服务注册和服务发现。 服务注册:服务实例将自身服务信息注册到注册中心。这部分服务信息包括服务所在主机IP和提供服务的Port,以及暴露服务自身状态以及访问协议等信息。 服务发现:服务实例请求注册中心获取所依赖服务信息。服务实例通过注册中心,获取到注册到其中的服务实例的信息,通过这些信息去请求它们提供的服务。 除此之外,服务注册与发现需要关注监控服务实例运行状态、负载均衡等问题。 监控:微服务应用中,服务处于动态变化的情况,需要一定机制处理无效的服务实例。一般来讲,服务实例与注册中心在注册后通过心跳的方式维系联系,一旦心跳缺少,对应的服务实例会被注册中心剔除。 负载均衡:同一服务可能同时存在多个实例,需要正确处理对该服务的负载均衡。 CAP CAP原则,指的是在一个分布式系统中,Consistency(一致性)

How does a Consul agent know it is the leader of a cluster?

血红的双手。 提交于 2019-12-04 18:43:42
问题 In Consul you can have many agents as servers or clients. Amongst all servers one is chosen as the leader. From the agent's point of view, how does it know it is the leader? 回答1: The Consul leader is elected via an implementation of the Raft Protocol from amongst the Quorum of Consul Servers. Only Consul instances that are configured as Servers participate in the Raft Protocol communication. The Consul Agent (the daemon) can be started as either a Client or a Server. Only a Server can be the

consul first bootstrap with spring cloud config

随声附和 提交于 2019-12-04 17:28:23
Iam using spring-cloud-config for centralized configuration and consul for service discovery. Like eureka first bootstrap - does spring support consul first bootstrap i.e on booting up a client service - I should look up the config server through consul. The otherway round works perfectly fine i.e - in config client bootstrap.properties - I provide the spring.cloud.config.uri = http://localhost:8888 which located the config server and pulls config from it. And in the config repository for my client application - I provide the consul config like : spring.cloud.consul.host=localhost , spring

Windows服务器安装consul

隐身守侯 提交于 2019-12-04 15:19:41
最近看到surging框架,感觉比较好,想要学习研究一下。这个框架用到了consul,首先安装一下,我是在windows环境中安装。 一、consul简述 Consul是一个用来实现分布式系统的服务发现与配置的开源工具。他主要由多个组成部分: 服务发现: 客户端通过Consul提供服务,类似于API,MySQL,或者其他客户端可以使用Consul发现服务的提供者。使用类似DNS或者HTTP,应用程序和可以很轻松的发现他们依赖的服务。 检查健康: Consul客户端可以提供与给定服务相关的健康检查(Web服务器返回200 ok)或者本地节点(“内存利用率低于90%”)。这些信息可以监控集群的运行情况,并且使访问远离不健康的主机组件。 键值对存储: 应用程序可以使用Cousul的层级键值对。 多数据中心: Consul有开箱及用的多数据中心。 二、consul下载 1、下载地址: https://www.consul.io/downloads.html 2、下载说明:我选择的是Windows/64bit下载,这个根个人电脑位数选择不同的版本下载。 三、下载后配置 1、下载的文件是压缩档,先解压缩到你自己喜好的文件夹中,我是解压到:F:\consul_1.6.2_windows_amd64 2、配置环境变量,在path中最后面加上:F:\consul_1.6.2_windows

Consul 快速入门 - Kong最佳实践

风格不统一 提交于 2019-12-04 14:08:36
Consul是什么 Consul是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控)解决方案,它是一个一个分布式的,高度可用的系统,而且开发使用都很简便。它提供了一个功能齐全的控制平面,主要特点是:服务发现、健康检查、键值存储、安全服务通信、多数据中心。 安装Consul 这里提供两台Centos:local12,local13 安装方式: [root@local13 ~]# wget https://releases.hashicorp.com/consul/1.2.2/consul_1.2.2_linux_amd64.zip [root@local13 ~]# unzip consul_1.2.2_linux_amd64.zip [root@local13 ~]# ./consul Usage: consul [--version] [--help] <command> [<args>] # local12同上 运行Agent 安装Consul后必须运行Agent,可以选择服务器或客户端模式。每个数据中心至少有一个服务器(推荐3~5个服务器集群)。 简单起见,先启动一个Agent的开发模式: # Agent的开发模式 [root@local13 ~]# ./consul agent -dev ==> Starting Consul agent..

spring cloud: 使用consul来替换eureka

大憨熊 提交于 2019-12-04 14:06:44
eureka官方已经正式宣布:自2.0起不再维护该项目,并在 github 项目wiki 上放出了一段吓唬人的话: 大意就是:从2.x起,官方不会继续开发了,如果需要使用2.x,风险自负。但其实我觉得问题并不大,eureka目前的功能已经非常稳定,就算不升级,服务注册/发现这些功能已经够用。 如果想寻找替代方案的话,建议采用功能更为丰富的consul,除了服务注册、发现,consul还提供了k-v存储等其它功能,consul的官网针对其它同类软件也做了详细比较,详见 consul vs other software ,有兴趣的可以看看,特别是有一句话,翻译成大白话就是:我不是针对在座的各位,我想说除我之外其它的都是渣渣(足见其相当的自信!) 进入正题,先来看consul的部署安装: 一、集群规划 consul借助agent来运行,类似elk的logstash agent 或 zabbix监控系统的agent ,每个需要被发现的服务上,通过consul agent client 来收集服务本身的信息,然后向consul agent server汇报, consul server 可以集群部署。 规划一下: 序号  节点ip 节点名称 角色 1 10.0.xx.55 server1 server 2 10.0.xx.203 server2 server 3 10.0.xx.204