01 2024 档案
摘要:1 缓存雪崩 缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。 解决方案: 给不同Key的TTL添加随机值; 利用Redis集群提高服务的可用性; 哨兵模式、集群模式 给缓存业务添加降级限流策略;ngxin 或 springcloud Ga
阅读全文
摘要:1 缓存击穿 缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮。 1.1 解决方案一:互斥锁 1.2 解决方案二:逻辑过期 总结: 缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这
阅读全文
摘要:问题一:项目中哪些场景使用了redis呢? 1 缓存穿透 缓存穿透:查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库。 1.1 解决方案一 方案一:缓存空数据,查询返回的数据为空,仍把这个空结果进行缓存;{key:1,value:null} 优点:简单; 缺
阅读全文
摘要:注:红色列举出来的为重点部分。即缓存、分布式锁、集群。 原视频链接:https://www.bilibili.com/video/BV1yT411H7YK/?share_source=copy_web&vd_source=a11a8239173c7ecc0df19a35b38b8679
阅读全文
摘要:原视频链接:https://www.bilibili.com/video/BV1yT411H7YK/?share_source=copy_web&vd_source=a11a8239173c7ecc0df19a35b38b8679
阅读全文
摘要:单点Redis的问题 数据丢失问题;实现Redis数据持久化 并发能力问题;搭建主从集群,实现读写分离; 存储能力问题;搭建分片集群,利用插槽机制实现动态扩容。 故障恢复问题;利用Redis哨兵,实现健康检测和自动恢复; 1 Redis持久化 1.1 RDB持久化 RDB全称Redis Databa
阅读全文
摘要:什么是SpringAMQP SpringAMQP的官方地址:https://spring.io/projects/spring-amqp AMQP(Advanced Message Queuing Protocol):是用于在应用程序或之间传递业务消息的开放标准。该协议与语言和平台无关,更符合微服务
阅读全文
摘要:1 RabbitMQ概述 RabbitMQ 是基于Erlang语言开发的开源消息通信中间件,官网地址:http://www.rabbitmq.com/ RabbitMQ的结构和概念 RabbitMQ中的相关概念: channel:操作MQ的工具; exchange:路由消息到队列中; queue:缓
阅读全文
摘要:1 同步通讯 例如:微信视频电话 优点:时效性较强,可以立即得到结果; 同步调用存在的问题: 耦合度高,每次加入新的需求,都要修改原来的代码; 性能和吞吐能力下降,调用者需要等待服务提供者响应,如果调用链过长则响应时间等于每次调用的时间之和; 资源浪费,调用链中的每个服务在等到响应过程中,不能释放请
阅读全文
摘要:1 什么是Docker 1.1 项目部署的问题 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题; 开发、测试、生产环境有差异。 Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题? Docker允许开发中将应用、依赖、函数库、配置一起打
阅读全文
摘要:1 网关作用介绍 1.1 为什么需要网关 网关功能: 对用户请求做身份认证、权限校验; 将用户请求路由到微服务,并实现负载均衡; 对用户请求做限流。 1.2 网关的技术实现 在SpringCloud中网关的实现包括两种: gateway; zuul Zuul是基于Servlet的实现,属于阻塞式编程
阅读全文
摘要:1 Feign 替代 RestTemplate RestTemplate 方式调用存在的问题 使用RestTemplate发起远程调用的代码: String url = "http://userservice/user/" + order.getUserId(); User user = restT
阅读全文
摘要:1 负载均衡原理 1.1 负载均衡流程 2 负载均衡策略 负载均衡策略 通过定义IRule实现可以修改负载均衡规则,有两种方式: 1. 代码方式:在 order-service 中的OrderApplication类中,定义一个新的Rule: @Bean public IRule randomRul
阅读全文
摘要:1 统一配置管理 2 微服务配置拉取 获取配置的步骤如下: 将配置交给Nacos管理的步骤: 在Nacos中添加配置文件;(控制台添加按钮+实现可视化实现) 在微服务中引入Nacos的配置管理客户端(config)依赖; <dependency> <groupId>com.alibaba.cloud
阅读全文
摘要:1 认识和安装Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。 1.1 安装Nacos Windows安装 1)下载安装包 在 Nacos 的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源
阅读全文
摘要:1 获取当前月份最后一天方法 1)使用Date对象获取当前年份和月份; 2)创建一个新的Date对象,设置日期为当前月份的下一个月的第0天(即当前月份的最后一天); 3)使用getDate()方法获取当前月份最后一天的日期。 const date = new Date(); const year =
阅读全文
摘要:1 时间比较 var curTime = new Date(); //把字符串格式转化为日期类 var starttime = new Date(Date.parse(begintime)); var endtime = new Date(Date.pares(endtime)); //进行比较 r
阅读全文
摘要:原文链接:【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务-哔哩哔哩】 https://b23.tv/vv527Ac 1 服务调用关系 服务提供者:暴露接口给其它微服务调用; 服务消费者:调用
阅读全文
摘要:1 服务拆分 1.1 服务拆分注意事项 不同微服务,不要重复开发相同业务; 微服务数据独立,不要访问其它微服务的数据库; 微服务可以将自己的业务暴露为接口,供其他微服务调用。 2 服务间调用 2.1 微服务调用方式 基于RestTemplate发起的http请求实现远程调用; http请求做远程调用
阅读全文
摘要:1 微服务架构演变 1.1 单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署; 优点:架构简单、部署成本低; 缺点:耦合度高; 总:简单方便,高度耦合,扩展性差,适合小型项目。eg:学生管理系统 1.2 分布式架构 分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立
阅读全文
摘要:1 微服务技术栈 2 技术栈分类 原文链接:【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务-哔哩哔哩】 https://b23.tv/vv527Ac
阅读全文
摘要:这种情况可能是自动开启了代理服务器; 解决方法: 1、控制面板->网络和Internet 2、Internet选项; 3、连接->局域网设置 4、把代理服务器的沟沟取消,点击确定 这样就解决了 原文链接:你尚未连接--代理服务器可能有问题,或地址不正确。-CSDN博客 (baidu.com)
阅读全文