搭建Consul报错Failed to start RPC layer: listen tcp XX.XXX.XXX.XXX:XXXX:: bind: cannot assign requested

搭建步骤

1、解压

unzip -o -d /usr/springcloud/consul consul_1.6.0_linux_amd64.zip

2、在consul目录下创建conf、data/consulData文件夹
3、把basic.json文件放到conf目录。

此处贴上basic.json文件内容

{
 
    "ports": {
 
		    "http": 8900,
		 
		    "dns": 8601,
		 
		    "grpc": 8401,
		 
		    "serf_lan": 8311,
		    
		    "serf_wan": 8312,
		 
		    "server": 8310
 
    }
}
4、开启端口:及其它相关端口

firewall-cmd --zone=public --add-port=8900/tcp --permanent

报错过程

在这步的时候遇到问题
FirewallD is not running

对于此问题的解决方法:

 1)查看防火墙状态
 指令:systemctl status firewalld
 执行结果:
 ?.firewalld.service - firewalld - dynamic firewall daemon
 Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
 Active: inactive (dead)
 Docs: man:firewalld(1)
 由此可见,防火墙当前是dead状态,即防火墙未开启
 2)通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
 3)再次通过systemctl status firewalld查看firewalld状态
 执行结果:
 ?.firewalld.service - firewalld - dynamic firewall daemon
 Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
 Active: active (running) since Fri 2019-11-22 09:51:57 CST; 8s ago
 Docs: man:firewalld(1)
 Main PID: 3779 (firewalld)
CGroup: /system.slice/firewalld.service
?..3779 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Nov 22 09:51:56 VM_0_8_centos systemd[1]: Starting firewalld - dynamic firewall daemon…
Nov 22 09:51:57 VM_0_8_centos systemd[1]: Started firewalld - dynamic firewall daemon.
显示防火墙已开启
 4)再次执行当前指令,显示success表示执行成功。

5、重载防火墙:firewall-cmd --reload
6、启动consul:

./consul agent -dev -ui -node=node1 -client 0.0.0.0 -bind=XXX.XX.XX.XXX -config-dir /usr/springcloud/consul/conf/ -data-dir /usr/springcloud/consul/data/consulData/

报错过程

在执行第6步的时候出现如下问题:

Error starting agent: Failed to start Consul server: Failed to start RPC layer: listen tcp XX.XXX.XXX.XXX:XXXX: bind: cannot assign requested address
2019/11/21 11:43:16 [INFO] agent: Exit code: 1

为解决此问题作出的尝试

1、查看端口状态

#ssh XX.XXX.XXX.XXX -p XXXX
返回如下:
ssh: connect to host XX.XXX.XXX.XXX port XXXX: No route to host

2、通过搜索No route to host问题,去/etc/hosts配置了一下hosts文件并重启了网络(然而没卵用)

#vim /etc/hosts
#service network restart
Restarting net work (via systemctl): [ OK ]

3、通过搜索下一个回答,进行如下尝试

答案告诉我,
出现No route to host 的时候,有如下几种可能:
1、对方的域名确实不通(然而我发现直接ping域名能通)
2、本机自己开了防火墙
3、本机的etc/hosts 里面没有配置本机的机器名和ip (可能性最大)

于是关闭防火墙

我配置了本机的机器名和ip,同样没卵用
我想起来了,本机的网络ip不是静态的,
使用ifconfig查看ip地址确实不是我配的那个本机ip
那么
我要不要配一个静态ip呢?
尝试配了一个静态ip,然后云服务器就。。连。不。上。了。。。
重装了系统,接着搞
这次进行第6步的时候绑定了内网地址(就是ifcfg的时候看到的地址)
在这里插入图片描述
这一次运行成功了,输出如上

但是呢,发生了一个问题:由于是直接跑的指令,所以我要执行下一条指令时Ctrl+c退出时,consul就停了。
如上问题的解决方法是:在运行consul的指令后面加上&符,将指令转为后台执行

7、浏览器登陆:http://XXX.XX.XX.XXX:8900,即安装成功

当我配置成内网的时候,我输入内网ip和外网ip访问发现并不能访问
向上级汇报之后,上级登陆管理员账号,将云服务器的相应端口号的访问权限打开了就好了

8、配置系统变量

指令:vim /etc/profile
编辑系统变量文件,配置如下内容
export CONSUL_HOME=consul目录
export PATH=$PATH:CONSUL_HOME
配置完成之后使用环境变量配置生效指令
指令:source /etc/profile

待配置文件生效之后,可以查看安装的consul版本号等信息
指令:consul --version
输出:
Consul v1.6.0
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)

9、配置开机自启动

1)编辑start.sh
vim /consul目录地址/start.sh

添加如下:

#!/bin/bash
/usr/springcloud/consul/consul agent -dev -ui -node=node1 -client 0.0.0.0 -bind=内网ip -config-dir /consul目录地址/conf/ -data-dir /consul目录地址/data/consulData/
2)给start.sh 授权

chmod -R 777 /consul目录地址/start.sh

3)编辑文件/lib/systemd/system/consul.service
vim /lib/systemd/system/consul.service
添加如下:
[Unit]
Description=consul
After=network.target

[Service]
ExecStart=/consul目录地址/start.sh
KillSignal=SIGTERM

[Install]
WantedBy=multi-user.target

10、执行命令重新加载/运行

重新加载
systemctl daemon-reload

开机运行
systemctl enable consul

运行
systemctl start consul

11、如果重新加载配置文件,则直接运行consul reload即可,consul leave同理
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中的错误信息是关于Spring Boot应用程序启动失败的描述。错误提示中建议在配置文件中添加spring.config.import=configserver:属性来解决问题。如果不需要配置文件,可以添加spring.config.import=optional:configserver:来避免这个错误。如果想要禁用这个检查,可以设置spring.cloud.config.enabled=false或spring.cloud.config.import-check.enabled=false。 引用\[2\]中的内容是关于配置中心服务端的配置。其中指定了配置中心的git仓库地址、用户名、密码、默认分支、搜索路径等信息。 引用\[3\]中的内容是关于配置中心客户端的配置。其中指定了配置中心的地址、分支、环境等信息。 根据你的问题,关于Consul配置的绑定问题,我没有找到相关的引用内容。但是根据常见的配置中心使用情况,可以推测你可能需要在配置文件中添加类似于spring.cloud.consul.config.prefix=spring.cloud.consul.config的属性来绑定Consul配置。具体的绑定方式可能需要根据你的具体情况进行调整。 #### 引用[.reference_title] - *1* [SpringCloud Config配置出现“No spring.config.import property has been defined“问题](https://blog.csdn.net/TrayLei/article/details/116615155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Spring Cloud Config 客户端报错:No spring.config.import property has been defined](https://blog.csdn.net/wendebin2014/article/details/116082538)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值