consul

consul

孤者浪人 提交于 2020-01-30 00:19:06
Consul简介 Consul是基于GO语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。Consul的功能都很实用,其中包括:服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等特性。Consul本身只是一个二进制的可执行文件,所以安装和部署都非常简单,只需要从官网下载后,在执行对应的启动脚本即可。 Consul特性 基础特性 1.服务注册/发现 为什么微服务架构下就需要做服务注册和服务发现呢?微服务的目标就是要将原来大一统的系统架构,拆分成细粒度的按功能职责分成的小系统,这样就会出现很多小的系统,部署的节点也会随之增加。试想一下,如果没有一个统一的服务组件来管理各系统间的列表,微服务架构是很难落地实现的。 Consul提供的服务注册/发现功能在数据强一致性和分区容错性上都有非常好的保证,但在集群可用性下就会稍微差一些(相比Euerka来说)。 2.数据强一致性保证 Consul采用了一致性算法Raft来保证服务列表数据在数据中心中各Server下的强一致性,这样能保证同一个数据中心下不管某一台Server Down了,请求从其他Server中同样也能获取的最新的服务列表数据。数据强一致性带来的副作用是当数据在同步或者Server在选举Leader过程中,会出现集群不可用。 3.多数据中心

docker的跨主机网络Overlay,MacVlan网络的实现

五迷三道 提交于 2020-01-28 20:01:41
让外网能否访问容器的端口映射方法: 1.手动指定端口映射关系 两台虚拟机,第一台映射端口(第二台访问宿主机端口,就是访问容器端口 curl 192.168.1.1:90 。) docker run -itd --name web1 -p 90:80 nginx:latest 2>从宿主机随机映射端口到容器, docker run -itd --name web2 -p 80 nginx:latest 3》从宿主机随机映射端口到容器,容器内所有暴漏端口,都会一一映射。 docker run -itd --name web4 -P nginx:latest Join容器:container(共享网络协议栈) 容器和容器之间。 docker run -itd --name web5 busybox docker run -itd --name web6 --network container:web5 busybox:latest docker exec -it web6 /bin/sh echo 6666666 > /tmp/index.html httpd -h /tmp/ docker exec -it web5 /bin/sh get -O - -q 127.0.0.1 6666666 这时会发现,两个容器的ip地址一样。 PS:这种方法的使用场景: 由于这种网络的特殊性

SpringCloud教程-注册中心(Consul)(SpringCloud版本Greenwich.SR4)

旧时模样 提交于 2020-01-27 08:13:35
文章目录 consul简介 Consul 的优势: 创建工程consul-client 代码地址: github-spring-cloud地址 consul简介 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等)。使用起来也较 为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。 Consul 的优势: 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos, 而 etcd 使用的则是 Raft。 支持多数据中心,内外网的服务采用不同的端口进行监听。 多数据中心集群可以避免单数据中心的单点故障,而其部署则需要考虑网络延迟, 分片等情况等。 zookeeper 和 etcd 均不提供多数据中心功能的支持。 支持健康检查。 etcd 不提供此功能。 支持 http 和 dns 协议接口。 zookeeper

linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信

≯℡__Kan透↙ 提交于 2020-01-25 10:42:28
使用overlay的方法使不同主机中的容器进行通信 //关闭selinux(设置成宽容模式) //使用consul镜像,运行consul服务 docker run - d - p 8500:8500 - h consul -- name consul -- restart=always progrium / consul - server - bootstrap -h:hostname -server:代表server端, -bootstrap: 自选举为leader //需要说明一下,consul服务可以理解为数据中心,他可以收集不同主机上的ip或者端口等信息。 //修改docker的配置文件,以3台主机为例,目的是加入集群。 vim / usr / lib / systemd / system / docker . service //重启docker systemctl daemon - reload systemctl restart docker . service //可以进行验证:访问8500端口,会出现以下页面 //创建一个新的网络,类型为overlay网络。 docker network create - d overlay ov_net1 -d: 指定网络类型 //查看一下会发现新增了一个overlay类型的网络,网络范围是全局性的网络

springcloud心得

99封情书 提交于 2020-01-24 08:29:04
参考网址(非常的全面,这个看不懂,看这个参考网址就OK) http://www.ityouknow.com/spring-cloud.html 研究了一段时间Spring Boot了准备向Spring Cloud进发,公司架构和项目也全面拥抱了Spring Cloud。在使用了一段时间后发现Spring Cloud从技术架构上降低了对大型系统构建的要求,使我们以非常低的成本(技术或者硬件)搭建一套高效、分布式、容错的平台,但Spring Cloud也不是没有缺点,小型独立的项目不适合使用。 Spring Cloud是什么鬼? Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。 微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多

Consul Windows 安装

这一生的挚爱 提交于 2020-01-24 07:40:22
下载文件 https://www.consul.io/downloads.html , 解压完毕后只有一个consul文件 consul 启动一个 Agent consul agent -server -bootstrap-expect 1 -data-dir E:\soft\consul_0.7.0_windows\data -node=web -bind=127.0.0.1 -config-dir E:\soft\consul_0.7.0_windows\config\test.json -ui-dir=E:\soft\consul_0.7.0_windows -client=192.168.4.37 consul agent -dev 查看成员,在另一个终端中运行consul members就可以看到整个集群中的成员 输出已经显示了你自己的节点信息,有地址信息、健康状况、在集群中的角色、以及一些版本信息,如果要查看一些metadata,则可以加入-detailed标记 安装WEB UI,下载地址 https://www.consul.io/downloads.html 解压后放到consul文件目录下 重新启动agent,访问 http://localhost:8500/ 来源: https://www.cnblogs.com/liuyuhua/p/5944799.html

【Linux】【Services】【SaaS】Docker+kubernetes(9. 安装consul实现服务注册发现)

六眼飞鱼酱① 提交于 2020-01-23 00:01:29
1. 简介 1.1. 官方网站: https://www.consul.io 1.2. Consul的功能: 服务发现:通过DNS或HTTP接口使得消费者发现服务,应用程序可以轻松找到所依赖的服务。 健康检查:防止将请发转发不健康的主机。 键值存储:可以使用分层键/值存储,比如功能标记、动态配置等。 多数据中心:开箱即用,不需要复杂的配置。这就意味着不用建立抽象的逻辑来扩展多个地区。 1.3. Consul集群介绍: -- Consul agent是Consul核心工作,分为client和server两种工作模式。默认以client模式运行,提供服务注册、健康检查、转发查询给server leader。server模式启动时使用-server选项指定,用于维护Consul集群状态、Raft协议进行选举。 -- agent必须在每个Consul节点运行,所有运行Consul agent节点构成Consul集群。 -- 官方建议Consul集群至少3或5个节点运行Consul agent server模式,client节点不限。 -- 通过join或rejoin加入集群。一旦加入,集群信息使用gossip算法同步到整个集群节点。 2. 环境 2.1. 机器列表 2.2. 版本: 3. 安装与配置 3.1. Nginx yum安装 yum -y install nginx

Docker高级管理(实例演示!!!)

萝らか妹 提交于 2020-01-22 23:11:22
Docker网络通信 Docker单机网络拓扑图: 端口映射: 端口映射机制将容器内的服务提供给外部网络访问 可随机或指定映射端口范围 docker run -d -P httpd:centos docker run -d -p 49888:80 httpd:centos 容器互联 在源容器和接收容器间建立一条网络通信隧道 使用docker run命令–link选项实现容器间互联通信 实现容器互联 docker run -d -P --name web1 httpd:centos docker run -d -P --name web2 --link web1:web1 httpd:centos docker exec -it web2 /bin/bash ping web1 Docker Compose容器编排 Docker Compose的前身是Fig,它是一个定义及运行多个Docker容器的工具 使用Docker Compose不再需要使用shell脚本来启动容器 Docker Compose非常适合组合使用多个容器进行开发的场景 Docker Compose环境安装 [root@localhost ~]# curl -Lhttps://github.com/docker/compose/releases/download/1.21.1 /docker-compose-

搭建Spring cloud项目---搭建Consul

夙愿已清 提交于 2020-01-21 19:27:03
官网: https://www.consul.io/ 搭建: 我们先说重点,再说介绍。 1:上官网下载consul。 2:dev的搭建很简单,consul提供了dev的启动,一行命令:consul agent -dev 快速搭建Spring Cloud https://blog.csdn.net/zhanghaishan/article/details/104061960 价格: 首先免费版本完全可以满足日常使用。Consul分为3个版本:开源版,企业版,企业升级版(企业模块版)。以下是经过翻译的截图,我们可以进行对比,也可以打开 https://www.hashicorp.com/products/consul/pricing/ 进行查看。 介绍: Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建完整的服务网格。Consul需要数据平面,并支持代理和本机集成模型。Consul附带了一个简单的内置代理,因此一切都可以直接使用,还支持Envoy等第三方代理集成。 Consul 特点:服务注册、Key/Value服务器(可以在consul托管配置哦,据我了解springboot也针对consul的key/value特性做了适配)、服务的健康监测、安全的通讯手段

consul 相关

心不动则不痛 提交于 2020-01-21 07:35:20
原文链接 1、Multiple private IPv4 addresses found. Please configure one with ‘bind’ and/or ‘advertise’. 出现这个问题的原因是,有多张网卡,所以就有了多个ip4的地址,解决方案,就是绑定ip地址到局域网卡, 加上 -bind 192.168.xxx.xxx 参数即可 2. data_dir cannot be empty consul agent -server运行的时候需要指定 data_dir 格式如下 consul agent -server -bind 192.168.153.130 -client 0.0.0.0 -ui -data-dir=/usr/bin/data 3.consul ui界面只能在本机访问,不能在其他电脑访问的解决办法,启动方法如下 consul agent -dev -client 0.0.0.0 -ui 4.删除无效的实例节点 paas-portal-sit-9003 (服务名称id) curl http://server_ip:8500/v1/agent/service/deregister/paas-portal-sit-9003 -X PUT 节点删除 4b36b27317a0(节点ID) http://server_ip:8500/v1/agent