【Consul】Consul的Linux之旅:实现高效部署与维护的入门指南
大家好 我是寸铁👊
总结了一篇【Consul】Consul的Linux之旅:实现高效部署与维护的入门指南✨
喜欢的小伙伴可以点点关注 💝
前言
今天要把编写的go
程序放到linux
上进行测试Consul
服务注册与发现,那怎么样才能实现这一过程?
安装
Step1
sudo yum install -y yum-utils
这个命令安装了 yum-utils 软件包,它提供了一些实用的
yum
工具,比如yum-config-manager
,用于管理 yum 配置。
运行结果如下:
Step2
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
这个命令通过
yum-config-manager
工具向yum
添加了一个新的仓库,即HashiCorp
的软件包仓库。该仓库位于https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
,并包含了Consul
和其他HashiCorp
工具的软件包。
运行结果如下:
Step3
sudo yum -y install consul
这个命令使用
yum
包管理器从HashiCorp
仓库安装了Consul
。-y
标志表示在安装过程中不需要用户确认,直接默认回答"yes"
。
运行结果如下:
验证安装成功
consul version
启动客户端
做完三步后台启动一下Consul
的客户端,命令如下:
nohup consul agent -dev > /dev/null 2>&1 &
启动成功后,会弹出如下信息:
代表启动
Consul
客户端成功!
停止服务
在节点运行终端中执行:ctrl + c
,表示退出节点运行。
报错排查
出现如下信息,报错不要慌,寸铁带你解决!
=> Starting Consul agent...
Version: '1.18.1'
Build Date: '2024-03-26 21:59:08 +0000 UTC'
Node ID: '7d32991a-f1f0-ba7f-8f21-3bfe0ddf3295'
Node name: 'localhost.localdomain'
Datacenter: 'dc1' (Segment: '<all>')
Server: true (Bootstrap: false)
Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, gRPC: 8502, gRPC-TLS: 8503, DNS: 8600)
Cluster Addr: 127.0.0.1 (LAN: 8301, WAN: 8302)
Gossip Encryption: false
Auto-Encrypt-TLS: false
ACL Enabled: false
Reporting Enabled: false
ACL Default Policy: allow
HTTPS TLS: Verify Incoming: false, Verify Outgoing: false, Min Version: TLSv1_2
gRPC TLS: Verify Incoming: false, Min Version: TLSv1_2
Internal RPC TLS: Verify Incoming: false, Verify Outgoing: false (Verify Hostname: false), Min Version: TLSv1_2
==> Log data will now stream in as it occurs:
2024-03-30T23:31:57.167+0800 [WARN] agent: Node name "localhost.localdomain" will not be discoverable via DNS due to invalid characters. Valid characters include all alpha-numerics and dashes.
2024-03-30T23:31:57.168+0800 [DEBUG] agent.hcp: initialized HCP metrics sink
2024-03-30T23:31:57.169+0800 [DEBUG] agent.grpc.balancer: switching server: target=consul://dc1.7d32991a-f1f0-ba7f-8f21-3bfe0ddf3295/server.dc1 from=<none> to=<none>
2024-03-30T23:31:57.180+0800 [WARN] agent.auto_config: Node name "localhost.localdomain" will not be discoverable via DNS due to invalid characters. Valid characters include all alpha-numerics and dashes.
2024-03-30T23:31:57.183+0800 [INFO] agent.server: shutting down server
2024-03-30T23:31:57.184+0800 [ERROR] agent: Error starting agent: error="Failed to start Consul server: Failed to start RPC layer: listen tcp 127.0.0.1:8300: bind: address already in use"
2024-03-30T23:31:57.184+0800 [INFO] agent: Exit code: code=1
具体如下:
2024-03-30T23:31:57.184+0800 [ERROR] agent: Error starting agent: error="Failed to start Consul server: Failed to start RPC layer: listen tcp 127.0.0.1:8300: bind: address already in use"
2024-03-30T23:31:57.184+0800 [INFO] agent: Exit code: code=1
这个地址127.0.0.1:8300
已经在使用了,说明你已经启动了。
使用如下命令查看使用情况:
ps -ef | grep consul
$ ps -ef | grep consul
root 16888 1 0 Jan20 ? 09:22:26 consul agent -dev
root 22218 19751 0 16:45 pts/0 00:00:00 grep --color=auto consul
如果想要关闭,执行命令
kill -9
强制杀死进程,第一个元素(上面的16888
)就是进程id
再重新启动,如下:
nohup consul agent -dev > /dev/null 2>&1 &
显示结果如下:
说明启动成功了!
查看Consul信息
查看服务目录
consul catalog services
如下信息:
[root@localhost ~]# consul catalog services
consul
consul
是Consul官方默认存在的一个服务
查看注册服务的信息
向Consul
监控的8500
端口发送请求,查看注册Consul
服务的信息。
curl http://localhost:8500/v1/agent/services
查看笔者注册的Consul
信息结果如下:
[root@localhost resourceScheMana]# curl http://localhost:8500/v1/agent/services
{
"C_72_B_1": {
"ID": "AAAA",
"Service": "ADD",
"Tags": [
"sadijsajmijdsa5256451"
],
"Meta": {},
"Port": 1151,
"Address": "124.30.52.xx",
"TaggedAddresses": {
"lan_ipv4": {
"Address": "124.30.52.xx",
"Port": 1611
},
"wan_ipv4": {
"Address": "124.30.52.xx",
"Port": 1611
}
},
"Weights": {
"Passing": 1,
"Warning": 1
},
"EnableTagOverride": false,
"Datacenter": "dc1"
}
至此,
Linux
安装和使用Consul
的基本操作完成!!!
看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕
往期好文💕
保姆级教程
【保姆级教程】Windows11下go-zero的etcd安装与初步使用
【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero
【Go-Zero】手把手带你在goland中创建api文件并设置高亮
报错解决
【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 报错解决方案及api路由注意事项
【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案
【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案
【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案
【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案
【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案
【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案