Consul微服务配置中心部署(在线安装)

博主介绍:

计算机科班人,全栈工程师,掌握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代理,不会阻塞终端的进一步操作。

大家点赞、收藏、关注、评论啦!


更多技术干货,请持续关注程序员大佬超。

原创不易,转载请务必注明出处。

相关推荐
Java程序之猿3 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
Yvemil75 小时前
《开启微服务之旅:Spring Boot Web开发举例》(一)
前端·spring boot·微服务
Yvemil79 小时前
《开启微服务之旅:Spring Boot Web开发》(二)
前端·spring boot·微服务
维李设论9 小时前
Node.js的Web服务在Nacos中的实践
前端·spring cloud·微服务·eureka·nacos·node.js·express
jwolf211 小时前
基于K8S的微服务:一、服务发现,负载均衡测试(附calico网络问题解决)
微服务·kubernetes·服务发现
Yvemil713 小时前
《开启微服务之旅:Spring Boot Web开发举例》(二)
前端·spring boot·微服务
一个儒雅随和的男子14 小时前
微服务详细教程之nacos和sentinel实战
微服务·架构·sentinel
Yvemil715 小时前
《开启微服务之旅:Spring Boot Web开发》(三)
前端·spring boot·微服务
Java程序之猿16 小时前
微服务分布式(二、注册中心Consul)
分布式·微服务·consul
Hello Dam16 小时前
面向微服务的Spring Cloud Gateway的集成解决方案:用户登录认证与访问控制
spring cloud·微服务·云原生·架构·gateway·登录验证·单点登录