概要 ---- 下载 Consul 的 下载地址 [root@h104 consul]# wget https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip --2016-03-18 15:25:40-- https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip Resolving releases.hashicorp.com (r
近期频繁的容器母机调整导致我们的业务需要多次重启,不得不寻找一种自动重建Consul集群的方式。在网上搜索和学习一番后发现,基本没有针对Kubernetes容器环境的自动重建方案。
consul-template 是 Consul 的一个守护程序,使用 consul-template 可以方便快速的实现对 Consul Key/Value 存储系统的访问,可以从 KV 系统中读取数据、监视变动、同步本地文件;还可以在执行模板更新的同时,执行本地系统命令,比如常见的就是在同步数据到本地模板文件后,生成 Nginx 配置文件,并执行 nginx -s reload 命令,使 Nginx 重新加载配置文件。
上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。consul客户端不保存数据,客户端将接收到的请求转发给响应的Server端。Server之间通过局域网或广域网通信实现数据一致性。每个Server或Client都是一个consul agent。
虽然说牛逼的公司都有那么几个牛逼的运维团队,牛逼的运维团队都有着神秘黑科技般敲代码的姿势;本人虽然不是一个运维工程师,但是自己比较爱倒腾这些东西,会那么一点点运维姿势,虽然不算专业,但是还是可以在linux平台下敲一敲代码。去年由于自己业余时间搞了一个app项目,当时自己兼任后端开发,又同时兼任运维,经过多少个夜晚才把后端API网关 搭建起来,当时技术选型主要使用微服务架构,说到微服务架构,也就少不了分布式集群,那就更少不了Consul 。今天搭建Consul 服务也是为了自己后面的学习和分享使用(之前在生产环境搭建过,本来可以直接拿来用,只是后面应用停掉了,服务器也就下掉了),故特意把前几天阿里云活动价买的服务器用起来,准备再次搭建Consul服务,以供后续方便拿来即用。
此示例会由一个API Gateway, 一个Consul Client以及三个Consul Server组成,有关Consul的Client和Server这两种模式的Agent的背景知识,请移步我之前的文章加以了解:《.NET Core微服务之基于Consul实现服务治理》。其中,Consul的Client和Server节点共同构成一个Data Center,而API Gateway则从Consul中获取到服务的IP和端口号,并返回给服务消费者。这里的API Gateway是基于Ocelot来实现的,它不是这里的重点,也就不过多说明了,不了解的朋友请移步我的另一篇:《.NET Core微服务之基于Ocelot实现API网关服务》。
Consul是HashiCorp公司推出的开源软件,使用GO语言编写,提供了分布式系统的服务注册和发现、配置等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格。Consul不仅具有服务治理的功能,而且使用分布式一致协议RAFT算法实现,有多数据中心的高可用方案,并且很容易和Spring Cloud等微服务框架集成,使用起来非常的简单,具有简单、易用、可插排等特点。使用简而言之,Consul提供了一种完整的服务网格解决方案 。
在去年的.NET Core微服务系列文章中,初步学习了一下Consul服务发现,总结了两篇文章。本次基于Docker部署的方式,以一个Demo示例来搭建一个Consul的示例集群,最后给出一个HA的架构示范,也会更加贴近于实际应用环境。
本篇主要介绍了 Node.js 如何与 Consul 进行集成,Consul 只是服务注册的一种实现,还有其它的例如 Zookeeper、Etcd 等,服务注册发现在微服务架构中扮演这一个重要的角色,伴随着服务的大量出现,服务与服务之间的配置管理、运维管理也变的难以维护,通过 Consul 可以解决这些问题,实现服务治理、服务监控。
工作中要保证生产环境部署的consul的集群能够安全稳定地对外提供服务,即使出现系统故障也能快速恢复,这里将讲述部分的备份还原操作及KV的导入导出操作。
前面我们了解了 Prometheus 中 Relabeling 重新标记的使用,本文我们将学习 Prometheus 中是如何使用服务发现来查找和抓取目标的。我们知道在 Prometheus 配置文件中可以通过一个 static_configs 来配置静态的抓取任务,但是在云环境下,特别是容器环境下,抓取目标地址是经常变动的,所以用静态的方式就不能满足这些场景了。所以我们需要监控系统能够动态感知这个变化,不可能每次变动都去手动重新配置的,为了应对复杂的动态环境,Prometheus 也提供了与基础设施中的服务发现集成的功能。
Consul的简介和安装过程之前的文章中已经提及了,这次主要了解下consul的集群搭建过程,在搭建Consul集群之前,有必要先了解一下单个节点的consul环境部署。
consul集群跑起来之后,于是在IDEA跑SpringCloud项目注册到部署好的Consul服务,当服务注册好之后,检查其健康状态,发现服务一直提示All node checks passing报了个小红叉❌。
本文主要介绍怎么使用 Docker 在 Linux 环境部署 Consul 集群,如果你对 Docker 不了解的同学,请先学习一下 Docker。推荐一本学习 Docker 在线书籍 :【Docker入门到实践】 。
Consul是在微服务架构中做注册中心的一个程序,非常小巧。它可以和openresty配合做网关路由,和springcloud配合做服务发现。除了单机运行,它还能部署为高可用集群。下面,我先讲一下如何手动安装Consul节点并加入集群,再演示如何通过流水线安装Consul集群。
来源:https://jeremy-xu.oschina.io/2018/07/%E7%A0%94%E7%A9%B6consul%E7%9A%84service-mesh%E5%8A%9F%E8%83%BD/
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。Consul是分布式的、高可用的、 可横向扩展的。它具备以下特性:
此时已经分别在104和103上启动了两个代理a1和a2,a1准备用来作server ,a2用来作client,但它们彼此还互不认识,都是自己的单节点集群中的唯一节点,可以通过 consul members 来进行查看
Consul 是一个服务网格解决方案,提供具有服务发现、配置和分段功能的全功能控制平面。这些功能中的每一个都可以根据需要单独使用,也可以一起使用来构建完整的服务网格。Consul 需要数据平面并支持代理和原生集成模型。Consul 附带一个简单的内置代理,因此一切都可以开箱即用,而且还支持 Envoy 等 3rd 方代理集成。
那么,我们对 Consul 的理解,就是服务网格、服务发现,官网文档说的这两个特征,到底是啥意思?跨什么云?
当前公司使用consul来实现服务发现,如Prometheue配置中的target和alertmanager注册都采用了consul服务发现的方式,以此来灵活应对服务的变更。但对于其他服务,是否也有一个通用的方式来使用consul管理配置文件?本文中描述如何使用consul-template来渲染配置文件。
服务是可以使用 HTTP API 进行动态修改 (HTTP API 可以用来进行动态的添加,删除,修改服务)
|作者简介 consul之前一直被当成一个服务发现、分布式KV服务、服务健康检查服务等,但此前发布的1.2版本,宣称其实现了Service Mesh方案。而今年被称为Service Mesh的关键之年,就在这里跟大家分享一下自己的研究结果。 |试用consul的service mesh 升级consul至1.2版本 macOS下升级consul很简单,简单用brew命令就好 brew update consul 为了方便后面修改consul的配置文件,添加一个 -config-dir参数 /usr/l
eureka官方已经正式宣布:自2.0起不再维护该项目,并在github 项目wiki上放出了一段吓唬人的话:
前言一、目标二、使用步骤1. 安装 consul2. 服务注册定义基类具体实现3. 服务发现基类定义具体实现4. 测试用例总结参考
Spring Cloud Consul 项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,具有分布式、高可用、高扩展性。 Consul 简介 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式” ,内置了服务注册与发现框 架、具有以下性质: 分布一致性协议实现、 健康检查、 Key/Value存储、 多数据中心方案, 不再需要依赖其他工具(比如ZooKeeper等)。 使用起来
3、验证测试 通过以下地址可以访问Consul的首页: http://localhost:8500
最近的工作需要对默认安装的consul集群进行安全加固,这里将安全加固的步骤记录下来。
【转载请注明出处】:https://cloud.tencent.com/developer/article/1634688
Consul是一个集配置管理、服务注册和发现于一体的微服务基础组件,它提供的这些功能我们在微服务开发中都用到了。在实践中,我们发现Spring Cloud没有提供在启动时自动加载某一个配置文件到Consul配置中心的功能,于是参照Consul社区的一个开源项目cfg4j-pusher进行了二次开发,实现了Spring Boot应用启动时自动加载指定配置文件到Consul配置中心的功能。以下是软件环境:
https://learn.hashicorp.com/tutorials/consul/get-started-install
本示例使用前几天分享的项目把AAStore.ProductCatalog.Api,选中项目右键->添加->Docker支持,就会看到生产的Dockerfile文件
Consul Template 提供一个方便的方式从Consul服务获取数据通过consul-template的后台程序保存到文件系统,这个后台进程监控Consul中数据的变化并更新任意数量的模板到文件系统。模板更新完成后consul-template也可以触发相关的指令或者脚本,此处通过简单的实践动态更新Nginx的upstream server并且触发reloadnginx服务。当然对于小规模下的应用场景还有很多,比如Haproxy配置文件动态更新等。
我个人觉得,中间件的部署与使用是非常难记忆的;也就是说,如果两次使用中间件的时间间隔比较长,那基本上等于要重新学习使用。
Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp 公司用Go语言开发。
Consul 是一种用于服务发现、配置和分布式一致性的开源工具和平台。它由 HashiCorp 公司开发和维护,旨在简化构建和维护分布式系统的任务。
好久不见。由于工作的原因停更了一段时间,今天开始继续更新。前面介绍过微服务相关的一些技术方案,注册中心除了Zookeeper、Nacos之外,其实Consul也可以,只不过使用比例上看并不算高。最近发现某大厂的一个部门中有对Consul的使用,正好借机做一次了解。
今天又抽时间研究了一下如何搭建docker集群,终于找到配合consul、docker-machine、swarm搭建一个简易docker集群的办法,在这里记录一下。 创建一个consul数据库 首先需要创建一个用于swarm集群节点服务发现、健康检测的consul数据库。 #这里`https://xxxx.mirror.aliyuncs.com`参见上一篇文件里所提及的阿里云registry加速地址 docker-machine create -d virtualbox --engine-registry
Spring Cloud微服务架构浅析 在之前的文章中和大家分享过一些关于Spring Cloud微服务开发相关的文章,内容比较侧重于框架有关的开发技巧,没有读过的朋友可以在文末的推荐阅读中进行查看。而在后续的系列文章中小码哥打算分享一些关于Spring Cloud微服务运维方面的内容,而今天这篇文章中要和大家分享下的就是在Spring Cloud微服务架构模式中被运维小哥用的很爽的一个工具Consul Template 在具体介绍Consul Template是个什么东西之前,我们先来整体看一张微服务模式
Consul是一个分布式、高可用的系统,是一个为了解决在生产环境中服务注册,服务发现,服务配置的一个工具,它有多个组件,提供如下几个关键功能:
作者:波斯码 来源:http://blog.bossma.cn/consul/consul-service-register-and-discovery-style/?hmsr=toutiao.io&
Spring Cloud Config 原理 我们通过git 把配置文件推送到远程仓库做版本控制,当版本发生变化的时候,远程仓库通过webhook机制推送消息给 Config Server,Confi
SpringCloud的服务注册中心有Eureka、Zookeeper、Consul和Nacos
在上一篇中讲解了Consul的安装、部署、基本的使用,使得大家有一个基本的了解,本节开始重点Consul集群搭建,官方推荐3~5台Server,因为在异常处理中,如果出现Leader挂了,只要有超过一半的Server还处于活跃状态,consul就会重新选举新的Leader,保证集群可以正常工作。
Consul 让服务注册和服务发现(通过 DNS 和 HTTP 接口)更加简单,甚至对于外部服务(例如SaaS)注册也一样。
首先,官方介绍是:Consul 是一种服务网格的解决方案,在 Consul 中,提供了服务发现、配置、分段等控制管理平台,Consul 中的每项功能都可以单独使用,也可以一起使用来构建完整的服务网格;在 Consul 内部,有一个简单的代理服务,所以在安装 Consul 后,马上就可以开始使用 Consul ;当然,Consul 也支持集成第三方代理,比如 Envoy。
在上篇文章「Golang 语言微服务的服务注册与发现组件 Consul」中,我们已经介绍服务注册与发现是什么,Golang 语言微服务架构为什么需要使用服务注册与发现组件,Golang 语言开发的服务注册与发现组件 Consul 的主要特性和基本介绍。
以上只是列举的笔者曾经遇到的几点问题,当然问题还不止于这些,下面介绍的Consul可以有效解决这些问题,当然还有一些其它的优点,让我们一起期待下文的Consul的讲解。
Prometheus Server的数据抓取工作于Pull模型,因而,它必需要事先知道各Target的位置,然后才能从相应的Exporter或Instrumentation中抓取数据, 对于小型系统来说,通过static_configs就可以解决此问题,这也是最简单的配置方法;对于中大型系统环境或具有较强动态性的云计算环境来说,静态配置显然难以适用,因此,Prometheus为此专门设计了一组服务发现机制,以便能够通过服务注册中心自动发现、检测、分类可被检测的各target,以及更新发生了变动的target。
领取专属 10元无门槛券
手把手带您无忧上云