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


分布式基础篇已经学习完成,包含了以下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等编码技巧。

  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值