前后端分离项目知识汇总(GateWay,Nacos配置中心,Jenkins自动化部署,项目总结)-3

简介: 前后端分离项目知识汇总(GateWay,Nacos配置中心,Jenkins自动化部署,项目总结)

前后端分离项目知识汇总(GateWay,Nacos配置中心,Jenkins自动化部署,项目总结)-2

https://developer.aliyun.com/article/1425323


项目总结和复盘


(1)


B2C(Business to Customer)。B2C中的B是Business,意思是企业,2则是to的谐音,C是Customer,意思是消费者,所以B2C是企业对消费者的电子商务模式。这种形式的电子商务一般以网络零售业为主,主要借助于Internet开展在线销售活动。


在线教育系统,分为前台网站系统和后台管理系统,B2C模式。


前台用户系统包括课程、讲师、问答、文章几大大部分,使用了微服务技术架构,前后端分离开发。


后端的主要技术架构是:SpringBoot + SpringCloud + MyBatis-Plus + MySQL + Maven+EasyExcel+ nginx


前端的架构是:Node.js + Vue.js +element-ui+NUXT+ECharts


其他涉及到的中间件包括Redis、阿里云OSS、阿里云视频点播


业务中使用了ECharts做图表展示,使用EasyExcel完成分类批量添加、注册分布式单点登录使用了JWT


(2)


项目前后端分离开发,后端采用SpringCloud微服务架构,持久层用的是MyBatis-Plus,微服务分库设计,使用Swagger生成接口文档


接入了阿里云视频点播、阿里云OSS。


系统分为前台用户系统和后台管理系统两部分。


前台用户系统包括:首页、课程、名师、问答、文章。


后台管理系统包括:讲师管理、课程分类管理、课程管理、统计分析、Banner管理、订单管理、权限管理等功能。


前后端联调经常遇到的问题

1、请求方式post、get


2、json、x-wwww-form-urlencoded混乱的错误


3、后台必要的参数,前端省略了


4、数据类型不匹配


5、空指针异常


前后端分离项目中的跨域问题是如何解决的

后端服务器配置:我们的项目中是通过Spring注解解决跨域的 @CrossOrigin


也可以使用nginx反向代理、httpClient、网关


说说你做了哪个部分、遇到了什么问题、怎么解决的

分布式id生成器在前端无法处理,总是在后三位进行四舍五入。


分布式id生成器生成的id是19个字符的长度,前端javascript脚本对整数的处理能力只有2的53次方,也就是最多只能处理16个字符


解决的方案是把id在程序中设置成了字符串的性质


前端渲染和后端渲染有什么区别

前端渲染是返回json给前端,通过javascript将数据绑定到页面上


后端渲染是在服务器端将页面生成直接发送给服务器,有利于SEO的优化


能画一下系统架构图吗


Bug记录

maven错误解决

用我的仓库

删了包,让它重新下

执行了全局异常处理


常见的排错方式

如下错误

排错思路

从头开始想,当我点击这个按钮的时候发生了什么事,从前端想到后端依次检查。如果都没有错误那就检查其他配置,如nginx,nacos,等第三方技术


好,那么我们来实践一下

1、从前到后发森什么事了?

2、详细分析

用开发者工具抓包,看看请求的过程都发生了什么


因为整个项目是微服务架构,这里其实是订单微服务调用了课程信息、用户信息微服务。

用户信息都是显示出来的,那就说明是课程微服务出问题了,我们先用swagger进行测试看看接口的功能有没有问题


问题逐渐清晰了,后端功能没问题,那就是前端的问题了

其实刚才我们就能定位到是前端的问题,因为课程id参数为undefined,参数是通过前端传的。为了更严谨,我们选择都测试。

让目光再次回到前端代码


再次测试

Feign调用异常FeignException$NotFound: [404] during


一般来说,feign报404错误有以下几个原因

1、路径错误

在服务消费者断采用GetMapping方式,如

@GetMapping(“knowledge/metadata/delete/{mdcode}”)


在服务提供者端,用

@RestController

@RequestMapping(“knowledge”)

public class KnowledgeGraphController {


@RequestMapping(“metadata/delete/{mdcode}”)

(实现方法)

}


服务消费者端,一定要加上knowledge呀喂


2、在多个客户端上启动了服务提供者服务,而这两边的服务方法没同步,所以在调用feign时,会采用负载均衡,在多个客户端上一边读取一次。如果这个时候恰好读的是没有指定方法的客户端提供的服务,就会报404错误。

建议改好方法之后提交,两边再跑服务


3、路径上参数为null

例如mdcode 为null,匹配不到路径地址,触发不了路径问题


参考


视频演示

尚硅谷_谷粒学苑-微服务+全栈在线教育实战项目_哔哩哔哩_bilibili

什么是跨域

https://www.jianshu.com/p/8fa2acd103ea

相关文章
|
8月前
|
jenkins Java 持续交付
使用Jenkins完成springboot项目快速更新
本文介绍了使用Jenkins和WinSW实现SpringBoot项目自动化部署的完整流程。首先讲解了Jenkins作为持续集成工具的作用,然后详细说明了环境准备步骤:包括JDK版本管理、WinSW服务配置(含XML文件修改)以及bat启动脚本编写。重点演示了Jenkins的项目配置方法,包括源码管理设置和构建步骤中的Windows批处理命令调用。通过这套方案,开发者只需推送代码到Git仓库,即可触发Jenkins自动完成项目构建、服务重启等全流程,显著提升部署效率。文章还提到IDEA的Jenkins插件可进
352 1
|
7月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
393 0
|
11月前
|
存储 Kubernetes 安全
Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置
无论是使用 Nacos-Controller 实现配置的双向同步,还是直接在应用中接入 Nacos SDK 以获得更高级的配置管理特性,都能显著提升配置管理的灵活性、安全性和可维护性。使用 Nacos,您能够更好地管理和优化您的应用配置,从而提高系统的稳定性和可靠性。
896 50
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
2271 81
高效搭建Nacos:实现微服务的服务注册与配置中心
|
9月前
|
Ubuntu jenkins 机器人
在Jenkins上配置触发Ubuntu环境的图形用户界面(GUI)构建任务。
以上,这趟融合了技术与艺术的Jenkins配置之旅就告一段落了。记住,技术应当像艺术一样有趣和生动,这样才能激发出最大的创新和效率。
264 2
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
1541 137
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
1182 206
|
11月前
|
存储 人工智能 测试技术
Nacos托管LangChain应用Prompts和配置,助力你的AI助手快速进化
AI 应用开发中,总有一些让人头疼的问题:敏感信息(比如 API-KEY)怎么安全存储?模型参数需要频繁调整怎么办?Prompt 模板改来改去,每次都得重启服务,太麻烦了!别急,今天我们就来聊聊如何用 Nacos 解决这些问题。
|
Cloud Native Java Nacos
springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析
通过本文,我们详细介绍了如何在 Spring Cloud 和 Spring Boot 中集成 Nacos 进行服务注册和配置管理,并对 Nacos 的源码进行了初步分析。Nacos 作为一个强大的服务注册和配置管理平台,为微服务架构提供
4725 14
|
安全 jenkins 持续交付
如何在 Jenkins 中配置邮件通知?
如何在 Jenkins 中配置邮件通知?
872 11

推荐镜像

更多