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

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

相关推荐
lswzw4 分钟前
Ubuntu K8s集群安全加固方案
安全·ubuntu·kubernetes
小咕聊编程9 分钟前
【含文档+PPT+源码】基于SpringBoot+Vue的移动台账管理系统
java·spring boot·后端
佩奇的技术笔记13 分钟前
Java学习手册:TCP 协议基础
java·tcp/ip
霸道流氓气质14 分钟前
Java中将CST格式的时间字符串进行格式化
java
稻草猫.18 分钟前
【Java 数据结构】泛型
java·数据结构
-曾牛23 分钟前
Spring Boot常用注解详解:实例与核心概念
java·spring boot·后端·spring·java-ee·个人开发·spring boot 注解
FL1717131437 分钟前
Mujoco & robosuite 机器人模型
xml·java·机器人
张书名40 分钟前
高性能服务器配置经验指南3——安装服务器可能遇到的问题及解决方法
运维·服务器
s11show_1631 小时前
hz修改后台新增keyword功能
android·java·前端
quququ_21381 小时前
Java求职面试:从Spring Boot到微服务的全面考核
java·spring boot·微服务·面试·技术栈