- 博客(26)
- 收藏
- 关注
原创 SpringCloudAlibaba--面试篇
并发写的时候是通过对每个服务上锁,让每个服务的实例串行化执行,不同服务可以并行执行。Nacos的实例分临时实例和永久实例,eureka只有临时实例。
2025-11-22 17:15:55
238
原创 ElasticSearch--应用
require_field_match是否需要字段匹配,需要的话要字段和查询的一致才可以高亮,否则则不需要。复合查询——boolean query。
2025-11-12 01:25:50
185
原创 springcloud----elasticsearch
在使用默认(standard)分词器时,在对英语进行分词时效果很好,但是对中文分词会逐个字分词,会导致结果集出线很多与搜索内容不一致的东西,因此需要使用IK分词器。SpringBoot默认的ES版本是7.6.2,使用别的版本ES时要覆盖原来版本。
2025-11-09 00:03:33
345
原创 Springclound----MQ的学习
推荐使用jackson的序列化,用自定义的MessageConverter去覆盖原来的jdk序列化。且生产者和消费者的MessageConverter要相同。
2025-11-07 03:45:36
249
原创 springcloud--统一网关Gateway
最后再添加注解@Component将这个类注入到springIoc和@Order()值,来决定执行顺序,数值越小越先执行,也可以多实现一个Ordered接口来实现。因为路由过滤器和DefaultFilter过滤器本质都是过滤器工厂读取配置文件来真正生成一个GatewayFilter,而GlobalFilter则是通过适配器类实现GatewayFilter并且内部接收了一个GatewayFilter,传一个GlobalFilter进去则会适配成GatewayFilter。
2025-11-03 01:45:32
195
原创 springcloud-Feign
各个服务把自身供其他服务使用的接口,配置文件,实体类等各种接口定义成统一的一个模块,其他需要使用的消费者直接引入jar包依赖直接调用。这个方式无论是调用几个接口,都会把全部接口引入进来,有点多余。通过给给消费者和生产者继承同一个类来进行面向契约开发,但是这个不推荐使用,因为他有紧耦合的弊端,父接口一改其余的都得改。创建Feign接口并且在里面定义好方法,然后在controller层之间注入依赖Feign接口使用。需要面向契约方式则使用方式一,不想紧偶尔则使用方式二。OkHttp,支持线程池。
2025-11-03 00:43:40
214
原创 SpringCloudALibaba
1.nacos中会有临时实例和非临时实例,临时实例是主动采用心跳监测来告诉nacos服务是否宕机,宕机的话会自动剔除,而非临时实例是nacos主动询问服务,监测到服务宕机之后,并不会剔除服务,而是标示为不健康状态;依赖在pom文件中配置,然后在对应服务resources中创建boostrap.yml文件,并配置nacos相关信息。1. 无论是否使用开发环境还是test环境,都会读取service.yaml文件的内容。3.当服务提供者出问题时,nacos能够及时把出问题的服务告诉消费者进行更新。
2025-10-29 22:34:54
175
原创 Redis原理篇--内存回收
4.在TTL,LRU,LFU算法淘汰时,要准备一个淘汰池,其中在key中随机挑选样本放进池子中,在池子满的时候,则要要求进入的key要为最符合淘汰策略的,其中进入池子之后按升序存入,然后倒序删除,在执行完一个DB之后则判断是否还有下一个DB,有则继续循环。5.在判断内存策略时,用max-TTL-TTL,now-LRU值,255-LFU充当idleTIme,值越小,则越接近淘汰。2.如果不是不驱逐策略,则判断是否为AllKeys,不是,则从过期key中执行;是,则从db->dict全部key执行。
2025-10-01 18:20:52
130
原创 Redis原理篇--网络模型
要想提升速度,主要是如何优化用户空间到内核空间之后由于还没数据响应的等待时间和内核空间缓冲区的数据拷贝到用户空间缓冲区两个方面。其中select只能知道有FD数据就绪,但是不知道是哪一个。
2025-09-30 00:16:06
144
原创 Redis:原理篇--数据类型底层
在Set中,开始时是IntSet数据结构,在插入数据时,是非整数是则判断是否为dict类型,是的话直接插入,是整数时判断是否为IntSet,是的话直接插入并且判断大小,超过则继续转换成dict,非整数则先转换dict在加入。在进行数据类型转换时,在尝试添加新元素的时候进行hash-max-ziplist-value的判断,如果大于,则转换成Dict,而在插入成功之后才会判断元素数量来决定是否进行转换成Dict类型,因为插入的数据也可能通过更新数据或者新增实现。
2025-09-28 23:17:01
346
原创 Redis:键值设计以及redis优化
批处理,mset只能处理string类型的,而且是原子性的,而pipeline不是原子性的,而mset,hmset这类只能把数据存在同一个key,但是这些都是单机的。可以通过redis中的config get/set hash-max-ziplist-size-entry来查询/设置大小,默认500。spring封装好的方法mset是先用map的key计算出插槽值然后转换成同插槽值得list,然后用异步处理。来检查键值的大小,但是一般不用,因为他对cpu的使用率很高。可以用redis中的。
2025-09-25 16:20:17
207
原创 Redis:多级缓存
其中/usr/local/openresty/lualib目录就是开始配置在nginx.conf文件的lua模块,则启动nginx时自动加载这个文件的内容。实际请求还是被nginx截取并且通过。在多级缓存的引用中,业务逻辑等主要是在OpenResty中操作,而这个组件是基于nginx实现的,也可以理解为nginx的封装和加强。
2025-09-23 16:38:21
166
原创 Redis高级篇--主从节点
通过对repliId进行判断是否从这个master节点同步的数据,以及通过offset来判断数据同步到哪里。主从节点主要用另外一个redis执行slaveof(主节点ip)(主节点端口)来实现。
2025-09-21 01:00:52
183
原创 Redis高级篇--Redis持久化
一般通过bgsave进行数据的持久化,通过redis.conf配置文件修改rdb机制的时间就可以实现每次关机就会自动触发。Redis中单点Redis的常见问题以及解决办法。由于Redis是单线程操作的。
2025-09-18 23:38:20
122
原创 黑马点评:附近商店
查询数据库返回数据,对数据进行处理时,可以用stream流中的Collections.groupingBy()方法进行分组查询,而在写入redis中时,可以使用List<RedisGeoCommands.GeoLocation<>>来先对店铺处理成locations集合,避免用循环来一次一次处理,实现一次请求多次写入来提升性能。使用Redis中的GEO数据结构来记录店铺的坐标(经纬度)以及用来计算点到点的距离(可用两个member或者经纬度到member的距离)在redis中实现滚动分页查询是难点。
2025-09-17 22:44:22
131
原创 黑马点评:优惠券秒杀(锁)
犹豫spring中事务失效的偶尔原因,因为是调用this.createVoucherOrder方法,并不是利用代理对象调用,而是使用VoucherOrderServiceImpl的对象进行调用则会出现事务失效,需要获取事务代理对象,其中需要引入。同时,在多个jvm或者集群下,每个jvm都会获得一个锁,因为这个锁无法让集群或者多个jvm共用一个锁。并且暴露代理对象才能获取。
2025-09-06 23:47:56
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅