前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >复盘mall电商项目部署到云服务器过程中踩过的两个坑

复盘mall电商项目部署到云服务器过程中踩过的两个坑

作者头像
用户3587585
发布2024-03-25 10:24:21
1520
发布2024-03-25 10:24:21
举报
文章被收录于专栏:阿福谈Web编程阿福谈Web编程

引言

笔者在部署mall项目的过程中其实踩了两个典型的坑,花了不少时间才解决,这里笔者也记录下来,为在部署过程中遇到相同报错的读者朋友提供解决方案。

一、mall-portal服务连接超时

报错日志

代码语言:javascript
复制
2024-03-02 01:23:26 [reactor-http-epoll-2] ERROR o.s.b.a.w.r.e.AbstractErrorWebExceptionHandler - [75a7ff78-4]  500 Server Error for HTTP GET "/mall-portal/home/content"
io.netty.channel.ConnectTimeoutException: connection timed out: /10.0.8.16:8085
        at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$2.run(AbstractEpollChannel.java:613)
        Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:

问题定位

mall-gateway微服务网关在调用mall-portal微服务的时候报了上面这个连接超时的错误,为了解决这个问题笔者花了不少时间,后面发现mall-portal服务的ip地址10.0.8.16为内网ip,而在微服务调用的时候是需要一个公网的ip地址才能调用成功的。而当时我的mall-portal微服务明明是部署在一台腾讯云公网服务器上的。后面才发现原来是因为我的nacos服务部署在一台腾讯云轻应用服务器上,它会把同样部署在腾讯云服务器上的服务的ip注册为内网ip,造成mall-gateway网关服务在使用open-fengin客户端通过http请求在调用mall-portal微服务时报连接无法识别ip地址,从而造成连接超时的错误。

解决的方案

nacos注册中心服务部署到云服务器上,例如阿里云或腾讯云服务器上,注意一定不能部署到轻应用服务器上。

二、Nacos Grpc 服务状态运行时异常

报错日志

代码语言:javascript
复制
2024-03-05 23:52:19 [com.alibaba.nacos.client.remote.worker] ERROR c.a.n.c.r.client.grpc.GrpcClient - Server check fail, please check server 47.113.205.244 ,port 9848 is available , error ={}
java.util.concurrent.ExecutionException: com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
        at com.alibaba.nacos.shaded.com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:566)   com.alibaba.nacos.shaded.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:740)
        at com.alibaba.nacos.shaded.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
        at com.alibaba.nacos.shaded.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
        ... 3 common frames omitted
Caused by: com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: 拒绝连接: /47.113.205.244:9848
Caused by: java.net.ConnectException: 拒绝连接
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
        at com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330)

问题定位

Nacos服务不仅需要开通8848端口防火墙用于访问Nacos控制台,还需要开放9848端口用于GRPC协议通信,错误日志的第一行也提示的非常明显,让我们检查nacos服务器上用于Grpc客户端通信的9848端口是否可用。

解决方案

开通9848端口防火墙,同时登录云服务器控制台,在入站规则界面添加9848端口的入站规则

代码语言:javascript
复制
firewall-cmd --add-port=9848/tcp --zone=public --permanent
firewall-cmd --reload
总结

以上两个报错,第一个算比较难一点,需要结合自己的猜想和推理尝试才好解决。而第二个报错则日志提示得非常明显,解决起来也很容易。通过查看日志中的报错明细,其实都非常解决程序运行过程中出现的报错。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-17,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 阿福谈Web编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、mall-portal服务连接超时
  • 二、Nacos Grpc 服务状态运行时异常
  • 总结
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com