首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >复盘mall电商项目部署到云服务器过程中踩过的两个坑

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

作者头像
用户3587585
发布于 2024-03-25 02:24:21
发布于 2024-03-25 02:24:21
37600
代码可运行
举报
文章被收录于专栏:阿福谈Web编程阿福谈Web编程
运行总次数:0
代码可运行

引言

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

一、mall-portal服务连接超时

报错日志

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
firewall-cmd --add-port=9848/tcp --zone=public --permanent
firewall-cmd --reload
总结

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录 Day4
Qiuner
2024/07/19
5310
黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录 Day4
解决Spring Cloud整合Nacos与Gateway的探险之旅
在当今云原生应用的激动人心时代,Spring Cloud作为一种流行的微服务框架,与Nacos配置中心和Gateway网关的整合,为开发者提供了强大而灵活的工具来构建可伸缩的分布式系统。然而,尽管这个技术栈带来了无限的可能性,但在实践中,我们经常会遇到一些令人挑战的问题。
一只牛博
2025/05/30
3420
K8S 部署电商项目
域名分配及动态更新问题 从上面的方法,采用 Nginx-Pod 似乎已经解决了问题,但是其实这里面有一个很大缺陷:当每次有新服务加入又该如何修改 Nginx 配置呢?我们知道使用 Nginx 可以通过虚拟主机域名进行区分不同的服务,而每个服务通过 upstream 进行定义不同的负载均衡池,再加上 location 进行负载均衡的反向代理,在日常使用中只需要修改 nginx.conf 即可实现,那在 K8S 中又该如何实现这种方式的调度呢?假设后端的服务初始服务只有 ecshop,后面增加了 bbs 和 member 服务,那么又该如何将这 2 个服务加入到 Nginx-Pod 进行调度呢?总不能每次手动改或者 Rolling Update 前端 Nginx Pod 吧!此时Ingress 出现了,如果不算上面的 Nginx,Ingress 包含两大组件:Ingress Controller 和 Ingress。
全栈程序员站长
2022/09/02
1.1K0
10分钟在 Rainbond 上部署 mall 电商项目
很多小伙伴在学习 mall 电商项目时,都会在部署上折腾许久,虽然目前已经提供了很多种部署方式,比如 在 Linux 上部署 mall 、使用 Docker 或 DockerCompose 部署 mall ,但对于正在学习的我们都显得比较复杂,需要理解并学习这些容器技术。而本文将使用 Rainbond 部署 mall 电商项目,通过 Rainbond 部署 mall 商城项目非常方便、简单,让我们专注于代码,Rainbond 是一个云原生应用管理平台,使用简单,不需要懂容器、Kubernetes和底层复杂技术,轻松的在 Kubernetes 上部署应用并体验 Kubernetes 带来的能力。
Rainbond开源
2023/01/12
6190
微服务项目部署记录
小说精品屋开源项目是基于springcloud alibaba开发的微服务架构,整合了比较多的技术知识点,本文介绍windows本地部署的过程,一方面为了强化记忆,另一方面也是加深对微服务知识的学习
在水一方
2022/06/14
3020
微服务项目部署记录
Web项目部署到腾讯云服务器
由于我用的是maven项目,开发工具是IntelliJ IDEA 2019.3.3 x64,所以直接 点击下图中的package即可
别团等shy哥发育
2023/02/25
12.5K0
Web项目部署到腾讯云服务器
重磅更新!mall 微服务版本支持K8S部署啦!
通过把mall-swarm项目部署到K8S上,我们可以发现K8S也没有想象中到那么难,K8S中的很多东西都是和Docker相通的!当我们听到消息称某个新技术要取代旧技术了,往往会困惑我们学的那些旧技术是不是过时了,没用了?其实我们大可不必担心,往往新技术都是在旧技术的基础上产生的,而且那些会旧技术的人会更容易掌握新技术!
macrozheng
2021/03/11
1.3K0
重磅更新!mall 微服务版本支持K8S部署啦!
强烈推荐一个技术栈丰富的微电商项目luban-mall
luban-mall 项目脱胎于开源电商项目mall,并在这一开源项目的基础上由鲁班学院以伯乐老师为代表的几位讲师等进行了项目增强和完善。它是基于SpringBoot+MyBatis的电商系统,包括前台商城系统及后台管理系统
用户3587585
2022/09/21
1.4K0
强烈推荐一个技术栈丰富的微电商项目luban-mall
Docker命令大总结,主要微服务项目部署
3.5 给MySQL挂载本地目录容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下:
叫我阿杰好了
2022/11/07
1.8K0
Docker命令大总结,主要微服务项目部署
将node项目部署到云服务器详细教程
这里我已经安装过Xshell了,无法演示安装完毕的提示内容。我就演示输入 bt default 的提示
CRMEB商城源码
2022/04/20
6.2K0
将node项目部署到云服务器详细教程
微服务架构下该如何技术选型呢?
一、前言 实现基于微服务开发的产品时,或者说将单体应用重构为微服务架构时,将面临着众多技术框架的选择。大公司往往会有专门的部门或团队来负责自主研发的框架,以满足产品的需要,但是对于一般的中小型企业,选择合适的开源框架就显得更接地气了。本章将简单介绍微服务中,在技术选型时需要注意哪些原则,以及有哪些常用的开源技术框架,希望能够为大家在进行技术选型、调研时提供一些思路和方向。 笔者面试过很多程序员,一提及微服务,就会具体说到Spring Boot、Spring Cloud,然后就是“背诵”各种具体的用法和配置文
博文视点Broadview
2023/05/19
1.1K0
微服务架构下该如何技术选型呢?
SpringBoot整合高性能微服务框架 gRPC
在 gRPC 里,客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得我们能够更容易地创建分布式应用和服务。
微观技术
2021/03/11
7.3K1
SpringBoot整合高性能微服务框架 gRPC
第一次使用腾讯云服务器进行项目部署记录总结
这个可以说是自己第一次使用腾讯云服务器上线项目,这个过程中遇到了很多的问题,特此写一篇文章记录说明一下;
阑梦清川
2025/03/15
1680
Docker部署Seata服务器
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/10/31
1.1K0
Docker部署Seata服务器
Github标星25K+Star,SpringBoot实战电商项目mall出SpringCloud版本啦!
mall-swarm是一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 2、MyBatis、Docker、Elasticsearch等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。
macrozheng
2019/12/11
1.1K0
DartVM服务器开发(第十八天)--项目部署到云服务器
先购买一台云服务器,我选择的是Ubuntu / 16.04 LTS amd64 (64bit)操作系统
rhyme_lph
2018/09/13
1.7K0
DartVM服务器开发(第十八天)--项目部署到云服务器
Nacos2.1.0 - 外网服务器上的集群部署
简介什么是 NacosNacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服
Reset
2022/12/19
2.3K0
记一次使用nacos2踩到的坑
因为是学习使用,朋友就在物理机搭建了搭建了nacos伪集群,即ip都一样,端口分别为8848,8847,8849。然而启动nacos服务器后,一台正常启动,其他两台都报了端口被占用
lyb-geek
2022/08/19
5.4K2
记一次使用nacos2踩到的坑
万字长文 | Spring Cloud Alibaba组件之Nacos实战及其客户端服务注册源码解析
假设有这样一个场景,我们乘坐公车需要确定自己的座位在哪里,才能入座,否则有可能那是别人的座位,等别人来做的时候把我撵起来那就尴尬了。正常的情况应该是有个售票员给我发个带有座位编号的票,然后我去对号入座,这样就可以快速找到自己的座位且没有被撵走的风险。
行百里er
2022/11/22
1.3K0
万字长文 | Spring Cloud Alibaba组件之Nacos实战及其客户端服务注册源码解析
Nacos搭建单机实例
Nacos是阿里开源的微服务架构组件,既可以用作服务注册中心,也可用作配置中心。 虽然Nacos的官方文档也有关于如何部署的说明,但是个人觉得不够详细和连续,故本文将阐述在单机环境实际搭建Nacos环境的详细步骤已经遇到的一些问题。
编程随笔
2023/10/15
6510
推荐阅读
相关推荐
黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录 Day4
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验