博主介绍:
计算机科班人,全栈工程师,掌握C、C#、Java、Python、Android等主流编程语言,同时也熟练掌握mysql、oracle、sqlserver等主流数据库,具有丰富的项目经验和开发技能。提供相关的学习资料、程序开发、技术解答、代码讲解、文档报告等专业服务。
目录
📗软件概述
Consul 是由 HashiCorp 公司开发的一款开源工具,它主要用作服务发现、配置中心和分布式系统的服务治理平台,核心功能包括:
- 服务发现:Consul 提供了服务注册与健康检查机制,使得微服务架构中的各个服务实例能够自动注册到 Consul 中,并通过 DNS 或 HTTP API 实现服务间的互相发现。
- 配置共享与管理:Consul 可以作为配置中心存储和分发配置信息给各个应用节点,支持 KV 存储,允许动态更新配置并在集群中快速传播。
- 健康检查:通过健康检查机制,Consul 能够持续监控服务的健康状态,确保只有健康的实例才能被调用。
- 多数据中心支持:Consul 使用基于 RAFT 协议的强一致性保证,可以实现跨多个数据中心的服务发现和配置同步。
Spring Cloud 是一个为简化在 Java 平台上构建分布式系统的框架,其中包含了一系列子项目来整合云原生应用所需的常见模式和最佳实践。Spring Cloud Consul 是 Spring Cloud 体系中专门用于与 Consul 集成的模块,它可以方便地将 Consul 的服务发现与配置管理能力接入到基于 Spring Cloud 构建的微服务架构中。通过 Spring Cloud Consul,开发者能够轻松地让 Spring Boot 应用程序与 Consul 进行交互,从而实现服务注册与发现、配置管理等功能,大大简化了微服务架构下的服务治理工作。
📗在线部署
📕官网
官网:https://developer.hashicorp.com/consul/install
查看系统版本
shell
[root@localhost ~]# lscpu |grep Architecture
Architecture: x86_64
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
选择合适的系统安装命令,如下
📕安装
安装工具命令包(命令包括下面用到的 yum-config-manager):
shell
sudo yum install -y yum-utils
添加consul仓库地址:
shell
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
安装consul:
shell
sudo yum -y install consul
如果出现如下错误:
(1)[Errno 14] HTTPS Error 404 - Not Found
vi /etc/yum.repos.d/hashicorp.repo
,将 baseurl 进行替换即可
shell
#baseurl=https://rpm.releases.hashicorp.com/RHEL/$releasever/$basearch/stable
baseurl=https://rpm.releases.hashicorp.com/RHEL/8/$basearch/stable
(2)如果出现Cannot find a valid baseurl for repo: base/7/x86_64
错误
vi /etc/yum.repos.d/CentOS-Base.repo
进行如下修改,更换个YUM仓库源,使用阿里云或其他国内镜像源都可。
shell
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
📕安装验证
shell
consul -v
📕启动consul服务
shell
# 启动命令(后台运行),xxx.xxx.xxx.xx为本机ip
nohup consul agent -dev -ui -node=consul-dev -client=xxx.xxx.xxx.xx &
如需开启防火墙策略,如下
shell
firewall-cmd --add-port=8500/tcp --zone=public --permanent
firewall-cmd --reload
📕验证consul服务
访问验证:http://192.168.157.140:8500/
📗命令解释
📕yum-config-manager命令
yum-config-manager命令用于管理软件仓库,可以将一个指定的仓库地址添加到系统已有的软件源列表中,执行下面这条命令会在/etc/yum.repos.d/目录下创建或更新一个repo文件,使得系统在后续使用 yum install 或yum update 等命令时能从新添加的仓库获取软件包信息。
shell
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo:允许普通用户使用超级用户权限执行命令。
--add-repo:添加(和启用)软件仓库。
📕Consul代理启动命令解释
shell
nohup consul agent -dev -ui -node=consul-dev -client=xxx.xxx.xxx.xx &
nohup:在终端退出时,继续在后台运行,并将输出重定向到指定文件中。
consul agent:启动Consul的代理进程,它是Consul服务的核心组件,负责服务发现、健康检查以及集群内部的通信和管理。
-dev:表明 Consul 代理将以开发者模式启动。该模式下,Consul将会在单节点内创建一个完整的Consul集群,数据存储在内存中,重启后数据将丢失,适用于快速测试和开发环境。
-ui:开启内置的Web用户界面,这样可以通过浏览器访问Consul提供的管理界面,默认监听在本地8500端口的 /ui 路径下。
-node=consul-dev:设置当前Consul代理节点的名称为consul-dev,用于标识集群中的唯一节点。
-client=xxx.xxx.xxx.xxx:指定Consul代理监听客户端请求的IP地址为xxx.xxx.xxx.xxx,这意味着其他服务或者工具需要通过这个IP地址与Consul代理进行交互,比如注册服务、查询服务等。
&:在命令末尾加上&符号表示让命令在后台运行,一般和nohup配合使用,即以守护进程的方式启动Consul代理,不会阻塞终端的进一步操作。
大家点赞、收藏、关注、评论啦!
更多技术干货,请持续关注程序员大佬超。
原创不易,转载请务必注明出处。