搭建consul 集群
1. 准备工作
a) 启动三台虚拟机
s1:10.1.7.141
s2:10.1.7.139
s3:10.1.7.138
b) 每台机器上在 /home新建文件夹
mkdir /home/consul mkdir /home/consul/data
c) 下载consul,并将其考入到/home/consul中
下载地址:https://www.consul.io/downloads.html
2. 启动server agent
a) 进入consul目录中
cd /home/consul
b) 执行:
./consul agent -server -bootstrap-expect 2 -data-dir=data -node=n1 -bind=10.1.7.141 &
注:
i. server: 以server身份启动。
ii. bootstrap-expect:集群要求的最少server数量,当低于这个数量,集群即失效。
iii. data-dir:data存放的目录,更多信息请参阅consul数据同步机制
iv. node:节点id,在同一集群不能重复。
v. bind:监听的ip地址。
vi. &:在后台运行,此为linux脚本语法
vii. 更多参数及配置说明见consul官方说明文档。
c) 修改node和bind信息,分别在另外两台机器中执行。
d) 在s2、s3中分别执行:
./consul join 10.1.7.141
e) 到这里整个consul server 集群就算完成了,可以利用consul members查看集群中包含的node信息。
f) 使用consul info命令可以查看当前节点状态,包括是否在集群中,是否为leader(主)。
3. 注册服务
已redis为例
a) 启动新的虚拟机
s4:10.1.7.142
b) 启动redis服务(这里不在赘述)
c) 新建文件夹/home/consul/config,在这个文件中放置consul的配置信息。
mkdir /home/consul/config
d) 编写redis注册及健康检查方法,每一个服务都写成一个文件,文件格式为:.json
vi /home/consul/config/redis.json
e) Redis的注册与检查脚本:
{
"services": [ #服务数组,这里只写一个redis服务,建议一个服务写一个文件
{
"id": "redis/node1", #服务ID
"name": "redis ", #服务名称,在发现服务时可以用该名称找到所有服务提供者
"tags": [],
"address": "10.17. 142", #服务的IP,这里配置的是本机的内网地址
"port": 6379, #服务端口,redis配置的端口为6379
"checks": [
{
#检测redis存活的脚本,consul也提供http命令来检测服务的健康状态
"script": "redis-cli -h 127.0.0.1 -p 6379 info | grep role:master || exit 2",
#检测频率,这里定义的是5秒
"interval": "5s"
}
]
}
]
}
f) 启动consul 代理
./consul agent -data-dir data -node=n4 -bind=10.1.7.142 -config-file=/home/consul/config
g) 加入到集群中
./consul join 10.1.7.142
4. 搭建管理工具
a) 下载consul web ui,和本机中的consul放到同级目录。
b) 在本机启动consul
consul agent -node=local1abc -bind=10.1.7.167 -ui-dir=web_ui
c) 加入到集群中
consul join 10.1.7.142
d) 打开浏览器,数据地址http://127.0.0.1:8500。即可看到consul的配置信息和已注册的服务信息。
搭建consul 集群的更多相关文章
- 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现
庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介 在第七篇文章<庐山真面目之七微服务架构Consul ...
- vagrant+docker搭建consul集群开发环境
HashiCorp 公司推出的Consul是一款分布式高可用服务治理与服务配置的工具.关于其配置与使用可以参考这篇文章 consul 简介与配置说明. 一般,我们会在多台主机上安装并启动 consul ...
- 搭建 consul 集群
=============================consul 命令行工具=============================consul 支持 Windows/Linux 等多种平台, ...
- Docker学习-Docker搭建Consul集群
1.环境准备 Linux机器三台 网络互通配置可以参考 https://www.cnblogs.com/woxpp/p/11858257.html 192.168.50.21 192.168.50.2 ...
- CentOS7 搭建 Consul 集群
环境准备: ssh shell工具: 远程连接 三个CentOS示例: 部署集群 配置好各个实例之间的网络访问,以及ssh免密登录. 下载&上传: 1.下载 Consul: Download ...
- docker上搭建consul集群全流程
consul简介: consul是提供服务发现.简单配置管理.分区部署的服务注册发现解决方案.主要特性:服务发现\健康检查\基于Key-Value的配置\支持TLS安全通讯\支持多数据中心部署 con ...
- 使用Docker搭建consul集群+registrator实现服务自动注册。
准备工作:10.173.16.83 master10.172.178.76 node110.171.19.139 node210.162.204.252 node3 一.安装consul-cluste ...
- 微服务之:从零搭建ocelot网关和consul集群
介绍 微服务中有关键的几项技术,其中网关和服务服务发现,服务注册相辅相成. 首先解释几个本次教程中需要的术语 网关 Gateway(API GW / API 网关),顾名思义,是企业 IT 在系统边界 ...
- Linux中Consul集群部署
分配三台虚拟机: 192.168.5.125 192.168.5.128 192.168.5.129 在每台虚拟机上创建 /usr/consul 文件件 命令: mkdir /usr/consul ...
随机推荐
- php调接口
浏览器直接访问接口时会弹出账号密码框 当用程序调用时需要加入 curl_setopt($ch, CURLOPT_USERPWD, "$username:$password") ...
- jenkins 入门教程(下)
接上回继续学习jenkins,这次主要来看一些疑难杂症: 一.yum install安装方式 除了直接java -jar jenkins.war方式,还可以用yum安装,这种方式下提供了更多的可配置选 ...
- [LeetCode] Coin Change 硬币找零
You are given coins of different denominations and a total amount of money amount. Write a function ...
- [LeetCode] Remove Element 移除元素
Given an array and a value, remove all instances of that value in place and return the new length. T ...
- Docker 简介
1.什么是Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 机器上.使用Docker可以让每个应用彼此相 ...
- Html-IOS下input的样式添加不上的解决方案
问题描述: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml&qu ...
- 使用SharpPCap在C#下进行网络抓包
在做大学最后的毕业设计了,无线局域网络远程安全监控策略那么抓包是这个系统设计的基础以前一直都是知道用winpcap的,现在网上搜了一下,有用C#封装好了的,很好用下面是其中的几个用法这个类库作者的主页 ...
- Zabbix2.4.7源码安装手册
一.安装Apache Server 注:使用root安装后,变更拥有者为your-user 1 安装环境 系统: CentOS release 6.6 软件: httpd-2.2.31 2 安装步骤 ...
- xss篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题
前言 最早接触安全也是从xss攻击和sql注入攻击开始的. 0x01 跨站脚本攻击漏洞(XSS),是客户端脚本安全中的头号大敌,owasp top10 屡居榜首,由于攻击手法较多,开发者水平不一 ...
- day8-------socket网络编程
简单的socket 一个server同时只能处理一个链接 代码如下: server端代码 #author = ruixin li import socket server = socket.so ...