avatar
文章
35
标签
26
分类
10

首页
时间轴
标签
分类
列表
  • 音乐
  • 电影
  • 照片
友情链接
关于
Journey
搜索
首页
时间轴
标签
分类
列表
  • 音乐
  • 电影
  • 照片
友情链接
关于

Journey

微服务总结
发表于2025-04-16|更新于2025-04-16|java|Springcloud
一、服务调用服务拆分之后,不可避免的会出现跨微服务的业务,此时微服务之间就需要进行远程调用。微服务之间的远程调用被称为RPC,即远程过程调用。RPC的实现方式有很多,比如: 基于Http协议 基于Dubbo协议 1.RestTemplateSpring给我们提供了一个RestTemplate的API,可以方便的实现Http请求的发送。 使用RestTemplate的基本步骤如下 注册RestTemplate到Spring容器 调用RestTemplate的API发送请求,常见方法有: getForObject:发送Get请求并返回指定类型对象 PostForObject:发送Post请求并返回指定类型对象 put:发送PUT请求 delete:发送Delete请求 exchange:发送任意类型请求,返回ResponseEntity 利用RestTemplate发送http请求与前端ajax发送请求非常相似,包含以下信息: 1 请求路径 2 请求方式 3 请求体 4 返回值类型 5 请求参数 案例代码123456789// 2.查询商品ResponseEntity&l ...
黑马点评项目总结
发表于2025-03-30|更新于2025-08-18|javaredis|项目
一、项目介绍八股介绍:之后再补吧。。。。。词穷了 这个项目主要是基于redis相关内容进行展开的,主要实现了用户登录、抢票、点赞、评论、关注等类似社交软件的功能。 二、短信登录1.简介短信登录逻辑是用户填入手机号和短信验证码来校验用户信息。此外,该登录功能还包含了注册,即未注册过的手机号进行登录时,将会默认注册为一个新用户。 2.验证码的获取验证码缓存用户发起获取短信验证码请求时,后端会先随机生成一个6位数验证码,以login:phone:填入的手机号为key,将验证码存入redis中。随后调用短信相关的api,给对应的手机号发送验证码。 1234567891011121314151617@Overridepublic Result sendCode(String phone, HttpSession session) { //1.校验手机号 if (RegexUtils.isPhoneInvalid(phone)){ return Result.fail("非法手机号"); } //2.生成验证码 ...
Linux学习笔记
发表于2025-03-25|更新于2025-04-01|Linux
&&和||&&:从前往后执行,有一个失败则不继续执行 ||:从前往后执行,有一个成功则不继续执行 例子:ping www.hdu.com -c 10 -w 10 && echo success || echo failure -c:发送数据包的次数 -w:总体超时时间,整个ping的最大运行时长 重定向输出重定向 >:将标准输出以覆盖原文件的方式写入 >>:将标准输出追加方式写入 输入重定向<:用于将文件的内容作为输入传递给命令。 <<:用于将多行文本(自己输入的)作为输入传递给命令,适合在脚本中嵌入多行文本。 用法和<有区别,这个后面跟的是分隔符–用于多行输入时终止输入的标志。例如cat << EOF 下图所示的stop是终止输入的标志。 <<<:用于单行字符串的输入 带&的重定向前置知识点:文件描述符 0标准输入stdin按键 1标准输出stdout屏幕 2标准错误输出stderr屏幕 &>:将标准输出和错误输出重定向到文件中。 类似于部 ...
Redis最佳实践
发表于2025-03-22|更新于2025-03-23
1.键值设计优雅的key结构key的最佳实践约定 1.遵循基本格式:**[业务名称]:[数据名]:[id]** 2.长度不超过44字节 3.不包含特殊字符 优点 可读性强 避免key冲突 方便管理 更节省内存:key是string类型,底层编码包含int,embstr和raw三种。embstr在小于44字节使用,采用连续内存空间,内存占用更小。raw模式下,内存空间不是连续的,而是会采用指针形式指向其他空间。 拒绝BigKey什么是BigKey key本身的数据量过大,比如一个key的值就占了5MB。 key中的成员数过多,比如一个ZSET类型的key,它的成员数量为10000个。 key中成员的数据量过大,比如一个Hash类型的key,它的成员数量虽然只有1000个,但这些value的总大小为100MB。 推荐值: 单个key的value小于10kb 对于集合类型的key,建议元素数量小于1000 选择合理的数据结构 2.批处理优化单个命令的执行流程一次命令响应时间=一次往返的网络传输所耗的时间 + 1次redis执行命令耗时 问题:一次命令响应时间耗费时 ...
黑马点评笔记
发表于2025-03-07|更新于2025-05-21|java|redis lua
1.缓存机制数据一致性:先修改数据库再删除redis缓存。先删缓再删数据发生线程安全的问题更大,因为数据库修改数据耗时长,可能删了缓存后在数据库信息修改还没好之前,又读取了该信息并缓存了。 2.缓存穿透客户端访问数据库中不存在的数据,缓存永远不生效,可能会被恶意攻击数据库导致瘫痪。方法1.缓存空对象 2.布隆过滤 3.缓存雪崩指的是同一时间段内,redis中大量的缓存的key同时失效或者redis服务器宕机了,导致有大量请求到达数据库,带来巨大压力解决方法:1.给TTL添加随机值 2.利用redis集群 3.给缓存业务添加降级限流策略(微服务内容)4.添加多级缓存 4.缓存击穿指的是某一个被高并发访问并且该缓存重建业务较复杂的key突然失效了,导致大量请求到达数据库,带来巨大冲击。解决方法:1.添加互斥锁到redis中 2.逻辑过期 实战通用的redis缓存工具12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 ...
RabbitMq
发表于2025-02-26|更新于2025-02-26|rabbitmq 消息队列
RabbitMq消息队列总结参考黑马教程day06-MQ基础 - 飞书云文档 1.概述RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址: https://www.rabbitmq.com/ 使用背景:同步调用在微服务项目中,我们使用的OpenFeign都是同步调用,可以理解为阻塞,只有当前任务执行完毕才能往下执行,同步调用存在以下问题: 第一,拓展性差 在大多数电商业务中,用户支付成功后都会以短信或者其它方式通知用户,告知支付成功。假如后期产品经理提出这样新的需求,你怎么办?是不是要在上述业务中再加入通知用户的业务? 某些电商项目中,还会有积分或金币的概念。假如产品经理提出需求,用户支付成功后,给用户以积分奖励或者返还金币,你怎么办?是不是要在上述业务中再加入积分业务、返还金币业务? 由此可见,服务会越来越臃肿。 第二,性能下降 由于我们采用了同步调用,调用者需要等待服务提供者执行完返回结果后,才能继续向下执行,也就是说每次远程调用,调用者都是阻塞等待状态。最终整个业务的响应时长就是每次远程调用的执行时长之和。 第三,级联失败 由于我们是基于OpenFeig ...
Docker学习
发表于2025-02-14|更新于2025-02-14|Docker 容器
Docker内容参考黑马文档day02-Docker - 飞书云文档 镜像定义什么是镜像:将应用所需的函数库、依赖、配置等与应用一起打包得到的就是镜像。 简单来说类似于网上下的学习版游戏压缩包。 以下是镜像查询命令显示的结果 1234[root@server01 tar]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.1ms.run/library/nginx latest 97662d24417b 7 days ago 192MBdocker.1ms.run/library/mysql latest c013d3763e14 3 weeks ago 797MB 参数解释: REPOSITORY(仓库): 镜像的仓库名称,类似于软件包的来源。 例如: docker.1ms.run/library/nginx:表示从docker.1ms.run镜像源拉取的nginx镜像。 nginx:如果直接写nginx ...
Redis持久化
发表于2025-02-05|更新于2025-05-21|redis|redis 持久化
redis持久化指的是把内存中的数据写入磁盘中。因为redis是基于内存进行数据存储的,当服务器关闭或者重启时,内存中的数据会丢失,所以需要通过持久化机制,来把数据定期自动或者按需手动保存到磁盘中,以便服务器启动时恢复数据。实现方法分为如下两种 1.RDB(Redis DataBase)是什么:在指定的时间间隔内,执行数据集的时间点快照,快照文件就是RDB文件(例如dump.rdb)。当Redis重启时,会加载这个.rdb文件,直接将文件中的数据加载到内存中。 相关配置位于redis.conf配置文件的snapshot模块中 save <seconds> <changes> [<seconds> <changes> ...] 大概位于第440行用于配置使时间间隔和数据修改次数,及每个一段固定时间查看当前redis修改数据的次数,超过了设定的i修改次数则进行快照。 dir 文件位置(例如 /root/myredis/dumpfiles) 大概位于第510行用于设置rdb文件存放的位置 dbfilename ...
尚庭公寓
发表于2024-12-26|更新于2025-01-28|SprinBoot Redis MinIO Linux Knife4j Mysql
本文总结了尚庭公寓项目中遇到的技术知识点。 1.项目目录结构设计12345678910111213141516lease├── common(公共模块——工具类、公用配置等)│ ├── pom.xml (包含公共模块编写所需的全部依赖)│ └── src├── model(数据模型——与数据库相对应地实体类)│ ├── pom.xml (包含数据模型编写所需的全部依赖)│ └── src├── web(Web模块)│ ├── pom.xml (包含common和model这个两个模块的依赖,以及该模块下所需的其他依赖)│ ├── web-admin(后台管理系统Web模块——包含mapper、service、controller)│ │ ├── pom.xml (做为web模块的子类项目)│ │ └── src│ └── web-app(移动端Web模块——包含mapper、service、controller)│ ├── pom.xml│ └── src└── pom.xml (统一管理子模块所有的依赖版本号) 根 ...
Mybatis+MybatisPlus总结
发表于2024-12-06|更新于2024-12-06|mybatis mybatisplus
一、Mybatis简介 mybatis类似于jdbcTemplate,它是一个封装了java对数据库操作的一个依赖,相比于jdbcTemplate,感觉可用性更好。 二、实战
1234
avatar
ldy
I am a slow walker,but I never walk backwards.我走得很慢,但是我从来不会后退
文章
35
标签
26
分类
10
别点这里
公告
This is my Blog
最新文章
轻松掌握Langchain4j2025-08-24
面经收集2025-08-18
深入java集合2025-08-15
开发常见问题汇总2025-07-11
面经记录2025-06-12
分类
  • Spring1
  • java4
    • redis1
  • javaweb1
  • redis1
  • ssm4
  • 八股文1
  • 数据库3
标签
mybatis mybatisplus javaweb 微服务 spring java ioc mysql 集合 EL Docker 容器 SpringBoot SprinBoot Redis MinIO Linux Knife4j Mysql spring java ioc aop tx 八股文 java redis rabbitmq 消息队列 大模型 音乐播放器 Java 面试 springmvc Springcloud 算法 项目 redis 持久化 Linux redis lua
归档
  • 八月 20253
  • 七月 20251
  • 六月 20252
  • 五月 20252
  • 四月 20253
  • 三月 20254
  • 二月 20253
  • 十二月 20242
网站资讯
文章数目 :
35
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By ldy
框架 Hexo|主题 Butterfly
搜索
数据库加载中