Consul 简介
Consul包含很多组件,总体来数,Consul是一种服务发现和配置工具。
- 服务发现:一个客户端提供自己的服务,例如api服务,或者mysql服务,另一个客户端就可以利用Consul通过DNS或者http来发现这些服务的提供者。
- 健康检查:Consul可以提供多种(script 、http、tcp、ttl)健康检查。结合服务发现。
- K/V存储:动态配置、一致性协调、leader选举、特征标记等,Consul的HTTP的API使开发者更好的使用。
- 多数据中心:Consul创造性的提供了多数据中心机制。这就意味着使用者不必在创建多余的虚拟层来应用多个分区。
Consul数据结构
- Consul是分布式的(P),高可用系统(A)。
- 每一个Consul服务提供节点,都运行着一个Consul代理,Consul代理并不意味着必须发现其它的服务,或者进行相应的数据操作,代理只需要对健康检查负责。
- 代理连接一个或者多个Consul服务端,Consul服务端存储,复制数据,选取leaader。虽然Consul服务端可以单例运行,但是通常建议每个数据中心3到5个实例集群运行,以防数据丢失。
区别zookeeper:
- zookeeper提供临时节点来用于服务发现,当服务断开时,临时节点删除。这种服务发现机制比心跳检测更精致,复杂,但是同样也有一些固有的扩展性问题和增加客户端复杂性,所有的服务端都必须维持同zookeeper的活动连接。
- Consul的服务发现机制非常不同,Consul在集群的每一个节点都运行一个客户端,这些客户端就是gossip pool(分布式健康检查 分布式健康检查)的一部分,gossip协议实现在服务宕机发现上很高效,无论服务集群中服务数多少,Consul可以通过简单的检查服务返回200状态来进行健康检查。
Consul 简介的更多相关文章
- Consul 简介、安装、常用命令的使用
1 Consul简介 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul的方案更"一站式" ...
- Consul 简介及集群安装
简介 Consul是基于GO语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册.服务发现和配置管理的功能. Consul的功能都很实用,其中包括:服务注册/发现.健康检查.Key/Value ...
- 我是服务的执政官-服务发现和注册工具consul简介
服务发现和注册 我们有了两个服务.服务A的IP地址是192.168.0.1,端口9001,服务B的IP地址192.168.0.2,端口9002.我们的客户端需要调用服务A和服务B,我们只需要在配置文件 ...
- 第一章 consul简介
1.consul的作用 服务发现 Consul clients提供服务(例如API) 其他的client发现服务的提供者(通过DNS或http,应用可以轻松的发现他们所依赖的服务) 健康检查 Key- ...
- 2-1 Consul简介
Consul英文意思是大使馆. Consul主要干3件事情: 1.提供服务到ip地址的注册. 2.提供服务到ip地址列表的查询. 3.对提供服务方的健康检查. Consul官网 :https://ww ...
- 服务注册发现(一) Consul 简介及 windows版本的安装与部署
Consul是一个用来实现分布式系统的服务发现与配置的开源工具.他主要由多个组成部分: 服务发现:客户端通过Consul提供服务,类似于API,MySQL,或者其他客户端可以使用Consul发现服务的 ...
- 基于 Consul 的 Docker Swarm 服务发现
Docker 是一种新型的虚拟化技术,它的目标在于实现轻量级操作系统的虚拟化.相比传统的虚拟化方案,Docker 虚拟化技术有一些很明显的优势:启动容器的速度明显快于传统虚拟化技术,同时创建一台虚拟机 ...
- .NET Core微服务之基于Consul实现服务治理
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Consul基础介绍 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发 ...
- ASP.NET Core 微服务初探[1]:服务发现之Consul
ASP.NET Core 微服务初探[1]:服务发现之Consul 在传统单体架构中,由于应用动态性不强,不会频繁的更新和发布,也不会进行自动伸缩,我们通常将所有的服务地址都直接写在项目的配置文件 ...
随机推荐
- 【题解】洛谷P1896 [SCOI2005] 互不侵犯(状压DP)
洛谷P1896:https://www.luogu.org/problemnew/show/P1896 前言 这是一道状压DP的经典题 原来已经做过了 但是快要NOIP 复习一波 关于一些位运算的知识 ...
- 关于session序列化和session钝化和活化
在第一次启动服务器后,在session中放入一个对象.在页面可以获得,当重启服务器,但是没有关闭浏览器的情况下刷新页面仍然能够获得这个对象,前提是这个对象必须实现了java.io.Serializab ...
- jquery特效 点击某项,其它隐藏
<html> <head> </head> <body> <script> $(function(){ $(".cPage a&q ...
- (二、下) springBoot 、maven 、mysql、 mybatis、 通用Mapper、lombok 简单搭建例子 《附项目源码》
接着上篇文章中 继续前进. 一.在maven 的pom.xm中添加组件依赖, mybatis通用Mapper,及分页插件 1.mybatis通用Mapper <!-- mybatis通用Mapp ...
- SpringMVC——笔记
使用 @RequestMapping 映射请求 Spring MVC 使用@RequestMapping 注解为控制器指定可以处理那些URL请求. 在控制器的类定义及方法定义处都可以标注 @Reque ...
- chromium之dynamic_annotations
看看介绍 // This file defines dynamic annotations for use with dynamic analysis // tool such as valgrind ...
- MySQL学习【第三篇用户管理】
一.用户管理 1.给mysql用户设密码以及删除用户 1.给mysql的root用户设置密码 [root@db02 scripts]# mysqladmin -uroot -p password '1 ...
- (Nagios)-check_openmanage[Dell]
Nagios->check_openmanage[Dell R7*] 2014年11月13日 下午 07:44 需求介绍: 透过Nagios监控Dell R7系列服务器硬件状态 环境信息: ...
- 数据库与python的连接
db=web.database( dbn="mysql", host="localhost", port=3306, user="root" ...
- JavaScript 中 this 的原理
一.问题 学习 JavaScript 其中一个标志就是理解下面两种写法,会输出有不一样的结果. var obj = { foo: function () {} }; var foo = obj.foo ...