谷粒商城实战笔记-101-分布式基础篇总结

news2024/11/13 16:02:08

文章目录

  • 一、分布式基础概念
  • 二、基础开发
  • 三、环境搭建
  • 四、开发规范

分布式基础篇已经学习完成,包含了以下4个部分的知识:

  • 1,分布式基础概念
  • 2,基础开发
  • 3,环境搭建
  • 4,开发规范
    在这里插入图片描述

学习并掌握这部分内容,已经具备了进入公司进行真实开发的能力,实际上在工作中,大部分时间,我们用的都是这些非常基础的知识。

当然,观看视频是不够的,还必须亲自动手写代码,且是先理解需求,然后写代码,不是照着视频一行一行抄。只有这样,才能体会一个需求是怎么通过代码实现的,通过解决编码和测试过程中遇到的问题,掌握各个技术栈的原理和他们之间的关系,才能在开发过程中运用自如。

在学习过程中,以下几点行动是值得参考的:

  • 1,在理解商城需求的基础上编写代码,不要抄代码
  • 2,每一集做一个简单的总结,记录做了什么,思考为什么要这么做
  • 3,记录每一个遇到的问题,为什么出现这个问题,如何解决的
  • 4,总结商城业务,SPU、SKU、三级分类、品牌、分组、规格参数、销售属性的概念及相互之间的更新,商品发布的流程,采购流程及其与库存的关系

一、分布式基础概念

在本篇文章中,我们将对分布式系统中的核心概念和技术进行总结。

1. 微服务

微服务是一种将单个应用程序开发为一组小型服务的方法,每个服务运行在其独立的进程中并使用轻量级机制(通常是HTTP资源API)进行通信。这种架构允许快速、可靠地独立构建、部署和扩展服务。

2. 注册中心

随着服务数量的增长,服务间如何发现彼此成为了一个问题。注册中心(如Eureka、Consul等)用于管理服务实例的生命周期,帮助服务发现彼此的位置。

3. 配置中心

配置中心(如Spring Cloud Config)允许我们在不修改代码的情况下,动态地管理和更新配置。这对于生产环境中频繁变更的配置特别有用。

4. 远程调用

Spring Cloud提供了多种远程调用框架,如Feign,它简化了HTTP请求的发送过程。通过@EnableFeignClients注解启用Feign客户端,即可轻松实现服务间的调用。

5. 网关

网关(如Zuul或Spring Cloud Gateway)作为所有外部请求的入口点,可以集中处理跨域、认证、鉴权等通用功能。

二、基础开发

在基础开发阶段,我们主要使用了Spring Boot 2.0、Spring Cloud、Mybatis-Plus以及Vue.js进行组件化的视图开发。

1. Spring Boot 2.0

Spring Boot 2.0基于Spring Framework 5,引入了Reactor框架,带来了响应式编程模型WebFlux。这使得开发者能够更加高效地构建高性能和高并发的应用程序。

2. Mybatis-Plus

Mybatis-Plus是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生。

3. Vue.js组件化

在项目实践中,我们通过Vue.js进行了视图组件化开发,实现了商品分类维护、品牌管理等功能,为开发者提供了全面的前端解决方案。

三、环境搭建

为了更好地进行分布式系统的开发和测试,我们需要搭建一套完整的开发环境。

1. Vagrant

Vagrant是一款开源的虚拟机管理软件,可以帮助我们快速创建和销毁虚拟机环境。

2. Linux

Linux是一套免费用户使用的类Unix操作系统,具有良好的稳定性和安全性。

3. Docker

Docker是目前最流行的容器技术之一,它可以让我们以更轻量级的方式打包和分发应用。

4. MySQL & Redis

MySQL和Redis分别是关系型数据库和键值存储数据库,它们为我们提供数据持久化和缓存能力。

四、开发规范

在实际开发过程中,我们需要遵循一定的开发规范,以保证代码质量和团队协作效率。

1. 数据校验JSR303

JSR303是Java EE平台的一部分,定义了一组标准的验证注解,可用于验证对象属性是否符合特定规则。

2. 全局异常处理

全局异常处理是指在统一的地方捕获和处理可能出现的所有异常,避免因未被捕获的异常导致程序崩溃。

3. 全局统一返回

全局统一返回指在服务端统一处理所有接口的返回结果,包括状态码、错误信息等内容,方便客户端解析。

4. 全局跨域处理

由于前后端分离的开发模式,需要解决跨域访问的问题。我们可以使用Spring Boot提供的CORS机制来实现全局跨域处理。

5. 枚举状态、业务状态码

在开发中,我们通常会使用枚举来表示一些固定的状态,同时设置相应的业务状态码,以便于日志记录和异常处理。

6. VO与TO与PO划分

VO(Value Object)、TO(Transfer Object)和PO(Persistent Object)分别代表不同的数据传输对象,根据需求合理选择和设计这些对象,有助于提升代码可读性和可维护性。

7. 逻辑删除

逻辑删除是指当需要删除某条记录时,不是物理上真正删除,而是设置一个标志位标记该记录已删除。这样做的好处是可以防止误删数据,便于后期恢复。

8. Lombok

Lombok是一个可以通过注解自动添加getter/setter、equals()、hashCode()、toString()等方法的库,减少了大量冗余代码。

分布式基础篇的内容涵盖了微服务、注册中心、配置中心、远程调用、网关等多个方面,同时也介绍了Spring Boot 2.0、Spring Cloud、Mybatis-Plus、Vue组件化等技术在实际项目中的应用。此外,还提到了Vagrant、Linux、Docker、MySQL、Redis等环境搭建方案,以及数据校验、全局异常处理、全局统一返回、全局跨域处理等开发规范。最后,我们还讨论了枚举状态、业务状态码、VO与TO与PO划分、逻辑删除以及Lombok等编码技巧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超声波眼镜清洗机是智商税吗?最好用的超声波清洗机推荐

大家知道,在咱们生活的环境里。到处充斥着细菌,像衣服上、手上等等地方都很容易被沾染上比细菌,很影响咱们的健康。所以大家会勤洗手,勤换洗衣服,来减少细菌病毒伤害。然而对于戒指、项链、眼镜、手表等配饰细菌&#…

软考:软件设计师 — 9.数据流图

九. 数据流图 数据流图是下午场考试中第一个题目,分值 15 分。通常会考察实体名、存储名、加工名的补充,以及找到缺失的数据流并改正等。 1. 数据平衡原则 数据流的分析依赖于数据平衡原则。 父图与子图之间的平衡 父图与子图之间平衡是指任何一张 …

mp3剪辑音乐怎么剪?手把手教会你4个音频剪辑技巧

在制作创意无限的“矿泉水瓶烟花视频”时,音效的选择与剪辑往往是点睛之笔。想象一下,那绚烂的视觉盛宴搭配上恰到好处的背景音乐,是否能让你的作品更加引人入胜? 而要精准地控制每一个音符的起承转合,一款强大的mp3剪…

【学习笔记】Day 1

一、进度概述 1、配置相关环境——注:暂未完成,还有部分依赖没有补充完整 2、试运行 3、《地震数据全波形反演的深度学习方法》PPT知识梳理方法地震数据全波形反演的深度学 二、详情 1、配置相关环境 深度学习环境配置参考文章如下&a…

VS+Qt+C++点云PCL三维显示编辑系统

程序示例精选 VSQtC点云PCL三维显示编辑系统 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《VSQtC点云PCL三维显示编辑系统》编写代码,代码整洁,规则,易…

HttpRequest请求对象和HttpResponse响应对象

HttpRequest请求对象 1.获取请求头 2.获取请求参数 通过请求对象获取请求头 获取GET参数(valuerequest.GET.get(参数名称,默认值))获取POST参数valuerequest.POST.get(参数名称,默认值))获取URL参数&#xf…

C++ 预置和弃置的函数

在C11中,预置和弃置的函数是用于处理移动语义和完美转发的。 预置函数(Move Constructor)是在对象被移动时调用的构造函数。它允许将资源从一个对象转移到另一个对象,而不是进行复制。这可以提高性能,特别是在处理大型…

红酒与美食搭配:味觉的新探索

在美食的世界里,红酒如同一位优雅的舞者,与各种佳肴共舞,创造出无尽的味觉惊喜。当定制红酒洒派红酒(Bold & Generous)与各式美食相遇,便开启了一场味觉的新探索之旅。 一、红酒与美食的邂逅&#xff…

中国LLM研究所收集100+AI大模型资源

自ChatGPT为代表的大语言模型 (大型语言模型,LLM)出现以后,由于其惊人的类通用人工智能(AGI)的能力,掀起了新一轮自然语言处理领域的研究和应用的浪潮。尤其是以ChatGLM、LLaMA等平民玩家都能跑起来的较小规模的法学开源之后,业界…

@SchedulerLock注解使用

文章目录 Scheduled注解参数介绍建表配置类示例参考 如果服务中使用了Scheduled注解,且服务部署了多个节点。那么在同一时刻,所有节点都会执行定时任务。但有有些任务我们只需执行一次,这就需要使用分布式锁的方式来控制,如可以使…

写文案的软件有哪些,四款强大的文案生成器为你创作文案

文案,作为沟通和营销的桥梁,其重要性不言而喻。然而,创作出既吸引人又具有说服力的文案,往往需要投入大量的时间和精力。随着市场上出现了一些能够辅助甚至替代人工创作文案的生成器出现,它解决了大家创作文案的难题。…

(器件)ATMXT1664S1是电容式触摸屏控制器、而ATMXT2912TG-A则是maXTouch 2840节点触摸屏控制器

1、maXTouch mXT1664S电容式触摸屏控制器为大型触摸屏设备带来了S系列架构。mXT1664S得益于强大的32位AVR内核,并且由于S系列架构,它具有业界最高的信噪比(SNR),提供了无与伦比的触摸性能。与S系列中的其他设备一样,mXT1664S包括:…

在OA系统中,飞书的设计从颜值和体验上算是天花板了吧?

书是一款优秀的企业通讯协作工具,在 OA 系统的设计上有很多优点,如用户界面友好、安全性高和协作功能丰富等。但它也有一些可以改进的地方,以下是一些可能的方向: 用户体验一致性:飞书的不同功能模块可能在用户体验上…

TCP的可靠机制

TCP的可靠机制 前言 要了解TCP的可靠机制,我们必须要先熟悉TCP的报文,在这篇文章中有详细介绍TCP的报文 : 并且确认应答机制也在该文章中提到,所以这篇文章就不会再介绍确认应答了。 超时重传 我们都知道,报文在网…

2024年【起重机司机(限桥式起重机)】最新解析及起重机司机(限桥式起重机)找解析

题库来源:安全生产模拟考试一点通公众号小程序 起重机司机(限桥式起重机)最新解析根据新起重机司机(限桥式起重机)考试大纲要求,安全生产模拟考试一点通将起重机司机(限桥式起重机)模拟考试试题进行汇编,组成一套起重机司机(限桥式起重机)全…

c++(模版)

目录 函数模板格式 函数模版原理 函数模板的实例化 模板参数的匹配原则 类模板 函数模板格式 template<typename T1, typename T2,......,typename Tn> 返回值类型 函数名(参数列表){} template<typename T> void Swap( T& left, T& right) { T te…

cesium的flyTo在飞行完成后渲染

viewer.camera.flyTo({}); 替换自己要渲染的labe img等 viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(lon,lat,height), // 飞行目的地&#xff0c;视角高度duration: 3, // 飞行所用时间// 飞行完成后的事件complete: function() {viewer.camera.flyTo…

pytorch: cpu,cuda,tensorRt 推理对比学习

0&#xff1a;先看结果 针对resnet模型对图片做处理 原图结果 分别使用cpu&#xff0c;cuda&#xff0c;TensorRt做推理&#xff0c;所需要的时间对比 方法时间cpu13s594mscuda711mstensorRt 113ms 项目地址&#xff1a; GitHub - july1992/Pytorch-vily-study: vily 学…

KubeVirt虚拟机存储及网络卸载加速解决方案

1. 方案背景 1.1. KubeVirt介绍 随着云计算和容器技术的飞速发展&#xff0c;Kubernetes已成为业界公认的容器编排标准&#xff0c;为用户提供了强大、灵活且可扩展的平台来部署和管理各类应用。然而&#xff0c;在企业的实际应用中&#xff0c;仍有许多传统应用或遗留系统难…

电脑缺少directx怎么办?电脑dll修复详细教程!7种方法!

DLL&#xff08;动态链接库&#xff09;文件是Windows操作系统中非常重要的组成部分&#xff0c;它们包含了程序运行所需的代码和数据。然而&#xff0c;由于各种原因&#xff0c;如系统更新、软件卸载不当或病毒感染&#xff0c;DLL文件有时会丢失或损坏&#xff0c;导致程序无…