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

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

相关推荐
华农第一蒟蒻2 小时前
一次服务器CPU飙升的排查与解决
java·运维·服务器·spring boot·arthas
m0_748229992 小时前
帝国CMS后台搭建全攻略
java·c语言·开发语言·学习
郝亚军2 小时前
如何在windows11和Ubuntu linux之间互传文件
linux·运维·ubuntu
码农娟2 小时前
Hutool XML工具-XmlUtil的使用
xml·java
j_xxx404_2 小时前
Linux:进程状态
linux·运维·服务器
济6172 小时前
linux 系统移植(第二十三期)---- 进一步完善BusyBox构建的根文件系统---- Ubuntu20.04
linux·运维·服务器
程序员 _孜然2 小时前
openkylin、ubuntu等系统实现串口自动登录
linux·运维·ubuntu
草青工作室2 小时前
java-FreeMarker3.4自定义异常处理
java·前端·python
hweiyu003 小时前
Linux 命令:csplit
linux·运维·服务器
守正出琦3 小时前
Linux信号核心函数速查表
linux·运维·服务器