当前位置: 首页 > news >正文

linux centos consul1.15.2一键安装部署

consul原理、作用、安装相关内容

  • 一、理论部分
  • 二、安装下载版本地址
  • 三、安装consul服务

一、理论部分

1、consul的原理
Consul的原理及作用可以归纳为以下几点:

①、基于Gossip协议的通信:Consul使用了基于Gossip协议的Serf实现来进行通信。
Gossip协议是一个基于流行病传播方式的节点或者进程之间信息交换的协议,它通过UDP实现任意node-to-node间的通信,确保网络中所有节点的数据一致。节点间的交互方式主要包括Push、Pull以及Push&Pull。

②、成员管理和消息广播:Consul利用Serf提供的Gossip协议来管理成员和广播消息到集群。这种去中心化的方式不同于集中式结构,它更加灵活和可扩展。

③、使用Raft算法保证一致性:Consul采用Raft算法来保证服务的高可用性和数据的一致性。这是一种相对简单且易于理解的一致性算法,相比Paxos算法更为直接。

2、Consul的作用

①、服务发现:Consul的客户端可以注册服务,其他客户端则可以使用Consul来发现这些服务的提供者。通过DNS或HTTP接口,应用程序可以轻松找到它们所依赖的服务。

②、健康检查:Consul提供健康检查功能,可以快速告警集群中的问题。与服务发现的集成可以防止将服务转发到故障的服务上。

③、键/值存储:Consul提供一个键/值存储系统,用于存储动态配置。通过简单的HTTP接口,可以在任何地方操作这些配置。

④、多数据中心支持:Consul支持多个数据中心,这意味着用户不必担心构建额外的抽象层以扩展到多个区域。内外网的服务可以采用不同的端口进行监听,从而提高了系统的可用性和可扩展性。
安全服务通信:Consul还可以为服务生成和分发TLS证书,以建立相互的TLS连接,确保通信的安全性。同时,通过Intentions(意图)定义允许哪些服务进行通信,轻松管理服务分段。

⑤、综上所述,Consul是一个功能强大的开源工具,它通过Gossip协议实现去中心化的通信和成员管理,采用Raft算法保证数据一致性,并提供服务发现、健康检查、键/值存储以及多数据中心支持等功能。这些特性使得Consul在分布式系统中具有广泛的应用前景。

3、consul与nacos和zookeeper区别

Consul、Nacos和ZooKeeper在分布式系统中各自扮演着重要的角色,但它们在服务发现、配置管理、健康检查等方面存在明显的区别。以下是它们之间的主要差异:

①、服务发现与注册:
Consul:通过DNS或HTTP接口使服务注册和服务发现变得容易。它支持外部服务如SaaS的注册。

Nacos:允许服务在注册中心中注册自己,并通过服务名来发现其他服务。这有助于实现微服务架构中的服务之间的通信。

ZooKeeper:主要作为分布式协调服务,提供了简单的分层命名空间,类似于文件系统,用于存储和管理分布式应用程序的配置、状态信息和元数据。但它本身并不直接提供服务发现与注册的功能。

4、配置管理:

Consul:提供键/值存储系统,用于存储动态配置。

Nacos:提供了统一的配置管理平台,可用于管理和动态更新分布式系统中的配置信息,如数据库连接、参数设置等。

ZooKeeper:虽然也用于存储和管理分布式应用程序的配置信息,但其主要目标是作为分布式协调服务,而不是专门的配置管理工具。

5、健康检查:

Consul:提供健康检查功能,通过check方法实现,包括Script + Interval、HTTP + Interval、TCP + Interval等多种方式。

Nacos:既支持客户端的健康检查(KeepAlive、Client Beet),也支持服务端的健康检查(如MYSQL命令等)。

ZooKeeper:虽然不直接提供健康检查功能,但可以通过其提供的Watch机制来监听数据节点的变化,从而间接实现健康检查的效果。

6、性能与容量:
Consul:由于其使用Raft算法来保证一致性,相比使用Paxos算法的ZooKeeper在写性能上可能稍逊一筹。但在多数据中心的支持上,Consul具有明显优势。

Nacos:在开源版本中,服务实例注册的支撑量约为100万,服务的数量可以达到10万以上,显示了其强大的性能和容量。

ZooKeeper:在写性能上可以达到上万的TPS,容量从存储节点数来说可以达到百万级别。但Paxos协议限制了ZooKeeper集群的规模(通常为3或5个节点)。

6、其他特性:
Consul:支持多数据中心,内外网的服务可以采用不同的端口进行监听。官方提供web管理界面。

Nacos:支持动态DNS服务、权重和流量管理等功能,可以实现不同版本的服务之间的流量切分和管理。

ZooKeeper:提供了分布式协调的原语,如锁、队列、通知机制等,常用于构建分布式锁、配置管理、分布式队列等关键组件。

⑥、综上所述,Consul、Nacos和ZooKeeper在服务发现、配置管理、健康检查等方面各有特点。
Consul适合需要多数据中心支持和高可用性的场景;

Nacos则提供了丰富的配置管理和服务治理功能;

而ZooKeeper则以其强大的分布式协调能力和简单的API赢得了广泛的应用。

在选择时,应根据具体的业务需求和场景来选择合适的工具。

二、安装下载版本地址

https://releases.hashicorp.com/consul/1.15.2/
在这里插入图片描述

三、安装consul服务

1、将安装包上传到目录

mkdir -p /opt/install/package/consul

在这里插入图片描述
2、编辑安装文件及启动文件
在这里插入图片描述
3、进入目录

cd /opt/install/consul

4、编辑启动文件

vim consul-node01
#!/bin/bash
# consul
# chkconfig: 2345 70 30
# description: consul node 01 server
#
### BEGIN INIT INFO
# Provides: consul
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# short-Description: Start up the Consul server node01 daemon
# Description:  Consul Server node01 daemon
### END INIT INFOprog=consul-node01
PROG_OWNER=/opt
PROG_BASE=$PROG_OWNER/$progPID=start() {getpidif [ "$PID" != "" ] && [ -d /proc/$PID ]; thenecho "$prog (pid $PID) 已运行..."else#su - $PROG_OWNER -c "nohup $PROG_BASE/$prog.sh > $PROG_BASE/consul.log 2>&1 &"nohup $PROG_BASE/$prog.sh > $PROG_BASE/consul.log 2>&1 &echo "$prog started."fi
}stop() {getpidif [ "$PID" != "" ] && [ -d /proc/$PID ]; thenkill -KILL $PID >/dev/null 2>&1usleep 100000echo "$prog 已停止"elseecho "$prog 未运行"fi
}restart() {stopstart
}getpid() {PID=`ps -ef|grep "consul agent -config-file"|grep -v grep|awk '{print $2}'`
}case "$1" instart)start;;stop)stop;;restart)stopstart;;status)getpidif [ "$PID" != "" ] && [ -d /proc/$PID ]; thenecho "$prog (pid $PID) 正在运行..."elseecho "$prog 已停止"fi;;*)echo $"Usage: $0 {start|stop|restart|status}"
esac

5、编辑安装文件

vim install-consul.sh
#!/bin/bash
#
#install consul
if [ -z $1 ];thenecho "Usage: sh $(basename $0) IP" echo "Ex: sh $(basename $0) 192.168.1.1"exit -1
fi 
script_dir=$(cd $(dirname $0);pwd)
install_dir=/optsource $script_dir/../Loginfo.sh
if [ -d /opt/consul-node01/ ];thenlog_info "/opt/consul-node01 dir already exists!"exit 1
elsepackage_name="consul_1.15.2_linux_amd64.zip"
log_info "cp package,unzip package"
cp consul-node01 /etc/init.d/#test -d consul-node01 || mkdir consul-node01
#rm -rf consul-node01
unzip ../package/consul/$package_name -d $install_dir/consul-node01
log_error "package unzip error." cd $install_dir
log_info "get service ip addr."
if [ ! -n $1 ];thenip_addr=$(ifconfig ens32 | grep 'inet' | awk '{print $2}' | head -1)
elseip_addr=$1
fi
cat > ./consul-node01/config.json << EOF
{"datacenter": "consul01","data_dir": "consul01","log_level": "INFO","node_name": "consul-node01","server": true,"bootstrap_expect": 1,"client_addr": "127.0.0.1 $ip_addr","bind_addr": "$ip_addr","ui": true
}
EOFlog_info "add consul service scripts."
#启动脚本
cat >  ./consul-node01/consul-node01.sh << EOF
#!/bin/bash
cd /opt/consul-node01
./consul agent -config-file config.json
cd
EOFlog_error "add consul service scripts error"#增加开机启动项chmod +x ./consul-node01/consul-node01.shchmod +x /etc/init.d/consul-node01chkconfig --add consul-node01chkconfig consul-node01 on/etc/init.d/consul-node01 startlog_info "install consul done."
fi

6、请确保服务器有unzip命令,不然就会报无解压命令
在这里插入图片描述
7、yum安装解压工具

yum install -y unzip

8、执行安装命令

sh install-consul.sh 192.168.1.133 ip替换为自己ip

在这里插入图片描述
服务已正常运行,默认端口8500
在这里插入图片描述

相关文章:

linux centos consul1.15.2一键安装部署

consul原理、作用、安装相关内容 一、理论部分二、安装下载版本地址三、安装consul服务 一、理论部分 1、consul的原理 Consul的原理及作用可以归纳为以下几点&#xff1a; ①、基于Gossip协议的通信&#xff1a;Consul使用了基于Gossip协议的Serf实现来进行通信。 Gossip协议…...

速盾:dns和cdn区别?

DNS&#xff08;Domain Name System&#xff09;和CDN&#xff08;Content Delivery Network&#xff09;是互联网中两个不同但相互关联的服务。下面将详细解释DNS和CDN的区别。 功能和作用&#xff1a; DNS&#xff1a;DNS是将域名转换为IP地址的服务&#xff0c;它充当着互联…...

多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)C++

多目标跟踪中用到的求解线性分配问题&#xff08;Linear Assignment Problem&#xff0c;LAP&#xff09;C flyfish python实现,说的比这里详细 lapjv.h和lapjv.cpp代码在https://github.com/shaoshengsong/DeepSORT C代码调用 #include <iostream> #include <ve…...

Unity | Shader基础知识(第十四集:简单效果练习)

目录 前言 一、效果预览 1.弧形边缘光 二、效果制作 1. 制作弧形边缘光 2.弧形边缘光进阶 3.弧形边缘光调节渐变范围 4.边缘光突变 5.同心圆 三、加入世界坐标做效果 1.绘制结界 2.斑马球 3.效果合并 四、作者的碎碎念 前言 有粉丝建议说&#xff0c;让我继续更新…...

Vue48-ref属性

一、需求&#xff1a;操作DOM元素 1-1、使用原生的id属性 不太好&#xff01; 1-2、使用 ref属性 原生HTML中&#xff0c;用id属性给元素打标识&#xff0c;vue里面用ref属性。 给哪个元素加了ref属性&#xff0c;vc实例对象就收集哪个元素&#xff01;&#xff01;&#xff0…...

【SpringCloud学习笔记】RabbitMQ(中)

1. 交换机概述 前面《RabbitMQ上篇》我们使用SpringAMQP来演示如何用Java代码操作RabbitMQ&#xff0c;当时采用的是生产者直接将消息发布给队列&#xff0c;但是实际开发中不建议这么做&#xff0c;更加推荐生产者将消息发布到交换机(exchange)&#xff0c;然后由exchange路由…...

【C++】类和对象的引入

文章目录 前言一、类的定义二、类的访问控制与封装三、类的作用域四、类的实例化五、类的存储方式及大小计算六、隐藏的this指针 前言 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&…...

11.5.k8s中pod的调度-cordon,drain,delete

目录 一、概念 二、使用 1.cordon 停止调度 1.1.停止调度 1.2.解除恢复 2.drain 驱逐节点 2.1.驱逐节点 2.2.参数介绍 2.3.解除恢复 3.delete 删除节点 一、概念 cordon节点&#xff0c;drain驱逐节点&#xff0c;delete 节点&#xff0c;在对k8s集群节点执行维护&am…...

Java中线程的创建方式

一、继承Thread类&#xff0c;重写run方法 public class MyThread{public static void main(String[] args) {Thread threadDome new ThreadDome();threadDome.start();} }class ThreadDome extends Thread{Overridepublic void run() {for (int i 0; i < 5; i) {try {Th…...

猫头虎推荐20个值得体验的通用大模型

猫头虎推荐20个值得体验的通用大模型 &#x1f680; 大家好&#xff0c;我是猫头虎&#xff0c;一名专注于科技领域的自媒体博主。今天是周一&#xff0c;新的开始&#xff0c;我们来深入探讨一下当前最值得体验的通用大模型。这些AI模型不仅功能强大&#xff0c;而且在各自领…...

Novartis诺华制药社招综合能力性格动机问卷入职测评笔试题库答案及包过助攻

【华东同舟求职】由资深各行业从业者建立的一站式人才服务网络平台&#xff0c;现阶段目标是“提升全市场各行业岗位信息的流动性和透明度”。我们接受众多行业机构的直接委托发布&#xff0c;并尽力通过各种方法搜寻高价值岗位信息。事实上&#xff0c;我们以发现不为人知的优…...

Adam优化算法

Adam优化算法 Adam&#xff08;Adaptive Moment Estimation&#xff09;是一种用于训练深度学习模型的优化算法&#xff0c;由Diederik P. Kingma和Jimmy Ba在2014年提出。Adam结合了动量和自适应学习率的方法&#xff0c;具有高效、稳定和适应性强的特点&#xff0c;被广泛应…...

MYSQL 三、mysql基础知识 7(MySQL8其它新特性)

一、mysql8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本 &#xff0c;可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上 做了显著的改进与增强&#xff0c;开发者对MySQL的源代码进行了重构&#xff0c;最突出的一点是多MySQL Optimizer优化器进行了改进。不仅在速度…...

git error: does not have a commit checked out fatal: adding files failed

git add net error: net/ does not have a commit checked out fatal: adding files failed这个错误是因为尝试将一个尚未被提交的文件夹添加到Git中。解决这个问题的方法是先将文件夹中的文件提交到Git仓库中&#xff0c;然后再将文件夹添加到Git中。 首先&#xff0c;需要进…...

Java Websocket分片发送

一、分片发送和接收(复杂) 如果数据量太大&#xff0c;需要分多次发送&#xff0c; 需要考虑数据划分和重组的问题。 二、具体思路 每次发送和接收用一个布尔值变量指定是否为最后一个分片。 三、具体使用 (一)字符串分片发送&#xff1a; sendText(文本&#xff0c; 布尔值)…...

vivado NODE、PACKAGE_PIN

节点是Xilinx部件上用于路由连接或网络的设备对象。它是一个 WIRE集合&#xff0c;跨越多个瓦片&#xff0c;物理和电气 连接在一起。节点可以连接到单个SITE_&#xff0c; 而是简单地将NETs携带进、携带出或携带穿过站点。节点可以连接到 任何数量的PIP&#xff0c;并且也可以…...

JavaEE、SSM基础框架、JavaWeb、MVC(认识)

目录 一、引言 &#xff08;0&#xff09;简要介绍 &#xff08;1&#xff09;主要涉及的学习内容 &#xff08;2&#xff09;学习的必要性 &#xff08;3&#xff09;适用学习的人群&#xff08;最好有这个部分的知识基础&#xff09; &#xff08;4&#xff09;这个基础…...

【漏洞复现】飞企互联-FE企业运营管理平台 treeXml.jsp SQL注入漏洞

0x01 产品简介 飞企互联-FE企业运营管理平台是一个基于云计算、智能化、大数据、物联网、移动互联网等技术支撑的云工作台。这个平台可以连接人、链接端、联通内外&#xff0c;支持企业B2B、C2B与020等核心需求&#xff0c;为不同行业客户的互联网转型提供支持。其特色在于提供…...

Android基础-运行时权限

一、引言 随着智能手机和移动互联网的普及&#xff0c;Android操作系统作为其中的佼佼者&#xff0c;其安全性问题日益受到关注。为了保障用户数据的安全和隐私&#xff0c;Android系统引入了权限机制来管理和控制应用程序对系统资源和用户数据的访问。特别是在Android 6.0&am…...

postman断言及变量及参数化

1&#xff1a;postman断言 断言&#xff1a;判断接口是否执行成功的过程 针对接口请求完成之后&#xff0c;针对他的响应状态码及响应信息进行判断,代码如下&#xff1a; //判断响应信息状态码是否正确 pm.test("Status code is 200", function () { pm.response.…...

安装和使用TrinityCore NPCBot

安装TrinityCore NPCBot 官网&#xff1a;GitHub - trickerer/Trinity-Bots: NPCBots for TrinityCore and AzerothCore 3.3.5 基本安装方法 Follow TrinityCore Installation Guide (https://TrinityCore.info/) to install the server firstDownload NPCBots.patch and put …...

Hvv--知攻善防应急响应靶机--Linux2

HW–应急响应靶机–Linux2 所有靶机均来自 知攻善防实验室 靶机整理&#xff1a; 夸克网盘&#xff1a;https://pan.quark.cn/s/4b6dffd0c51a#/list/share百度云盘&#xff1a;https://pan.baidu.com/s/1NnrS5asrS1Pw6LUbexewuA?pwdtxmy 官方WP&#xff1a;https://mp.weixin.…...

replaceAll is not a function 详解

先说说原因&#xff1a; 在chrome 浏览器中使用 replaceAll 报这个错误&#xff0c;是因为chrome 版本过低&#xff0c; 在chrome 85 以上版本才支持 用法 replaceAll(pattern, replacement)const paragraph "I think Ruths dog is cuter than your dog!"; console…...

如何设置天锐绿盾的数据防泄密系统

设置天锐绿盾的数据防泄密系统&#xff0c;可以按照以下步骤进行&#xff1a; 一、系统安装与初始化 在线或离线安装天锐绿盾数据防泄密系统&#xff0c;确保以管理员身份运行安装包&#xff0c;并按照安装向导的提示完成安装。输入序列号进行注册&#xff0c;激活系统。 二…...

003 gitee怎样将默认的私有仓库变成公开仓库

先点击“管理”&#xff0c; 再点击“基本信息” 在“是否开源”里&#xff0c; 选择&#xff1a;开源...

Spring框架中的IOC(控制反转)详解

Spring框架中的IOC&#xff08;控制反转&#xff09;详解 一、引言 在软件开发中&#xff0c;设计模式与框架的应用极大地提高了开发效率和软件质量。其中&#xff0c;Spring框架因其强大的功能和灵活的扩展性&#xff0c;成为了Java企业级应用开发的首选。而Spring框架中的核…...

Score Matching(得分匹配)

Score Matching&#xff08;得分匹配&#xff09;是一种统计学习方法&#xff0c;用于估计概率密度函数的梯度&#xff08;即得分函数&#xff09;&#xff0c;而无需知道密度函数的归一化常数。这种方法由Hyvrinen在2005年提出&#xff0c;主要用于无监督学习&#xff0c;特别…...

五大维度大比拼:ChatGPT比较文心一言,你的AI助手选择指南

文章目录 一、评估AI助手的五个关键维度二、ChatGPT和文心一言的比较 评估AI助手的五个关键维度&#xff0c;以及ChatGPT和文心一言的比较如下&#xff1a; 一、评估AI助手的五个关键维度 界面友好性 &#xff1a; 评估标准&#xff1a;用户界面是否直观易用&#xff0c;是否…...

大学课设项目,Windows端基于UDP的网络聊天程序的服务端和客户端

文章目录 前言项目需求介绍一、服务端1.对Udp套接字进行一个封装2. UdpServer的编写3. Task.h4.protocol.h的编写5.线程池的编写6.main.cc 二、客户端1. Socket.h2.protocol.h3.UdpClient4.menu.h5.main.cpp 三、运行图 前言 本次项目可以作为之前内容的一个扩展&#xff0c;学…...

【5.x】ELK日志分析、集群部署

ELK日志分析 一、ELK概述 1、ELK简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将ElasticSearch、Logstash和Kiabana三个开源工具配合使用&#xff0c;完成更强大的用户对日志的查询、排序、统计需求。 一个完整的集中式日志系统&#xff0c;需要包含以下几个主…...

做网站需要硬件设施/免费个人网站建站申请

写在前面&#xff1a;jQuery是一个简化js的框架&#xff0c;可以方便的操作DOM&#xff0c;操作类&#xff0c;注册事件&#xff0c;发送ajax等 入口函数 $(document).ready(function( )) $(function(){ }) 操作DOM $(#id) $(.class) $(div) $(div,p,li) $(div.redClass)…...

想通过做威客网站上的任务来赚/互联网销售公司

类模板 //类模板和函数模板区别://1、类模板不可以使用自动类型推导,只能用显示指定类型//2、类模板中 可以有默认参数#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; #include <string> template<class...

网站开发高级工程师专业/今日最新消息

imei 设备号 imsi 串号 客户号 都是15位 iccid 20位...

163网站是jsp做的吗/打开百度app

转载于:https://www.cnblogs.com/beesky520/p/4192456.html...

网站建设的市场需求/win优化大师官网

下载地址&#xff1a;http://code.google.com/p/freecms/ 站点管理 FreeCMS支持网站群模式,并支持无限树级管理。 1. 添加一级站点 从左侧管理菜单点击站点管理进入。 提示&#xff1a;只有admin才可以进行“添加一级站点”操作。 点击“添加一级站点” 输入相关属性点击“保存…...

辛集市住房和城乡建设局网站/企业网站注册域名的步骤

企业管理软件现在最大的竞争&#xff0c;我个人感觉是外包公司。 现在外包行当不好做了&#xff0c;所以很自然都纷纷开始在国内市场出击。这些经历了国外客户锤炼和要求的外包公司&#xff0c;在项目管理、文档、测试、质量均有明显优势。而国内客户对于国内的企业管理软件&am…...