自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Spring Cloud Gateway RoutePredicateFactory

方法是post的时候。

2023-07-15 14:42:45 146 1

原创 参考Redis的限流方案

关于限流系统的所有实现细节,我都已经放到 github 上,gitbub 地址:https://github.com/wukq/rate-limiter,有兴趣的同学可以前往查看,由于笔者经验与知识有限,代码中如有错误或偏颇,欢迎探讨和指正。,对于熔断策略,不同的系统有不同的熔断策略诉求,有的系统希望直接拒绝、有的系统希望排队等待、有的系统希望服务降级、有的系统会定制自己的熔断策略,很难一一列举,所以本文只针对。,其中比较重要的是结合公司的权限体系和系统结构,设计出符合自己公司规范的限流系统。

2023-06-26 09:00:59 159 1

原创 【无标题】RabbitMQ 常用的工作模式(simple、work、publish/subscribe(fanout)、routing、topic)

消费者从匹配上路由 key 的队列里面获取到推送的消息,即 Exchange 的 direct 类型,和 topic 类型的区别是:topic 可以模糊匹配路由 key 值。我们把消息投递到 topic 交换机的时候一般需要指定一系列由点号连接单词的字符串的 routingKey,同时我们在绑定消息队列和交换机的时候也需要指定一系列由点号连接单词的字符串的 routingKey。消息产生者将消息放入队列。主题交换机通过对消息的路由键和队列到交换机的绑定模式之间的匹配,将消息路由给一个或多个队列。

2023-06-25 19:06:35 166

原创 jvm最多能够创建多少个java对象,如何扩展堆和栈的默认大小

JVM最多能够创建的Java对象数量取决于多个因素,如JVM的堆大小、操作系统的内存限制、JVM的配置参数等。在32位JVM中,由于内存地址的限制,JVM最多只能分配4GB的堆内存,因此,JVM最多能够创建大约20亿个左右的Java对象。而在64位JVM中,由于内存地址的扩展,JVM的堆大小可以达到几百GB,因此,JVM最多能够创建更多的Java对象。但是,实际上,JVM能够创建的Java对象数量通常受到其他因素的限制,如系统的物理内存、GC算法的效率、对象的大小和分配方式等。

2023-06-20 18:56:32 380 1

原创 一些基础练习题

Redis缓存雪崩指的是由于某些原因(如缓存数据的过期时间相同、大量请求同时访问缓存、服务器宕机等)导致缓存中的大量数据同时失效或者被清空,导致大量请求直接访问数据库,从而引发数据库压力过大,甚至崩溃的现象。2. 在缓存中保存不存在的数据:将请求的 key 对应的 value 设置为 null 或者一个特定的值,这样在缓存中就有了对应的值,可以避免缓存穿透导致数据库压力过大。Redis缓存穿透指的是恶意请求或者非法请求,请求的数据在缓存中不存在,导致大量请求直接访问数据库,从而引发数据库压力过大。

2023-06-17 16:20:45 145

原创 redis主从搭配

在redis目录下创建对应3个redis服务器的目录,以端口号命名: 6379,6380,6381。# 以下命令在/usr/local/software/redis 目录下执行。#以下命令在/usr/local/software/redis 目录下执行。在/usr/local/software下创建redis目录。创建成功后,检查容器是否允许,是否能正常进入redis。==上传老师给的配置文件到每个conf目录下==搭建第二个从服务器的时候,没挂载上主服务器。#如果容器没有启动可以检查日志,看看问题。

2023-06-16 10:44:12 48

原创 redis的数据过期策略

LFU是在Redis4.0后出现的,它的核心思想是根据key的最近被访问的频率进行淘汰,很少被访问的优先被淘汰,被访问的多的则被留下来。假如你使用的是LRU算法,一个key很久没有被访问到,只刚刚是偶尔被访问了一次,那么它就被认为是热点数据,不会被淘汰,而有些key将来是很有可能被访问到的则被淘汰了。注意这里是随机抽取的。Redis 用作缓存时,实际的数据集通常都是大于缓存容量的,总会有新的数据要写入缓存,这个策略本身不淘汰数据,也就不会腾出新的缓存空间,我们不把它用在 Redis 缓存中。

2023-06-16 09:01:42 1070 1

原创 redis:redis内存满了怎么办

长久不访问的数据,肯定就不会再被访问了,所以就让它逐渐后移到 LRU 端,在缓存满时,就优先删除它。LRU 算法的全称是 Least Recently Used,从名字上就可以看出,这是按照最近最少使用的原则来筛选数据,最不常用的数据会被筛选出来,而最近频繁使用的数据会留在缓存中。否则,这个脏数据被淘汰时,会被redis删除,而数据库里也没有最新的数据了。而且,当有数据被访问时,需要在链表上把该数据移动到MRU端,如果有大量数据被访问,就会带来很多链表移动操作,会很耗时,进而降低redis缓存性能。

2023-06-15 09:03:02 238 1

原创 Redis的持久化策略:RDB,AOF以及应用的场景

如果Enable AOF,好处是在最恶劣情况下也只会丢失不超过两秒数据,启动脚本较简单只load自己的AOF文件就可以了,代价一是带来了持续的lO,二是AOF rewrite 的最后将rewrite过程中产生的新数据写到新文件造成的阻塞几乎是不可避免的。这就确保了极高的性能。AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以Redis 协议追加保存每次写的操作到文件末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大。

2023-06-13 18:52:22 207 1

原创 MySQL与Redis查询速度对比

支持的特性不够丰富:现有产品所提供的功能都比较有限,大多数NoSQL数据库都不支持事务,也不像MS SQL Server和Oracle那样能提供各种附加功能,比如BI和报表等。不提供对SQL的支持:如果不支持SQL这样的工业标准,将会对用户产生一定的学习和应用迁移成本;理论上,查询速度上,Redis一定比MySQL快。MySQL查询是进行的磁盘IO操作。Redis查询是在内存进行的。

2023-06-12 16:29:24 502 1

原创 mysql的主从配置流程

由于mysql8.x的密码加密方式改变,如果之后主从出现问题,需要修改密码加密方式。获取mysql_master的ip地址。进入mysql_master容器。创建主从账号”slave”获取master容器的状态。

2023-06-12 15:23:54 120 1

原创 springbboot的默认缓存方案

在支持Spring Cache的环境下,对于使用@Cacheable标注的方法,Spring在每次执行前都会检查Cache中是否存在相同key的缓存元素,如果存在就不再执行该方法,而是直接从缓存中获取结果进行返回,否则才会执行并将返回结果存入指定的缓存中。与@Cacheable不同的是使用@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。key属性是用来指定Spring缓存方法的返回结果时对应的key的。

2023-06-10 09:18:24 119

原创 linux常用指令: chmod和grep的使用

(2).数字设定法  我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。-f<规则文件> 或 –file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。-C<显示行数> 或 –context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。

2023-06-08 18:42:02 194 1

原创 Spring框架中含有的设计模式

面向切面编程AOP: Aspect-Oriented Programming 面向切面编程能够将和业务无关,但是是业务模块中所共同调用的逻辑或者业务功能封装起来, 比如事务管理,日志管理,权限控制等 有利于减少重复代码,降低模块之间的耦合度,并有利于面向未来的可拓展性和可维护性 使用AOP可以将一些通用功能抽象出来,在需要使用的地方直接使用,这样可以大大简化代码量 需要增加新功能也会更加简单方便,这样可以提高系统的扩展性。Spring框架的资源访问Resource接口。

2023-06-07 18:45:26 153 1

原创 java中POJO PO VO DTO BO DAO的定义

业务对象,我经常使用的一个,它是和业务挂钩的,简单来说,我们每个业务可能需要很多 PO (数据库表)来组成,而我们返回前端页面或者返回给调用方的时候,我们需要组合。而这个时候, BO 就派上用场了,它就是一个对 PO 的组合,也可以就是 PO ,只是出发点是满足业务的传输对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。值对象,其实和 BO 、 DTO 、 PO 差不多,只是更形象化了, VO 更简单,没有任何思想,就是一个传输对象。

2023-06-06 17:24:46 220

原创 springboot手动搭建项目

在 Spring Boot 中,你可以在配置文件(如 application.properties 或 application.yml)中配置视图解析器的相关属性,或者通过 Java 代码进行配置。视图解析器负责将控制器返回的逻辑视图名称解析为实际的视图对象,以便渲染给用户。根据异常信息,看起来你的视图解析器配置存在问题,导致视图解析出现循环调用的情况。这边没想到后端接收的是个对象,应该用raw,把要传的东西格式改成josn字符串,就成功了。检查视图文件的位置和命名是否与视图解析器的配置相匹配。

2023-06-06 09:23:00 72 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除