consul

Consul系列(二):安装和使用

寵の児 提交于 2020-01-13 21:36:23
一、安装 简单粗暴,直接上干货。 安装解压upzip yum install -y unzip 创建目录 mkdir /usr/local/consul/ 官网下载 : https://www.consul.io ,版本1.5.1,上传到 /usr/local/consul/目录 解压文件 unzip consul_1.5.1_linux_amd64.zip 重命名文件 mv consul /usr/local/consul/ 创建目录,存放数据 mkdir /etc/consul.d 命令写到全局变量中 cd /usr/local/consul/ echo 'export PATH=/usr/local/consul/:$PATH' >> /etc/profile 加载配置文件 source /etc/profile 启动 主节点 /usr/local/consul/consul agent -server -bootstrap-expect 2 -ui -node=node100 -config-dir=/etc/consul.d --data-dir=/etc/consul.d -bind=192.168.1.100 -client 0.0.0.0 其他节点 /usr/local/consul/consul agent -server -bootstrap-expect 2

使用C# 和Consul进行分布式系统协调

爷,独闯天下 提交于 2020-01-13 02:17:06
随着大数据时代的到来,分布式是解决大数据问题的一个主要手段,随着越来越多的分布式的服务,如何在分布式的系统中对这些服务做协调变成了一个很棘手的问题。今天我们就来看看如何使用C# ,利用开源对分布式服务做协调。 在对分布式的应用做协调的时候,主要会碰到以下的应用场景: 业务发现(service discovery) 找到分布式系统中存在那些可用的服务和节点 名字服务 (name service) 通过给定的名字知道到对应的资源 配置管理 (configuration management) 如何在分布式的节点中共享配置文件,保证一致性。 故障发现和故障转移 (failure detection and failover) 当某一个节点出故障的时候,如何检测到并通知其它节点, 或者把想用的服务转移到其它的可用节点 领导选举(leader election) 如何在众多的节点中选举一个领导者,来协调所有的节点 分布式的锁 (distributed exclusive lock) 如何通过锁在分布式的服务中进行同步 消息和通知服务 (message queue and notification) 如何在分布式的服务中传递消息,以通知的形式对事件作出主动的响应 Consul Consul 是用Go开发的分布式服务协调管理的工具,它提供了服务发现,健康检查,Key/Value存储等功能

.NetCore Cap 注册 Consul 服务发现

耗尽温柔 提交于 2020-01-11 20:18:39
注册服务发现 需要使用Cap中的UseDiscovery方法 具体用法如下 var capConsulConfig = Configuration.GetSection("CapConsulConfig").Get<CapConsulConfig>(); if (capConsulConfig.UseConsul) { capOptions.UseDiscovery(discovery => { discovery.CurrentNodeHostName = capConsulConfig.CurrentNodeHostName; discovery.CurrentNodePort = capConsulConfig.CurrentNodePort; discovery.DiscoveryServerHostName = capConsulConfig.DiscoveryServerHostName; discovery.DiscoveryServerPort = capConsulConfig.DiscoveryServerPort; discovery.NodeId = capConsulConfig.NodeId; discovery.NodeName = capConsulConfig.NodeName; discovery.MatchPath =

Consul 介绍

送分小仙女□ 提交于 2020-01-11 07:27:45
Consul 介绍 Consul是一个分布式、高可用性,在基础设施中发现和配置服务的工具。 主要功能 服务发现 通过DNS或HTTP接口使得消费者发现服务,应用程序可以轻松找到所依赖的服务。 健康检查 防止将请求转发不健康的主机。 键值存储 可以使用分层键/值存储,比如功能标记、动态配置等。 多数据中心 开箱即用,不需要复杂的配置。这就意味这不用建立抽象的逻辑来扩展多个地区。 1) Consul agent是Consul核心工作,分为client和server两种工作模式。 默认以client模式运行,提供服务注册、健康检查、转发查询给server leader。 server模式启动时使用-server选项指定,用于维护Consul集群状态、Raft协议进行选举。 2) agent必须在每个Consul节点运行,所有运行Consul agent节点构成Consul集群。 3) 官方建议Consul集群至少3或5个节点运行Consul agent server模式,client节点不限。 4) 通过join或rejoin选项加入集群。一旦加入,集群信息使用gossip算法同步到整个集群节点。 Consul集群部署 如图,左边三台Consul agent server 集群通过选举,选出一台Leader。来管理右边的client。获取集群状态信息。 Consul agent

微服务之consul

╄→尐↘猪︶ㄣ 提交于 2020-01-10 15:04:37
一、概述 consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server和client。每个数据中心官方建议需要3或5个server节点以保证数据安全,同时保证server-leader的选举能够正确的进行。 @client CLIENT表示consul的client模式,就是客户端模式。是consul节点的一种模式,这种模式下,所有注册到当前节点的服务会被转发到SERVER,本身是不持久化这些信息。 @server SERVER表示consul的server模式,表明这个consul是个server,这种模式下,功能和CLIENT都一样,唯一不同的是,它会把所有的信息持久化的本地,这样遇到故障,信息是可以被保留的。 @server-leader 中间那个SERVER下面有LEADER的字眼,表明这个SERVER是它们的老大,它和其它SERVER不一样的一点是,它需要负责同步注册的信息给其它的SERVER,同时也要负责各个节点的健康监测。 @raft server节点之间的数据一致性保证,一致性协议使用的是raft

Consul 常用指令

我与影子孤独终老i 提交于 2020-01-10 01:56:01
Consul 常用指令 # 通告地址 -advertise # 集群节点之间通信地址 -bind # 设置服务器为bootstrap模式。在一个dc中只有一个server处于bootstrap模式。一般初始化第一台Consul时指定,自选举为leader。 -bootstrap # 在一个dc中期望提供server节点数目,consul会一直等到指定的server数目才会引导整个集群,选举leader。不能与boostrap同时用。 -bootstrap-expect # 设置客户端访问地址,包括RPC、DNS。默认127.0.0.1 -client # 从JSON配置文件中读取 -config-file # 指定存放agent server集群状态目录,以免系统重启丢失 -data-dir # 数据中心名称,默认dc1 -dc # HTTP API监听端口 -http-port # 加入一个已经启动的agent,可以指定多个agent地址 -join # 节点名称,必须在集群中唯一的。默认是主机名 -node # 忽略先前的离开,再次启动后尝试加入集群 -rejoin # 切换agent模式到server模式。每个集群至少有一个server -server # 启用内置的Web UI -ui # Web UI的资源目录 -ui-dir 来源: https://www

多节点之间docker互联

夙愿已清 提交于 2020-01-08 19:37:10
多节点之间docker互联 docker原生态overlay模式 内置跨主机的网络通信实现思路无非有两种二层 VLAN网络 和 Overlay网络 二层VLAN网络解决跨主机通信的思路是把原先的网络架构改造为互通的大二层网络,通过特定网络设备直接路由,实现容器点到点的之间通信。(优点:传输效率比overlay高,缺点:vlan端口有限,通用性和灵活性欠缺) Overlay网络是指在不改变现有网络基础设施的前提下,通过某种约定通信协议,把二层报文封装在IP报文之上的新的数据格式。能够充分利用成熟的IP路由协议进程数据分发;在Overlay技术中采用扩展的隔离标识位数,能够突破VLAN的4000数量限制支持高达16M的用户,并在必要时可将广播流量转化为组播流量,避免广播数据泛滥。 网卡设备 ``` Container eth0:eth0它是Overlay网络分配的唯一的IP地址,它是veth pair虚拟设备对,作用是实现点对点的通信,通过桥接到br0这个网桥中,可以实现不同 NameSwitch之间容器进行通信。 br0:它是Overlay默认创建的网桥。 VETP:对VXLAN数据包的封装与街封装。 Container eth1:eth1是容器主机的默认网络,主要提供容器访问外网所提供的服务,走的默认docker网络架构,只不过他创建了docker_gwbridge这个网桥。

docker上搭建consul集群全流程

橙三吉。 提交于 2020-01-08 13:25:48
原文: docker上搭建consul集群全流程 consul简介: consul是提供服务发现、简单配置管理、分区部署的服务注册发现解决方案。 主要特性:服务发现\健康检查\基于Key-Value的配置\支持TLS安全通讯\支持多数据中心部署 consul的实例叫agent agent有两种运行模式:server和client 每个数据中心至少要有一个server,一般推荐3-5个server(避免单点故障) client模式agent是一个轻量级进程,执行健康检查,转发查询请求到server。 服务service是注册到consul的外部应用,比如spring web server consul架构: 1. 在docker上安装consul(默认安装最新版本) docker pull consul 2. 启动第一个consul服务:consul1 docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul:1.2.2 agent -server -bootstrap-expect 2 -ui -bind=0.0.0.0 -client=0.0.0.0 8500 http 端口,用于 http 接口和 web ui 8300 server

立足于SpringCloud.H + consul-config服务配置中心(20)

允我心安 提交于 2020-01-07 14:44:24
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 《SpringCloud.H心法总纲》 继续上一篇 ,在consul-provider子模块的基础上,实现服务配置功能,代替config-server和config-client的组件。 1、pom依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-config</artifactId> </dependency> 2、新建bootstrap.properties 因为bootstrap配置文件的执行顺序是优于application配置文件,所以下面这些配置放到bootstrap文件中。 # consul-config配置 # 设置config是否启用,默认为true spring.cloud.consul.config.enabled=true # 设置配置的值的格式,可以yaml和properties spring.cloud.consul.config.format=yaml # 设置配的基本目录,比如config spring.cloud.consul.config.prefix=config # 应用配置的key名字,值为整个应用配置的字符串

立足于SpringCloud.H + consul-discovery + feign服务发现(19)

可紊 提交于 2020-01-06 21:01:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 《SpringCloud.H心法总纲》 继续上一篇 ,新建子模块consul-consumer服务发现,对服务注册模块consul-provider调用。 1、创建子模块consul-consumer <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> 继承父模块daddy,修改pom <parent> <groupId>com.springcloud</groupId> <artifactId