Ubuntu 下载安装 Consul1.17.1

下载

shell 复制代码
wget https://releases.hashicorp.com/consul/1.17.1/consul_1.17.1_linux_amd64.zip

解压:

shell 复制代码
unzip -d consul_1.17.1_linux_amd64.zip /opt/module

将解压出的二进制文件移动到 /usr/local/bin 目录中以便在系统中全局使用:

shell 复制代码
sudo mv consul /usr/local/bin/

验证安装是否成功:

shell 复制代码
consul --version

启动

创建存储 Consul 数据目录以及存放配置文件的目录:

shell 复制代码
sudo mkdir -p /opt/module/consul-1.17.1/data
/opt/module/consul-1.17.1/conf

进入 /opt/module/consul-1.17.1/conf 配置文件目录,创建一个配置文件:

shell 复制代码
cd /opt/module/consul-1.17.1/conf
sudo touch base_conf.json

配置文件内容如下:

json 复制代码
{
    "datacenter": "dc",
    "data_dir": "/opt/module/consul-1.17.1/data",
    "log_level": "INFO",
    "node_name": "node73",
    "server": true,
    "bootstrap_expect": 1,
    "bind_addr": "192.168.10.73",
    "advertise_addr": "192.168.10.73",
    "client_addr": "0.0.0.0",
    "ui_config": {
        "enabled": true
      }
}

client_addr 配置项指定了 Consul 代理监听来自客户端请求的网络接口地址。

bind_addr 设置为 ip,设置成 hostname 会有问题。

为了让 Consul 能作为服务自动启动,我们需要创建一个 systemd 服务文件:

shell 复制代码
[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target

[Service]
User=consul
Group=consul
ExecStart=sudo /usr/local/bin/consul agent -server -data-dir=/opt/module/consul-1.17.1/data -config-dir=/opt/module/consul-1.17.1/conf
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

执行以下命令启动 Consul 并设置随系统启动:

shell 复制代码
sudo systemctl enable consul
sudo systemctl start consul

你可以通过以下命令查看 Consul 服务状态(不分页):

shell 复制代码
sudo systemctl status consul --no-pager

为了方便启动、停止、查看 Consul 的状态,创建一个脚本 myConsul.sh,放到 /usr/local/bin 目录下(放在这个目录下是为了在任何路径都能使用 myConsul 这个脚本):

shell 复制代码
#!/bin/bash

case $1 in
"start"){
	sudo systemctl start consul
};;
"stop"){
    sudo systemctl stop consul
};;
"status"){
    sudo systemctl status consul --no-pager
};;
esac

访问 8500 端口就能看到 Consul 的页面了,使用 myConsul.sh start命令就可以启动 Consul 了。

服务出现红叉叉问题

这是因为注册的服务没有配置心跳检测,导致 Consul 认为服务是不健康的,需要在服务的配置中配置如下内容:

yaml 复制代码
spring:
  application:
    name: cloud-order-service
  cloud:
    consul:
      host: node73
      port: 8500
      discovery:
        service-name: ${spring.application.name}
        heartbeat:
          enabled: true
        health-check-url: http://192.168.10.103:${server.port}/management/health
      config:
        profile-separator: '-'
        format: yaml
        watch:
          wait-time: 3

重启服务,然后就会正常了:

相关推荐
玩转以太网5 分钟前
基于W55MH32Q-EVB 实现 HTTP 服务器配置 OLED 滚动显示信息
服务器·网络协议·http
甄超锋21 分钟前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
阿华的代码王国42 分钟前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Zyy~42 分钟前
《设计模式》装饰模式
java·设计模式
A尘埃1 小时前
企业级Java项目和大模型结合场景(智能客服系统:电商、金融、政务、企业)
java·金融·政务·智能客服系统
小晶晶京京1 小时前
day34-LNMP详解
linux·运维·服务器
画个太阳作晴天1 小时前
A12预装app
linux·服务器·前端
青云交1 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图
CHEN5_022 小时前
【Java基础面试题】Java基础概念
java·开发语言
shuangrenlong2 小时前
ubuntu更新chrome版本
linux·chrome·ubuntu