consul

docker consul 环境搭建

别说谁变了你拦得住时间么 提交于 2019-12-05 23:57:27
和 etcd 类似,consul 也是一个高可用的分布式 kv 系统,并且提供了比 etcd 更丰富的功能,自带 ui 界面 consul 有客服端模式(client)和服务端模式(server),在实际的部署中会在每个客户端机器上部署一个本地 client, server 的数据会同步到 client,服务直接和本地 client 交互,有效地减少了网络通信 搭建 consul 服务 version: "3.5" services: consul: hostname: consul image: consul:1.6.1 deploy: replicas: 1 restart_policy: condition: on-failure # ports: # - "8500:8500" # - "8600:8600" user: root volumes: - "/var/docker/consul/data:/consul/data" environment: - CONSUL_BOOTSTRAP_EXPECT=1 - CONSUL_CLIENT_LAN_ADDRESS=0.0.0.0 - CONSUL_ENABLE_UI=true - CONSUL_ENABLE_SERVER=true networks: - consulnet networks: consulnet:

Spring Cloud微服务运维神器之Consul Template?

时光总嘲笑我的痴心妄想 提交于 2019-12-05 21:23:06
Spring Cloud微服务架构浅析 这篇文章中要和大家分享下的就是在Spring Cloud微服务架构模式中被运维小哥用的很爽的一个工具 Consul Template ? 在具体介绍Consul Template是个什么东西之前,我们先来整体看一张微服务模式下的系统架构图,如下图所示: 在上图中,我们看到在基于Spring Cloud的微服务体系中,所有的微服务都会被注册到统一服务注册中心进行服务管理,这里使用的服务注册中心是Consul。假设在正常情况下,我们面向C端用户设计了一套微服务逻辑,用户端App通过域名访问后端微服务逻辑,而访问的调用链路是通过将公网域名透过DNS解析到我们的Nginx反向代理服务器,而Nginx服务器则需要将请求打到我们的Api Gateway微服务网关(如Zuul或Spring Cloud Gateway)上。之后,Api Gateway就会根据客户端访问的具体服务路径,将请求透过Consul的服务发现转发到具体的微服务中,例如访问订单微服务相关的接口Api Gateway就会将请求打到订单微服务中。 而我们知道在Spring Cloud微服务系统中,虽然Api Gateway网关服务本身并没有什么业务逻辑,除了进行服务路由外,也就只是通过编写过滤器实现一些常见的服务鉴权之类的逻辑,但其本身与其他微服务一样都是被注册中心管理的

consul实现分布式锁

让人想犯罪 __ 提交于 2019-12-05 20:36:15
分布式一致性问题: # 分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可 在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如 分布式事务 、 分布式锁 等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行 分布式锁: # 是在分布式系统之间同步访问共享资源的一种方式。 不同的系统或者同一个系统不同的主机共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰,从而保证数据的一致性,怎么保证数据的一致性,就用到了分布式锁 那么用锁来解决资源抢占时,又有哪些问题: # 1、死锁 # 死锁是在并发编程中理论上都会出现的问题 什么是死锁: 抢占资源的各方,彼此都在等待对方释放资源,以便自己能获取系统资源,但是没有哪一方退出,这时候就死锁了 产生死锁的4个条件: 互斥条件 不可抢占条件 占用并申请条件 循环等待条件 解决方法: 解决死锁的问题只要解决了上面的4个条件之一即可。那怎么解决呢?

Consul之:key/value存储

十年热恋 提交于 2019-12-05 20:19:41
key/value作用 动态修改配置文件 支持服务协同 建立leader选举 提供服务发现 集成健康检查 除了提供服务发现和综合健康检查,Consul还提供了一个易于使用的键/值存储。这可以用来保存动态配置,协助服务协调,建立领导人选举,并启用其他开发人员可以想构建的任何其他内容。 有两种方法可以使用:通过HTTP API和通过CLI API。 一、使用CLI API操作key/value 1、consul kv get 查询 D:\soft\worksoft\consul_1.0.6_windows_amd64>consul kv get redis/config/minconns Error! No key exists at: redis/config/minconns 你将看到没有结果返回,由于KV存储中没有该键返回了一个错误,接下来我们将插入或”put”一个值到KV存储中。 2、consul kv put增加key/value D:\soft\worksoft\consul_1.0.6_windows_amd64>consul kv put redis/config/minconns 1 Success! Data written to: redis/config/minconns 现在再次查询该键你将看到如下结果: D:\soft\worksoft\consul_1.0

consul配置参数大全、详解、总结

与世无争的帅哥 提交于 2019-12-05 19:55:20
命令行选项 以下选项全部在命令行中指定。 -advertise - 通告地址用于更改我们通告给集群中其他节点的地址。 默认情况下, -bind 地址是通告的。 但是,在某些情况下,可能存在无法绑定的可路由地址。 这个标志使闲聊不同的地址来支持这一点。 如果此地址不可路由,则节点将处于持续振荡状态,因为其他节点会将非可路由性视为故障。 在Consul 1.0和更高版本中,这可以设置为 go-sockaddr 模板。 -advertise-wan - 广告WAN地址用于更改我们向通过WAN加入的服务器节点发布的地址。 这也可以在与 translate_wan_addrs 配置选项 结合使用时在客户端代理上设置 。 默认情况下, -advertise 地址是通告的。 但是,在某些情况下,所有数据中心的所有成员都不能位于同一个物理或虚拟网络上,尤其是混合云和专用数据中心的混合设置。 该标志使服务器节点能够通过WAN的公共网络闲聊,同时使用专用VLAN来相互闲聊以及彼此的客户端代理,并且如果远程数据中心是远程数据中心,则允许客户端代理在从远程数据中心访问时访问此地址配置 translate_wan_addrs 。 在Consul 1.0和更高版本中,这可以设置为 go-sockaddr 模板 -bootstrap - 该标志用于控制服务器是否处于“引导”模式。 每个 数据中心 最多 只能运行

consul多数据中心搭建 【h】

我们两清 提交于 2019-12-05 19:43:44
自建IDC后面简称own、阿里云机房ali、腾讯云机房tx own机房:内网10.10.10.0/24,边界节点,10.10.10.100/101.xxx.80.xxx ali机房:内网10.10.10.0/24,边界节点,10.10.10.100/xxx.43.xxx.50 tx机房:内网10.10.10.0/24,边界节点,10.10.10.100/xxx.159.xxx.35 1、server、client节点部署 所有节点的consul服务均由supervisord守护管理。 idc机房配置3个server模式的节点,其它的均是client模式的节点,server和client配置各举例一个 server模式:(边界server节点的配置稍有不同,后面详细介绍): 123456789101112 [program:consul_server]command=/usr/local/consul/bin/consul agent -server -bootstrap-expect 3 -data-dir /usr/local/consul/data/ -config-dir /usr/local/consul/config/ -node=own-server02 -bind=10.10.10.105 -dc=xxx-ownprocess_name=%(process_num

consul配置和使用

耗尽温柔 提交于 2019-12-05 19:15:05
一:consul介绍 # consul用于提供服务发现和服务配置的工具。有以下特性: 1. 服务发现 consul的客户端提供一个服务,比如api或者mysql,另外一个客户端就可以去发现指定服务的服务提供者。通过DNS或者HTTP应用程序可以容易找到所依赖的服务 2. 健康检查 consul 可以提供健康检查服务(比如:webserver是否返回了200 ok状态码)或者使用本地节点(比如:内存使用大于90%)。这个信息可以监视集群的健康。可以用来避免将流量发送到不健康的主机 3.key/value 存储 应用程序可以使用consul的层级的key/value存储,比如动态配置,协调服务。直接可以用HTTP API来操作 4.多数据中心 consul支持开箱即用的多数据中心。 二:consul安装配置 # consul的安装非常容易,直接到 https://www.consul.io/downloads.html 下载你所在平台的安装包,可以直接下载二进制包, 然后unzip解压,会得到一个 consul 的文件,然后把它 cp 到/usr/local/bin 目录下 验证安装:在终端下直接输入 consul ,输出下面的内容说明安装成功 Usage: consul [--version] [--help] <command> [<args>] Available

Dynamic Scalable and adaptive architecture

我是研究僧i 提交于 2019-12-05 18:42:17
I am a PhD student in Cloud Computing, I plan to use the microservices based architecture with consul and zeromq for my research project. I had few questions that I am finding hard to understand. Can someone help me out in sharing their experience. We have microservices based on dockers, We have zeromq and we have consul. Can you mention how we could combine all the three together to have a dynamic adaptive environment? Though I understand as to what zeromq, docker and consul is individually, I am still unable to get a clear picture of how all of them function as a whole.We have docker

Need for service discovery for docker engine swarm mode

限于喜欢 提交于 2019-12-05 17:27:21
I'm confused about docker swarm. As far as I know, the old way to run a swarm was to run manager and workers in containers, before docker engine provided native support for swarm mode. Documentation for the old, containerized swarm explained how to setup service discovery using consul, etcd or zookeeper. Service discovery is necessary, as services are ran at random ports to avoid collisions, right? Documentation for the docker engine swarm mode doesn't explain how to setup service discovery. Now I'm confused, if the mechanism is included in swarm mode, or is the documentation incomplete. Where

consul异地多数据中心以及集群部署方案

a 夏天 提交于 2019-12-05 17:09:17
consul异地多数据中心以及集群部署方案 目的 实现consul 异地多数据中心环境部署,使得一个数据中心的服务可以从另一个数据中心的consul获取已注册的服务地址 环境准备 两台 linux服务器,外网可以互相连通,都需要开放服务器的8500,8300,8301(可选择开放或者不开放),8302端口 为了简化流程,我们每台服务器上只部署一个consul server ,不部署集群 端口 用途 8500 图形界面 8300 不同server之间请求获取数据 8301 局域网集群内部通信 8302 广域网集群内部通信 部署过程 安装consul 下载安装包 在 opt 目录下 mkdir consul 如果下载1.5.0 的版本 curl --silent --remote-name https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_linux_amd64.zip curl --silent --remote-name https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_SHA256SUMS curl --silent --remote-name https://releases.hashicorp.com/consul/1.5.0/consul_1.5