基础篇01-分布式组件介绍

使用vagrant快速创建虚拟机(已改用vm)

#启动
vagrant up 
#连接
vagrant ssh
#重启
vagrant reload

安装docker

无网络

安装docker步骤

国内镜像源

# 安装mysql
```bash
# 下载
docker pull docker.1ms.run/drupalci/mysql-5.7:latest

#启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d docker.1ms.run/drupalci/mysql-5.7:latest

#进入容器
docker exec -it mysql /bin/bash

#连接
docker exec -it mysql mysql -uroot -proot

安装redis

#拉取
docker pulldocker.1ms.run/library/redis:latest
#启动
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d docker.1ms.run/library/redis:latest redis-server /etc/redis/redis.conf

#连接命令
docker exec -it redis redis-cli

远程连接赋权

SELECT user, host FROM mysql.user WHERE user='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.69.1' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;

2025-06-22-08-49-06-image

创建工程

  • gulimall-test
    在网站上先创建后拉取
    导入spring web 和openFeign组件

导入人人开源项目

  • 创建数据库gulimall-admin
  • 安装nodeJs
  • 设置淘宝镜像
  • npm install报错 "解决chromedriver@2.27.2install: node install.js 的问题"
    报错解决方法
  • 登陆
    启动前后端项目
    admin/admin

代码生成器

  • 下载人人开源代码生成器项目
  • 改项目配置
    image

image

  • 启动项目
    登陆首页,并生成代码
    生成的main文件夹进行粘贴
    删除resources目录下的src(前端代码,暂时用不到)
  • 解决import报错
    创建maven项目gulimall-common
    加相关依赖mybatis-plus lombook
  • product整合mybatis-plus
    导入依赖
    配置数据源
    mysql驱动

分布式组件

springCloud Alibaba介绍

  1. 参考文档SpringCloud组件和spring官网

添加nacos注册发现

  1. 添加依赖
  2. 启动类加注解
  3. 模块的项目名称是必须的
  4. 配置nacos地址

Feign

  1. 引入openfeign依赖
  2. 编写一个接口,告诉springCloud这个接口需要调用远程服务,并加入注解并扫描远程接口位置,在客户端中
    image
    image
  3. 在接口中声明每一个方法都是调用远程服务的哪个请求,即和服务端的接口定义,请求路径保持一致(需要完整的请求路径)
  4. 开启远程调用功能,即注解

nacos作为配置中心

image

  1. 会默认加载一个项目名.properties的配置文件
  2. 默认public命名空间
  3. 利用命名空间做环境隔离
  4. 基于每一个微服务创建命名空间进行隔离
    image
    image
  5. 加载多数据集

网关GateWay

  1. 官网学习
    image
    2.创建项目
    image

image
选择依赖gateWay
3. 服务注册发现

  • 加入注解
  • 配置nacos地址
  • 启动时候报数据库异常
#添加
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

014

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.1.8.RELEASE</version>
	<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
	<java.version>1.8</java.version>
	<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties>

021 Nacos作为注册中心

所有的nacos依赖放入common模块

045 三级分类-递归树形结构

  • 导入数据
    image

046 API三级分类-配置网关路由与路径重写

  • 新增目录-商品系统
    image
    image
  • 新增菜单-分类维护
    image
    image
    image
  • 数据会记录到数据表中sys_menu
  • 创建文件夹product
    image
  • 修改地址到网关
    image
  • renren-fast加入nacos
    没有加入配置中心所以启动报错,不影响使用
  • 网关路由后获取验证码
    image

047 网关统一配置跨域

网关代理,配置跨域请求,非简单请求会发送预检请求
image

048 树形展示三级分类

  • 精确路由放在前面,高优先级

049 删除功能

  • 逻辑删除
    image
    image

066 JSR303

image
image
image
image
image
image
image

068 分组校验

image

154 缓存使用-压力测试,内存泄漏

image

  • 解决方案
    image
    image
    image

155-156 缓存击穿,穿透和雪崩

  • 加锁,单体应用
    image
    查了两遍数据库
    image
    image

  • 分布式锁
    image

157本地锁-分布式环境下的问题

  • 复制服务
    image
    image

158分布式锁原理及使用

image

  • 设置过期时间
    image
    image
    image
  • 原子操作
    image
  • UUID不要删除别人的锁
    image
  • lua脚本 解锁
    image
    image
    image
    image
    image

159 分布式锁redission

image

image
image

posted @ 2025-06-25 07:06  太阳终将升起  阅读(14)  评论(0)    收藏  举报