最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

全球新消息丨如何在Docker下部署nacos并注册Java服务

来源:博客园

在Docker下部署nacos并注册Java服务并不是一个困难的事,难就难在碰到Java服务注册碰到的异常,下面分享一下如何在Docker中部署Docker,如何注册Java服务,并且来解决这个异常的。环境:VMWare 部署两台Linux Ubuntu虚拟机,一台做nacos服务注册中心,一台做Java服务提供者,保证两台能够相互ping通。

步骤:


(资料图)

1.在docker中部署nacos

首先在docker repository中搜索一下nacos:sudo docker search nacos,我们选择第一个nacos/nacos-server.

其次拉取nacos镜像:sudo docker pull nacos/nacos-server

接着查看一下nacos的版本(为什么需要这个步骤,是因为后面要在SpringCloud alibaba中注册Java服务,nacos的版本和SpringCloud alibaba的版本要匹配,否则注册不上报错):sudo docker inspect nacos/nacos-server,下面所示的nacos版本是v2.0.3:"org.opencontainers.image.version": "v2.0.3"

接着运行nacos镜像:

docker run -d -e prefer_host_mode=本机ip(centos7的)  -e MODE=standalone   -v  /nacos/logs:/home/nacos/logs  -p 28999:8848  --name nacosdemo --restart=always   nacos/nacos-server      

最后我们访问:localhost:28999/nacos/:

2.在另外一台虚拟机上注册Java服务,使用 spring cloud alibaba注册Java服务。

首先用alibaba spring boot 脚手架初始化应用:https://start.aliyun.com/bootstrap.html,选择Spring boot版本为2.6.11,具体可以参考之前的文章,如:分布式配置nacos搭建踩坑指南(下)

然后注册一个Java服务,具体可参考:nacos服务注册,注意这里的地址配置成docker 中的nacos地址,端口改为上述docker运行nacos镜像中的28999.application.properties配置如下:

spring.application.name=nocos-discovery-provider-samplespring.cloud.nacos.discovery.username=nacosspring.cloud.nacos.discovery.password=nacosspring.cloud.nacos.discovery.server-addr=http://192.168.1.107:28999spring.cloud.nacos.discovery.namespace=public

运行,发现注册不上nacos,报错,仔细观察是客户端gprs请求call超时了

ERROR 37644 --- [  restartedMain] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, config-client register failed...NacosRegistration....................​com.alibaba.nacos.api.exception.NacosException: Request nacos server failed: .....................Caused by: com.alibaba.nacos.api.exception.NacosException: Client not connected,current status:STARTING

发生这个异常的原因是spring-cloud-alibaba-dependencies的版本和当前的nacos版本不符,我们需要修改spring-cloud-alibaba-dependencies的版本。查看现在的spring-cloud-alibaba-dependencies版本是2021.0.4.0,我们尝试把它修改为: 2.1.2.RELEASE ,再运行,发现注册成功了。

原来每一个版本的spring-cloud-alibaba和nacos都有一个适配版本,如果报上述的异常,我们可以修改spring-cloud-alibaba的版本,从而能正常注册成功了。可以参考spring cloud alibaba github上的版本说明:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E.

关键词: